Daily bump.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2021-07-15  Uroš Bizjak  <ubizjak@gmail.com>
2
3         PR target/101346
4         * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode.
5         (VALID_INT_MODE_P): Add SDmode and DDmode.
6         Add TDmode for TARGET_64BIT.
7         (VALID_DFP_MODE_P): Remove.
8         * config/i386/i386.c (ix86_hard_regno_mode_ok):
9         Do not use VALID_DFP_MODE_P.
10
11 2021-07-15  Andrew MacLeod  <amacleod@redhat.com>
12
13         * gimple-range-fold.cc (adjust_pointer_diff_expr): Use
14         gimple_range_type.
15         (fold_using_range::fold_stmt): Ditto.
16         (fold_using_range::range_of_range_op): Ditto.
17         (fold_using_range::range_of_phi): Ditto.
18         (fold_using_range::range_of_call): Ditto.
19         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
20         (fold_using_range::range_of_builtin_call): Ditto.
21         (fold_using_range::range_of_cond_expr): Ditto.
22         * gimple-range-fold.h (gimple_range_type): New.
23
24 2021-07-15  Martin Sebor  <msebor@redhat.com>
25
26         PR middle-end/97027
27         * tree-ssa-strlen.c (handle_assign): New function.
28         (maybe_warn_overflow): Add argument.
29         (nonzero_bytes_for_type): New function.
30         (count_nonzero_bytes): Handle more tree types.  Call
31         nonzero_bytes_for_tye.
32         (count_nonzero_bytes): Handle types.
33         (handle_store): Handle stores from function calls.
34         (strlen_check_and_optimize_call): Move code to handle_assign.  Call
35         it for assignments from function calls.
36
37 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
38
39         PR analyzer/95006
40         PR analyzer/94713
41         PR analyzer/94714
42         * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value.
43
44 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
45
46         * doc/invoke.texi (-fdump-analyzer-exploded-paths): New.
47
48 2021-07-15  Martin Sebor  <msebor@redhat.com>
49
50         PR c/101289
51         PR c/97548
52         * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME.
53         (operand_compare::verify_hash_value): Same.
54         * tree-core.h (OEP_DECL_NAME): New.
55
56 2021-07-15  Martin Jambor  <mjambor@suse.cz>
57
58         * profile-count.h (profile_count::value): Change the return type to
59         uint64_t.
60         * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print
61         statement.
62         * tree-cfg.c (dump_function_to_file): Likewise.
63
64 2021-07-15  Bill Schmidt  <wschmidt@linux.ibm.com>
65
66         PR target/101129
67         * config/rs6000/rs6000-p8swap.c (has_part_mult): New.
68         (rs6000_analyze_swaps): Insns containing a subreg of a mult are
69         not swappable.
70
71 2021-07-15  Richard Biener  <rguenther@suse.de>
72
73         * tree-vectorizer.h (vect_gen_while): Match up with
74         vect_gen_while_not.
75         * tree-vect-stmts.c (vect_gen_while): Adjust API to that
76         of vect_gen_while_not.
77         (vect_gen_while_not): Adjust.
78         * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise.
79
80 2021-07-15  Aldy Hernandez  <aldyh@redhat.com>
81
82         * gimple-range-cache.cc (non_null_ref::adjust_range): New.
83         (ranger_cache::range_of_def): Call adjust_range.
84         (ranger_cache::entry_range): Same.
85         * gimple-range-cache.h (non_null_ref::adjust_range): New.
86         * gimple-range.cc (gimple_ranger::range_of_expr): Call
87         adjust_range.
88         (gimple_ranger::range_on_entry): Same.
89
90 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
91
92         Revert:
93         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
94
95         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
96
97 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
98
99         Revert:
100         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
101
102         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
103         (sdot_prod, udot_prod): ...These.
104         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
105         (aarch64_<sur>dot<vsi2qi>): Rename to...
106         (<sur>dot_prod<vsi2qi>): ...This.
107         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
108         Update builtins.
109
110 2021-07-15  Jakub Jelinek  <jakub@redhat.com>
111
112         PR middle-end/101437
113         * gimplify.c (gimplify_expr): Throw away volatile reads from empty
114         types even if they have non-BLKmode TYPE_MODE.
115
116 2021-07-15  Richard Biener  <rguenther@suse.de>
117
118         PR driver/101383
119         * gcc.c (process_command): Process -gtoggle like process_options
120         would after parsing options.
121
122 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
123
124         * cfgexpand.c (expand_asm_loc): Adjust.
125         (expand_asm_stmt): Likewise.
126         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise.
127         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
128         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
129         * config/avr/avr.c (avr_md_asm_adjust): Likewise.
130         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
131         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
132         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
133         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
134         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
135         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
136         * config/s390/s390.c (s390_md_asm_adjust): Likewise.
137         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
138         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
139         * doc/tm.texi: Regenerate.
140         * target.def: Add location argument to md_asm_adjust.
141
142 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
143
144         * tree-diagnostic.c (diagnostic_report_current_function): Use the
145         diagnostic's location, not input_location.
146
147 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
148
149         * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to
150         diagnostics.
151         (expand_asm_stmt): Likewise.
152
153 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
154
155         * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower
156         addressed memory rtx, if any.
157         (rs6000_split_multireg_move): Fix code formatting.
158         Handle MMA build built-ins with operands in adjacent memory locations.
159
160 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
161
162         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later
163         in the file.
164
165 2021-07-14  Jason Merrill  <jason@redhat.com>
166
167         * sel-sched-ir.h (get_all_loop_exits): Use auto_vec.
168
169 2021-07-14  Jason Merrill  <jason@redhat.com>
170
171         * doc/invoke.texi: -fdelete-dead-exceptions is on by default for
172         C++.
173
174 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
175
176         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
177         Remove erroneous line.
178
179 2021-07-14  Andrew MacLeod  <amacleod@redhat.com>
180
181         * params.opt (param_evrp_mode): Change default.
182
183 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
184
185         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
186         (sdot_prod, udot_prod): ...These.
187         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
188         (aarch64_<sur>dot<vsi2qi>): Rename to...
189         (<sur>dot_prod<vsi2qi>): ...This.
190         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
191         Update builtins.
192
193 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
194
195         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
196
197 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
198
199         * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document.
200
201 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
202
203         * config/arm/neon.md (usdot_prod<vsi2qi>): New.
204
205 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
206
207         * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to...
208         (usdot_prod<vsi2qi>): ... This.
209         * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to...
210         (usdot_prod): ...This.
211         * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise.
212         * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>):
213         Rename to...
214         (@<sur>dot_prod<vsi2qi>): ...This.
215         * config/aarch64/aarch64-sve-builtins-base.cc
216         (svusdot_impl::expand): Use it.
217
218 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
219
220         * optabs.def (usdot_prod_optab): New.
221         * doc/md.texi: Document it and clarify other dot prod optabs.
222         * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign.
223         * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab.
224         * optabs.c (expand_widen_pattern_expr): Likewise.
225         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
226         * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind.
227         * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional
228         optab subtype.
229         (vect_widened_op_tree): Optionally ignore
230         mismatch types.
231         (vect_recog_dot_prod_pattern): Support usdot_prod_optab.
232
233 2021-07-14  H.J. Lu  <hjl.tools@gmail.com>
234
235         PR target/101395
236         * config/i386/driver-i386.c (host_detect_local_cpu): Check
237         "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen.
238         Enable UINTR only for 64-bit codegen.
239         * config/i386/i386-options.c
240         (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not
241         in 64-bit mode.
242         * config/i386/i386.h (ARCH_ARG): New.
243         (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and
244         "[arch|tune] 64" for 64-bit codegen.
245
246 2021-07-14  Richard Biener  <rguenther@suse.de>
247
248         PR tree-optimization/101445
249         * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment
250         of the IV in the correct direction for negative stride
251         accesses.
252
253 2021-07-14  Jakub Jelinek  <jakub@redhat.com>
254
255         PR go/101407
256         * godump.c (godump_str_hash): New type.
257         (godump_container::pot_dummy_types): Use string_hash instead of
258         ptr_hash in the hash_set.
259
260 2021-07-14  Richard Biener  <rguenther@suse.de>
261
262         * tree-vect-loop.c (vect_find_reusable_accumulator): Handle
263         vector types where the old vector type has a multiple of
264         the new vector type elements.
265         (vect_create_partial_epilog): New function, split out from...
266         (vect_create_epilog_for_reduction): ... here.
267         (vect_transform_cycle_phi): Reduce the re-used accumulator
268         to the new vector type.
269
270 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
271
272         * tree-ssa-alias.c (attr_fnspec::verify): Fix index in
273         non-'t'-sized arg check.
274
275 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
276
277         * tree-cfg.c (cleanup_dead_labels_eh): Update
278         post_landing_pad label upon change of landing pad block's
279         primary label.
280         (cleanup_dead_labels): Check that a removed label is not that
281         of a landing pad.
282
283 2021-07-13  Jonathan Wright  <jonathan.wright@arm.com>
284
285         * combine.c (combine_simplify_rtx): Add vec_select -> subreg
286         simplification.
287         * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64):
288         Add Neon to general purpose register case for zero-extend
289         pattern.
290         * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r
291         case to prevent some cases opting to go through memory.
292         * cse.c (fold_rtx): Add vec_select -> subreg simplification.
293         * rtl.c (rtvec_series_p): Define predicate to determine
294         whether a vector contains a linear series of integers.
295         * rtl.h (rtvec_series_p): Define.
296         * rtlanal.c (vec_series_lowpart_p): Define predicate to
297         determine if a vector selection is equivalent to the low part
298         of the vector.
299         * rtlanal.h (vec_series_lowpart_p): Define.
300         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
301         Add vec_select -> subreg simplification.
302
303 2021-07-13  Paul A. Clarke  <pc@us.ibm.com>
304
305         * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128,
306         _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
307         _mm_test_mix_ones_zeros): New.
308
309 2021-07-13  Roger Sayle  <roger@nextmovesoftware.com>
310             Richard Biener  <rguenther@suse.de>
311
312         * gimple.c (gimple_could_trap_p_1):  Make S argument a
313         "const gimple*".  Preserve constness in call to
314         gimple_asm_volatile_p.
315         (gimple_could_trap_p): Make S argument a "const gimple*".
316         * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p):
317         Update function prototypes.
318
319 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
320
321         * tree-vectorizer.h (vect_reusable_accumulator): New structure.
322         (_loop_vec_info::main_loop_edge): New field.
323         (_loop_vec_info::skip_main_loop_edge): Likewise.
324         (_loop_vec_info::skip_this_loop_edge): Likewise.
325         (_loop_vec_info::reusable_accumulators): Likewise.
326         (_stmt_vec_info::reduc_scalar_results): Likewise.
327         (_stmt_vec_info::reused_accumulator): Likewise.
328         (vect_get_main_loop_result): Declare.
329         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
330         reduc_scalar_inputs.
331         (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs.
332         * tree-vect-loop-manip.c (vect_get_main_loop_result): New function.
333         (vect_do_peeling): Fill an epilogue loop's main_loop_edge,
334         skip_main_loop_edge and skip_this_loop_edge fields.
335         * tree-vect-loop.c (INCLUDE_ALGORITHM): Define.
336         (vect_emit_reduction_init_stmts): New function.
337         (get_initial_def_for_reduction): Use it.
338         (get_initial_defs_for_reduction): Likewise.  Change the vinfo
339         parameter to a loop_vec_info.
340         (vect_create_epilog_for_reduction): Store the scalar results
341         in the reduc_info.  If an epilogue loop is reusing an accumulator
342         from the main loop, and if the epilogue loop can also be skipped,
343         try to place the reduction code in the join block.  Record
344         accumulators that could potentially be reused by epilogue loops.
345         (vect_transform_cycle_phi): When vectorizing epilogue loops,
346         try to reuse accumulators from the main loop.  Record the initial
347         value in reduc_info for non-SLP reductions too.
348
349 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
350
351         * tree-vect-loop.c (get_initial_def_for_reduction): Remove
352         adjustment handling.  Take the neutral value as an argument,
353         in place of the code argument.
354         (vect_transform_cycle_phi): Update accordingly.  Handle the
355         initial values of cond reductions separately from code reductions.
356         Choose the adjustment here rather than in
357         get_initial_def_for_reduction.  Sink the splat of vec_initial_def.
358
359 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
360
361         * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with...
362         (neutral_op_for_reduction): ...this, providing a more general
363         interface.
364         (vect_create_epilog_for_reduction): Update accordingly.
365         (vectorizable_reduction): Likewise.
366         (vect_transform_cycle_phi): Likewise.
367
368 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
369
370         * tree-vect-loop.c (get_initial_def_for_reduction): Take the
371         reduc_info instead of the original stmt_vec_info.
372         (vect_transform_cycle_phi): Update accordingly.
373
374 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
375
376         * tree-vect-loop.c (get_initial_defs_for_reduction): Take the
377         reduc_info as an additional parameter.
378         (vect_transform_cycle_phi): Update accordingly.
379
380 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
381
382         * tree-vectorizer.h: Include tree-ssa-operands.h.
383         (vect_phi_initial_value): New function.
384         * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it.
385         (get_initial_defs_for_reduction, info_for_reduction): Likewise.
386         (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
387         (vect_transform_cycle_phi, vectorizable_induction): Likewise.
388
389 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
390
391         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
392         the phi results to vectype after creating them.  Remove later
393         conversion code that thus becomes redundant.
394
395 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
396
397         * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace
398         the new_phis vector with a reduc_inputs vector.  Combine handling
399         of reduction chains and ncopies > 1.
400
401 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
402
403         * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate
404         scalar_results to group_size elements after reducing down from
405         N*group_size elements.  Construct an array_slice of the live-out
406         stmts and assert that there is one stmt per scalar result.
407
408 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
409
410         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
411         nested_in_vect_loop and use double_reduc everywhere.  Remove dead
412         assignment to "loop".
413
414 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
415
416         * internal-fn.c (vectorized_internal_fn_supported_p): Handle
417         vector types first.  For scalar types, consider both the preferred
418         vector mode and the alternative vector modes.
419         * optabs-query.c (can_vec_mask_load_store_p): Use the same
420         structure as above, in particular using related_vector_mode
421         for modes provided by autovectorize_vector_modes.
422
423 2021-07-13  Jakub Jelinek  <jakub@redhat.com>
424             Richard Biener  <rguenther@suse.de>
425
426         PR tree-optimization/101419
427         * tree-pass.h (PROP_objsz): Define.
428         (make_pass_early_object_sizes): Declare.
429         * passes.def (pass_all_early_optimizations): Rename pass_object_sizes
430         there to pass_early_object_sizes, drop parameter.
431         (pass_all_optimizations): Move pass_object_sizes right after pass_ccp,
432         drop parameter, move pass_post_ipa_warn right after that.
433         * tree-object-size.c (pass_object_sizes::execute): Rename to...
434         (object_sizes_execute): ... this.  Add insert_min_max_p argument.
435         (pass_data_object_sizes): Move after object_sizes_execute.
436         (pass_object_sizes): Likewise.  In execute method call
437         object_sizes_execute, drop set_pass_param method and insert_min_max_p
438         non-static data member and its initializer in the ctor.
439         (pass_data_early_object_sizes, pass_early_object_sizes,
440         make_pass_early_object_sizes): New.
441         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use
442         (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining.
443
444 2021-07-13  Kito Cheng  <kito.cheng@sifive.com>
445
446         PR target/101275
447         * config/riscv/constraints.md ("S"): Update description and remove
448         @internal.
449         * doc/md.texi (Machine Constraints): Document the 'S' constraints
450         for RISC-V.
451
452 2021-07-13  Richard Biener  <rguenther@suse.de>
453
454         Revert:
455         2021-07-12  Richard Biener  <rguenther@suse.de>
456
457         * tree-vect-slp.c (vect_slp_region): Show the number of
458         SLP graph entries in the optimization message.
459
460 2021-07-13  Michael Meissner  <meissner@linux.ibm.com>
461
462         * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable
463         value to to long.
464         * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change
465         return type to long.
466         * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return
467         type to long.
468
469 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
470
471         * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call):
472         Query relation between the 2 operands and use it.
473
474 2021-07-12  Sergei Trofimovich  <siarheit@google.com>
475
476         * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo.
477
478 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
479
480         PR target/101424
481         * config/i386/predicates.md (vec_setm_sse41_operand):
482         Rename from vec_setm_operand.
483         (vec_setm_avx2_operand): New predicate.
484         * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator.
485         Use vec_setm_sse41_operand as operand 2 predicate.
486         (vec_set<V_256_512:mode): New expander.
487         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand
488         as operand 2 predicate.
489
490 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
491
492         PR tree-optimization/101335
493         * range-op.cc (operator_cast::lhs_op1_relation): Delete.
494
495 2021-07-12  Andrew Pinski  <apinski@marvell.com>
496
497         * tree-ssa-phiopt.c (match_simplify_replacement): Move
498         insert of the sequence before the movement of the
499         statement. Check if to see if the statement is used
500         outside of the original phi to see if we should move it.
501
502 2021-07-12  Richard Biener  <rguenther@suse.de>
503
504         * dump-context.h (debug_dump_context::debug_dump_context):
505         Add FILE * parameter defaulted to stderr.
506         * dumpfile.c (debug_dump_context::debug_dump_context): Adjust.
507         * tree-vect-slp.c (dot_slp_tree): New functions.
508
509 2021-07-12  Richard Biener  <rguenther@suse.de>
510
511         PR tree-optimization/101373
512         * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping
513         references when the BB may not return.
514         (compute_avail): Pass in the function we're working on and
515         replace cfun references with it.  Externally throwing
516         const calls also possibly terminate the function.
517         (pass_pre::execute): Pass down the function we're working on.
518         * gcse.c (compute_hash_table_work): Externally throwing
519         const/pure calls also need record_last_mem_set_info.
520         * postreload-gcse.c (record_opr_changes): Looping or externally
521         throwing const/pure calls also need record_last_mem_set_info.
522
523 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
524
525         * recog.c (memory_address_addr_space_p): Change the type to bool.
526         Return true/false instead of 1/0.
527         (offsettable_memref_p): Ditto.
528         (offsettable_nonstrict_memref_p): Ditto.
529         (offsettable_address_addr_space_p): Ditto.
530         Change the type of addressp indirect function to bool.
531         * recog.h (memory_address_addr_space_p): Change the type to bool.
532         (strict_memory_address_addr_space_p): Ditto.
533         (offsettable_memref_p): Ditto.
534         (offsettable_nonstrict_memref_p): Ditto.
535         (offsettable_address_addr_space_p): Ditto.
536         * reload.c (maybe_memory_address_addr_space_p): Ditto.
537         (strict_memory_address_addr_space_p): Change the type to bool.
538         Return true/false instead of 1/0.
539         (maybe_memory_address_addr_space_p): Change the type to bool.
540
541 2021-07-12  Richard Biener  <rguenther@suse.de>
542
543         * tree-vect-slp.c (vect_slp_region): Show the number of
544         SLP graph entries in the optimization message.
545
546 2021-07-12  Richard Biener  <rguenther@suse.de>
547
548         PR tree-optimization/101394
549         * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
550         copies from abnormals for a full redundancy.
551
552 2021-07-12  Richard Biener  <rguenther@suse.de>
553
554         PR middle-end/101423
555         * gimple.c (gimple_could_trap_p_1): Internal function calls
556         do not trap.
557         * tree-eh.c (tree_could_trap_p): Likewise.
558
559 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
560
561         PR target/66791
562         * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with
563         __a * __b.
564         (vmulq_n_u32): Likewise.
565         (vmul_n_f32): Gate __a * __b on __FAST_MATH__.
566         (vmulq_n_f32): Likewise.
567         (vmul_n_f16): Likewise.
568         (vmulq_n_f16): Likewise.
569
570 2021-07-12  Martin Liska  <mliska@suse.cz>
571
572         PR sanitizer/101425
573         * gcc.c (check_offload_target_name): Call
574           candidates_list_and_hint only if we have a candidate.
575
576 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
577
578         PR target/98435
579         * config/arm/neon.md (vec_init): Move to ...
580         * config/arm/vec-common.md (vec_init): ... here.
581         Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE.
582
583 2021-07-12  Roger Sayle  <roger@nextmovesoftware.com>
584
585         PR tree-optimization/101403
586         * match.pd ((T)bswap(X)>>C): Correctly handle cases where
587         signedness of the shift is not the same as the signedness of
588         the type extension.
589
590 2021-07-09  Roger Sayle  <roger@nextmovesoftware.com>
591             Uroš Bizjak  <ubizjak@gmail.com>
592
593         * config/i386/i386.md (*divmodsi4_const): Optimize SImode
594         divmod of a constant numerator with new define_insn_and_split.
595
596 2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>
597
598         PR target/100152
599         * config/i386/i386-expand.c (ix86_expand_call): If a call is
600         to a non-local-binding, or local but to a public symbol, then
601         assume that it might be indirected via the lazy symbol binder.
602         Mark R10 and R10 as clobbered in that case.
603
604 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
605
606         PR target/101377
607         * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in
608         the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined
609         and HAVE_LD_BROKEN_PE_DWARF5 is defined.
610
611 2021-07-09  Uroš Bizjak  <ubizjak@gmail.com>
612
613         * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the
614         log2 range of operands[3] to [1,31].
615         (*udivmodsi4_pow2_zext_2): Ditto.  Correct insn RTX pattern.
616
617 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
618
619         * doc/md.texi: Don't split @smallexample in multiple @groups.
620
621 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
622
623         * doc/md.texi: Add missing 'see' word.
624
625 2021-07-09  Andrew Pinski  <apinski@marvell.com>
626
627         * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments
628         to take sequence and gimple_match_op.  Accept the case where
629         op is a SSA_NAME and one statement in the sequence.
630         Also allow constants.
631         (gimple_simplify_phiopt): Always pass a sequence to resimplify.
632         Update call to phiopt_early_allow.  Discard the sequence if not
633         used.
634
635 2021-07-09  Xi Ruoyao  <xry111@mengyan1223.wang>
636
637         PR target/100760
638         PR target/100761
639         PR target/100762
640         * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P
641         instead of ISA_HAS_MSA.
642         (mips_expand_vec_unpack): Likewise.
643         (mips_expand_vector_init): Likewise.
644
645 2021-07-09  Kewen Lin  <linkw@linux.ibm.com>
646
647         * config/rs6000/vsx.md (mods_<mode>): Rename to...
648         (mod<mode>3): ... this.
649         (modu_<mode>): Rename to...
650         (umod<mode>3): ... this.
651         * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI,
652         MODU_V4SI): Adjust.
653
654 2021-07-08  Jeff Law  <jeffreyalaw@gmail.com>
655
656         * config/h8300/shiftrotate.md (variable shifts): Expose condition
657         code handling for the test before the loop.
658
659 2021-07-08  Martin Jambor  <mjambor@suse.cz>
660
661         PR ipa/101066
662         * ipa-sra.c (class isra_call_summary): New member
663         m_before_any_store, initialize it in the constructor.
664         (isra_call_summary::dump): Dump the new field.
665         (ipa_sra_call_summaries::duplicate): Copy it.
666         (process_scan_results): Set it.
667         (isra_write_edge_summary): Stream it.
668         (isra_read_edge_summary): Likewise.
669         (param_splitting_across_edge): Only override
670         safe_to_import_accesses if m_before_any_store is set.
671
672 2021-07-08  Martin Sebor  <msebor@redhat.com>
673
674         PR bootstrap/101374
675         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
676         Use Object Size Type 0 instead of 1.
677
678 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
679
680         * tree-vect-loop.c (vectorizable_reduction): Remove always-true
681         if condition.
682
683 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
684
685         * match.pd: Simplify an extend-operate-truncate sequence involving
686         a POLY_INT_CST.
687
688 2021-07-08  Roger Sayle  <roger@nextmovesoftware.com>
689             Richard Biener  <rguenther@suse.de>
690
691         PR tree-optimization/40210
692         * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as
693         (x>>C3)&C2 when possible.  Simplify bswap(x)>>C1 as ((T)x)>>C2
694         when possible.  Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255.
695
696 2021-07-08  Uroš Bizjak  <ubizjak@gmail.com>
697
698         PR target/100637
699         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
700         Handle V4QI mode.
701         * config/i386/mmx.md (V_32): New mode iterator.
702         (mov<V_32:mode>): Use V_32 mode iterator.
703         (*mov<V_32:mode>_internal): Ditto.
704         (*push<V_32:mode>2_rex64): Ditto.
705         (*push<V_32:mode>2): Ditto.
706         (movmisalign<V_32:mode>): Ditto.
707         (mmx_<any_shiftrt:insn>v1si3): New insn pattern.
708         (sse4_1_<any_extend:code>v2qiv2hi2): Ditto.
709         (vec_unpacks_lo_v4qi): New expander.
710         (vec_unpacks_hi_v4qi): Ditto.
711         (vec_unpacku_lo_v4qi): Ditto.
712         (vec_unpacku_hi_v4qi): Ditto.
713         * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode.
714         (VALID_INT_MODE_P): Ditto.
715
716 2021-07-08  Michael Meissner  <meissner@linux.ibm.com>
717
718         PR target/100809
719         * config/rs6000/rs6000.md (udivti3): New insn.
720         (divti3): New insn.
721         (umodti3): New insn.
722         (modti3): New insn.
723
724 2021-07-07  Martin Sebor  <msebor@redhat.com>
725
726         PR tree-optimization/100137
727         PR tree-optimization/99121
728         PR tree-optimization/97027
729         * builtins.c (access_ref::access_ref): Also set offmax.
730         (access_ref::offset_in_range): Define new function.
731         (access_ref::add_offset): Set offmax.
732         (access_ref::inform_access): Handle access_none.
733         (handle_mem_ref): Clear ostype.
734         (compute_objsize_r): Handle ASSERT_EXPR.
735         * builtins.h (struct access_ref): Add offmax member.
736         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use
737         compute_objsize() and simplify.
738
739 2021-07-07  Peter Bergner  <bergner@linux.ibm.com>
740
741         * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
742         and VSX_BUILTIN_STXVP.
743
744 2021-07-07  Martin Sebor  <msebor@redhat.com>
745
746         PR target/101363
747         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove
748         a stray %K from error_at() missed in r12-2088.
749
750 2021-07-07  Richard Biener  <rguenther@suse.de>
751
752         PR tree-optimization/99728
753         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record
754         aggregate copies.
755         (mem_refs_may_alias_p): Add assert we handled aggregate
756         copies elsewhere.
757         (sm_seq_valid_bb): Give up when running into aggregate copies.
758         (ref_indep_loop_p): Handle aggregate copies as never
759         being invariant themselves but allow other refs to be
760         disambiguated against them.
761         (can_sm_ref_p): Do not try to apply store-motion to aggregate
762         copies.
763
764 2021-07-06  Indu Bhagat  <indu.bhagat@oracle.com>
765
766         PR debug/101283
767         * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get
768         number of bits.
769
770 2021-07-06  Martin Sebor  <msebor@redhat.com>
771
772         * gimple-pretty-print.c (percent_G_format): Remove.
773         * tree-diagnostic.c (default_tree_printer): Remove calls.
774         * tree-pretty-print.c (percent_K_format): Remove.
775         * tree-pretty-print.h (percent_K_format): Remove.
776
777 2021-07-06  Martin Sebor  <msebor@redhat.com>
778
779         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
780         Remove %K and use error_at.
781         (aarch64_expand_fcmla_builtin): Same.
782         (aarch64_expand_builtin_tme): Same.
783         (aarch64_expand_builtin_memtag): Same.
784         * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same.
785         (arm_expand_builtin): Same.
786         * config/arm/arm.c (bounds_check): Same.
787
788 2021-07-06  Martin Sebor  <msebor@redhat.com>
789
790         * builtins.c (warn_string_no_nul): Remove %G.
791         (maybe_warn_for_bound): Same.
792         (warn_for_access): Same.
793         (check_access): Same.
794         (check_strncat_sizes): Same.
795         (expand_builtin_strncat): Same.
796         (expand_builtin_strncmp): Same.
797         (expand_builtin): Same.
798         (expand_builtin_object_size): Same.
799         (warn_dealloc_offset): Same.
800         (maybe_emit_free_warning): Same.
801         * calls.c (maybe_warn_alloc_args_overflow): Same.
802         (maybe_warn_nonstring_arg): Same.
803         (maybe_warn_rdwr_sizes): Same.
804         * expr.c (expand_expr_real_1): Remove %K.
805         * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G.
806         (gimple_fold_builtin_strncat): Same.
807         * gimple-ssa-sprintf.c (format_directive): Same.
808         (handle_printf_call): Same.
809         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same.
810         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
811         (maybe_diag_access_bounds): Same.  Call gimple_location.
812         (check_bounds_or_overlap): Same.
813         * trans-mem.c (ipa_tm_scan_irr_block): Remove %K.  Simplify.
814         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G.
815         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
816         (maybe_diag_stxncpy_trunc): Same.
817         (handle_builtin_stxncpy_strncat): Same.
818         (maybe_warn_pointless_strcmp): Same.
819         * tree-ssa-uninit.c (maybe_warn_operand): Same.
820
821 2021-07-06  Uroš Bizjak  <ubizjak@gmail.com>
822
823         PR target/97194
824         * config/i386/predicates.md (vec_setm_operand): Enable
825         register_operand for TARGET_SSE4_1.
826         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand
827         as operand 2 predicate.  Call ix86_expand_vector_set_var
828         for non-constant index operand.
829         (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate.
830         Call ix86_expand_vector_set_var for non-constant index operand.
831
832 2021-07-06  Jeff Law  <jeffreyalaw@gmail.com>
833
834         * config/h8300/jumpcall.md (*branch): When possible, generate
835         the comparison in CCZN mode.
836         * config/h8300/predicates.md (simple_memory_operand): Reject all
837         auto-increment addressing modes.
838
839 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
840
841         PR bootstrap/100246
842         * config/i386/i386.h (struct stringop_algs): Define a CTOR for
843         this type.
844
845 2021-07-06  Richard Biener  <rguenther@suse.de>
846
847         * doc/md.texi (vec_fmaddsub<mode>4): Document.
848         (vec_fmsubadd<mode>4): Likewise.
849         * optabs.def (vec_fmaddsub$a4): Add.
850         (vec_fmsubadd$a4): Likewise.
851         * internal-fn.def (IFN_VEC_FMADDSUB): Add.
852         (IFN_VEC_FMSUBADD): Likewise.
853         * tree-vect-slp-patterns.c (addsub_pattern::recognize):
854         Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD.
855         (addsub_pattern::build): Likewise.
856         * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB
857         and CFN_VEC_FMSUBADD are not transparent for permutes.
858         * config/i386/sse.md (vec_fmaddsub<mode>4): New expander.
859         (vec_fmsubadd<mode>4): Likewise.
860
861 2021-07-06  Richard Biener  <rguenther@suse.de>
862
863         * doc/invoke.texi (fmove-loop-stores): Document.
864         * common.opt (fmove-loop-stores): New option.
865         * opts.c (default_options_table): Enable -fmove-loop-stores
866         at -O1 but not -Og.
867         * tree-ssa-loop-im.c (pass_lim::execute): Pass
868         flag_move_loop_stores instead of true to
869         loop_invariant_motion_in_fun.
870
871 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
872
873         * doc/install.texi: Document --with-dsymutil.
874
875 2021-07-06  Andrew Pinski  <apinski@marvell.com>
876
877         PR tree-optimization/101256
878         * dbgcnt.def (phiopt_edge_range): New counter.
879         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
880         Check to make sure the new name is defined in the same
881         bb as the conditional before duplicating range info.
882         Also add debug counter.
883
884 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
885
886         PR rtl-optimization/100328
887         * config/i386/i386-options.c (ix86_option_override_internal):
888         Set param_ira_consider_dup_in_all_alts to 0.
889
890 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
891
892         PR rtl-optimization/100328
893         * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new
894         parameter.
895         * ira.c (ira_get_dup_out_num): Adjust as parameter
896         param_ira_consider_dup_in_all_alts.
897         * params.opt (ira-consider-dup-in-all-alts): New.
898         * ira-conflicts.c (process_regs_for_copy): Add one parameter
899         single_input_op_has_cstr_p.
900         (get_freq_for_shuffle_copy): New function.
901         (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p.
902         * ira-int.h (ira_get_dup_out_num): Add one bool parameter.
903
904 2021-07-05  Jeff Law  <jeffreyalaw@gmail.com>
905
906         * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to
907         generate condition code aware RTL directly.
908
909 2021-07-05  Andrew Pinski  <apinski@marvell.com>
910
911         PR tree-optimization/101039
912         * match.pd (A CMP 0 ? A : -A): New patterns.
913         * tree-ssa-phiopt.c (abs_replacement): Delete function.
914         (tree_ssa_phiopt_worker): Don't call abs_replacement.
915         Update comment about abs_replacement.
916
917 2021-07-05  Andrew Pinski  <apinski@marvell.com>
918
919         * tree-ssa-phiopt.c (gimple_simplify_phiopt):
920         If "A ? B : C" fails to simplify, try "(!A) ? C : B".
921
922 2021-07-05  Andrew Pinski  <apinski@marvell.com>
923
924         * tree-ssa-phiopt.c (match_simplify_replacement):
925         Add early_p argument. Call gimple_simplify_phiopt
926         instead of gimple_simplify.
927         (tree_ssa_phiopt_worker): Update call to
928         match_simplify_replacement and allow unconditionally.
929         (phiopt_early_allow): New function.
930         (gimple_simplify_phiopt): New function.
931
932 2021-07-05  Andrew Pinski  <apinski@marvell.com>
933
934         PR middle-end/101237
935         * fold-const.c (negate_expr_p): Remove call to element_mode
936         and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS,
937         HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS.
938         (fold_negate_expr_1): Likewise.
939         (const_unop): Likewise.
940         (fold_cond_expr_with_comparison): Likewise.
941         (fold_binary_loc): Likewise.
942         (fold_ternary_loc): Likewise.
943         (tree_call_nonnegative_warnv_p): Likewise.
944         * match.pd (-(A + B) -> (-B) - A): Likewise.
945
946 2021-07-05  Iain Sandoe  <iain@sandoe.co.uk>
947
948         * configure.ac: Handle --with-dsymutil in the same way as we
949         do for the assembler and linker.  (DEFAULT_DSYMUTIL): New.
950         Extract the type and version for the dsymutil configured or
951         found by the default searches.
952         * config.in: Regenerated.
953         * configure: Regenerated.
954         * collect2.c (do_dsymutil): Handle locating dsymutil in the
955         same way as for the assembler and  linker.
956         * config/darwin.h (DSYMUTIL): Delete.
957         * gcc.c: Report a configured dsymutil correctly.
958         * exec-tool.in: Allow for dsymutil.
959
960 2021-07-05  Uroš Bizjak  <ubizjak@gmail.com>
961
962         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
963         Handle V4QI and V2HI modes.
964         (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1.
965         Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes.
966         (expand_vec_perm_pshufb): Rewrite to use switch statemets.
967         Handle 4-byte dual operands with TARGET_XOP and single operands
968         with TARGET_SSSE3.  Emit mmx_ppermv32 for TARGET_XOP and
969         mmx_pshufbv4qi3 for TARGET_SSSE3.
970         (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1.
971         (expand_vec_perm_interleave2): Allow 4-byte vector modes.
972         (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3.
973         (expand_vec_perm_even_odd_1): Handle V4QI mode.
974         (expand_vec_perm_broadcast_1): Handle V4QI mode.
975         (ix86_vectorize_vec_perm_const): Handle V4QI mode.
976         * config/i386/mmx.md (mmx_ppermv32): New insn pattern.
977         (mmx_pshufbv4qi3): Ditto.
978         (*mmx_pblendw32): Ditto.
979         (*mmx_pblendw64): Rename from *mmx_pblendw.
980         (mmx_punpckhbw_low): New insn_and_split pattern.
981         (mmx_punpcklbw_low): Ditto.
982
983 2021-07-05  Richard Biener  <rguenther@suse.de>
984
985         * tree-vect-loop-manip.c (vect_loop_versioning): Do not
986         set LOOP_C_INFINITE on the vectorized loop.
987
988 2021-07-05  Richard Biener  <rguenther@suse.de>
989
990         PR middle-end/101291
991         * cfgloopmanip.c (loop_version): Set the loop copy of the
992         versioned loop to the new loop.
993
994 2021-07-04  Iain Sandoe  <iain@sandoe.co.uk>
995
996         PR target/100269
997         * config.gcc: Ensure that Darwin biarch definitions are
998         added before i386.h.
999         * config/i386/darwin.h (TARGET_64BIT): Remove.
1000         (PR80556_WORKAROUND): New.
1001         (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND.
1002         (DARWIN_SUBARCH_SPEC): New.
1003         * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT,
1004         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
1005         (REAL_LIBGCC_SPEC): Remove.
1006         * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT,
1007         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
1008         (REAL_LIBGCC_SPEC): Remove.
1009
1010 2021-07-03  H.J. Lu  <hjl.tools@gmail.com>
1011
1012         PR middle-end/101294
1013         * expr.c (store_constructor): Don't use vec_duplicate on vector.
1014
1015 2021-07-02  Martin Sebor  <msebor@redhat.com>
1016
1017         PR middle-end/98871
1018         PR middle-end/98512
1019         * diagnostic.c (get_any_inlining_info): New.
1020         (update_effective_level_from_pragmas): Handle inlining context.
1021         (diagnostic_enabled): Same.
1022         (diagnostic_report_diagnostic): Same.
1023         * diagnostic.h (struct diagnostic_info): Add ctor.
1024         (struct diagnostic_context): Add new member.
1025         * tree-diagnostic.c (set_inlining_locations): New.
1026         (tree_diagnostics_defaults): Set new callback pointer.
1027
1028 2021-07-02  Peter Bergner  <bergner@linux.ibm.com>
1029
1030         * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
1031         New macros.
1032         (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
1033         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand
1034         lxvp and stxvp built-ins.
1035         (mma_init_builtins): Handle lxvp and stxvp built-ins.
1036         (builtin_function_type): Likewise.
1037         * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document.
1038
1039 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1040
1041         * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept
1042         additional argument for the code.
1043         * config/h8300/h8300.c (compute_a_shift_cc): Accept additional
1044         argument for the code.  Just return if the ZN bits are useful or
1045         not rather than the old style CC_* enums.
1046         * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before
1047         more generic shiftqi patterns.
1048         (shifthi_noscratch, shiftsi_noscratch): Similarly.
1049         (shiftqi_noscratch_set_flags): New pattern.
1050         (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise.
1051
1052 2021-07-02  Andrew MacLeod  <amacleod@redhat.com>
1053
1054         PR tree-optimization/101223
1055         * range-op.cc (build_lt): Add -1 for signed values.
1056         (built_gt): Subtract -1 for signed values.
1057
1058 2021-07-02  David Faust  <david.faust@oracle.com>
1059
1060         * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT.
1061         (btf_asm_type): Likewise.
1062
1063 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1064
1065         * config/h8300/h8300-protos.h (output_a_shift): Make first argument
1066         an array of rtx rather than a pointer to rtx.  Add code argument.
1067         (compute_a_shift_length): Similarly.
1068         * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the
1069         shift itself isn't an operand.  Create dummy operand[0] to carry
1070         a mode and pass a suitable rtx code to compute_a_shift_length.
1071         (get_shift_alg): Adjust operand number of clobber in output templates.
1072         (output_a_shift): Make first argument an array of rtx rather than
1073         a pointer to rtx.  Add code argument for the type of shift.
1074         Adjust now that the shift itself is no longer an operand.
1075         (compute_a_shift_length): Similarly.
1076         * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an
1077         iterator rather than nshift_operator.
1078         (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise.
1079         (shiftqi_clobber_flags): Adjust to API changes in output_a_shift
1080         and compute_a_shift_length.
1081         (shiftqi_noscratch_clobber_flags): Likewise.
1082         (shifthi_noscratch_clobber_flags): Likewise.
1083         (shiftsi_noscratch_clobber_flags): Likewise.
1084
1085 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
1086
1087         PR debug/101283
1088         * config/darwin.h (DSYMUTIL_SPEC): Do not try to run
1089         dsymutil for BTF/CTF.
1090
1091 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
1092
1093         PR debug/101283
1094         * config/darwin.h (CTF_INFO_SECTION_NAME): Update the
1095         segment to include BTF.
1096         (BTF_INFO_SECTION_NAME): New.
1097
1098 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1099
1100         * config/m32r/m32r-protos.h (call_operand): Adjust return type.
1101         (small_data_operand, memreg_operand, small_insn_p): Likewise.
1102         * config/m32r/m32r.c (call_operand): Adjust return type.
1103         (small_data_operand, memreg_operand): Likewise.
1104
1105 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1106
1107         * config/frv/frv-protos.h  (integer_register_operand): Adjust return
1108         type.
1109         (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise.
1110         (fpr_or_int6_operand, gpr_or_int_operand); Likewise.
1111         (gpr_or_int12_operand, gpr_or_int10_operand); Likewise.
1112         (move_source_operand, move_destination_operand): Likewise.
1113         (condexec_source_operand, condexec_dest_operand): Likewise.
1114         (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise.
1115         (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise.
1116         (fcr_operand, icr_operand, cr_operand, call_operand): Likewise.
1117         (fpr_operand, even_reg_operand, odd_reg_operand): Likewise.
1118         (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise.
1119         (even_fpr_operand, odd_fpr_operand): Likewise.
1120         (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise.
1121         (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise.
1122         (uint4_operand, uint1_operand, int_2word_operand): Likewise
1123         (upper_int16_operand, uint16_operand, symbolic_operand): Likewise.
1124         (relational_operator, float_relational_operator): Likewise.
1125         (ccr_eqne_operator, minmax_operator): Likewise.
1126         (condexec_si_binary_operator, condexec_si_media_operator): Likewise.
1127         (condexec_si_divide_operator, condexec_si_unary_operator): Likewise.
1128         (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise.
1129         (intop_compare_operator, acc_operand, even_acc_operand): Likewise.
1130         (quad_acc_operand, accg_operand): Likewise.
1131
1132 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1133
1134         * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change
1135         return type to a bool.
1136         (nonimmediate_nonstack_operand): Likewise.
1137         (xstormy16_splittable_below100_operand): Likewise.
1138         * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix
1139         return type.
1140         (xstormy16_splittable_below100_operand): Likewise.
1141
1142 2021-07-02  Richard Biener  <rguenther@suse.de>
1143
1144         PR tree-optimization/101293
1145         * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases
1146         with combined offsets.
1147         (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were
1148         combined with the rest of the offset.
1149
1150 2021-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1151
1152         * config/i386/i386.c (asm_preferred_eh_data_format): Always use the
1153         PIC encodings for PE-COFF targets.
1154
1155 2021-07-02  Jakub Jelinek  <jakub@redhat.com>
1156
1157         PR target/101286
1158         * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant):
1159         Return nullptr for TImode inner mode.
1160
1161 2021-07-02  Richard Biener  <rguenther@suse.de>
1162
1163         PR tree-optimization/101280
1164         PR tree-optimization/101173
1165         * gimple-loop-interchange.cc
1166         (tree_loop_interchange::valid_data_dependences): Properly
1167         guard all dependence checks with DDR_REVERSED_P or its
1168         inverse.
1169
1170 2021-07-02  Hongyu Wang  <hongyu.wang@intel.com>
1171
1172         * config/i386/i386-expand.c (ix86_expand_builtin):
1173         Add branch to clear odata when ZF is set for asedecenc_expand
1174         and wideaesdecenc_expand.
1175
1176 2021-07-02  Eugene Rozenfeld  <erozen@microsoft.com>
1177
1178         * config/i386/gcc-auto-profile: regenerate
1179
1180 2021-07-02  liuhongt  <hongtao.liu@intel.com>
1181
1182         * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to ..
1183         (trunc<mode><pmov_dst_4_lower>2): this.
1184
1185 2021-07-01  David Malcolm  <dmalcolm@redhat.com>
1186
1187         * diagnostic.h (diagnostic_context::m_file_cache): New field.
1188         * input.c (class fcache): Rename to...
1189         (class file_cache_slot): ...this, making most members private and
1190         prefixing fields with "m_".
1191         (file_cache_slot::get_file_path): New accessor.
1192         (file_cache_slot::get_use_count): New accessor.
1193         (file_cache_slot::missing_trailing_newline_p): New accessor.
1194         (file_cache_slot::inc_use_count): New.
1195         (fcache_buffer_size): Move to...
1196         (file_cache_slot::buffer_size): ...here.
1197         (fcache_line_record_size): Move to...
1198         (file_cache_slot::line_record_size): ...here.
1199         (fcache_tab): Delete, in favor of global_dc->m_file_cache.
1200         (fcache_tab_size): Move to file_cache::num_file_slots.
1201         (diagnostic_file_cache_init): Update for move of fcache_tab
1202         to global_dc->m_file_cache.
1203         (diagnostic_file_cache_fini): Likewise.
1204         (lookup_file_in_cache_tab): Convert to...
1205         (file_cache::lookup_file): ...this.
1206         (diagnostics_file_cache_forcibly_evict_file): Update for move of
1207         fcache_tab to global_dc->m_file_cache, moving most of
1208         implementation to...
1209         (file_cache::forcibly_evict_file): ...this new function and...
1210         (file_cache_slot::evict): ...this new function.
1211         (evicted_cache_tab_entry): Convert to...
1212         (file_cache::evicted_cache_tab_entry): ...this.
1213         (add_file_to_cache_tab): Convert to...
1214         (file_cache::add_file): ...this, moving bulk of implementation
1215         to...
1216         (file_cache_slot::create): ..this new function.
1217         (file_cache::file_cache): New.
1218         (file_cache::~file_cache): New.
1219         (lookup_or_add_file_to_cache_tab): Convert to...
1220         (file_cache::lookup_or_add_file): ..this new function.
1221         (fcache::fcache): Rename to...
1222         (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes
1223         to fields.
1224         (fcache::~fcache): Rename to...
1225         (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes
1226         to fields.
1227         (needs_read): Convert to...
1228         (file_cache_slot::needs_read_p): ...this.
1229         (needs_grow): Convert to...
1230         (file_cache_slot::needs_grow_p): ...this.
1231         (maybe_grow): Convert to...
1232         (file_cache_slot::maybe_grow): ...this.
1233         (read_data): Convert to...
1234         (file_cache_slot::read_data): ...this.
1235         (maybe_read_data): Convert to...
1236         (file_cache_slot::maybe_read_data): ...this.
1237         (get_next_line): Convert to...
1238         (file_cache_slot::get_next_line): ...this.
1239         (goto_next_line): Convert to...
1240         (file_cache_slot::goto_next_line): ...this.
1241         (read_line_num): Convert to...
1242         (file_cache_slot::read_line_num): ...this.
1243         (location_get_source_line): Update for moving of globals to
1244         global_dc->m_file_cache.
1245         (location_missing_trailing_newline): Likewise.
1246         * input.h (class file_cache_slot): New forward decl.
1247         (class file_cache): New.
1248
1249 2021-07-01  Michael Meissner  <meissner@linux.ibm.com>
1250
1251         * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE
1252         128-bit floating point conditional move support.
1253         (have_compare_and_set_mask): Add IEEE 128-bit floating point
1254         types.
1255         * config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn.
1256         (mov<mode>cc_p10, IEEE128 iterator): New insn.
1257         (mov<mode>cc_invert_p10, IEEE128 iterator): New insn.
1258         (fpmask<mode>, IEEE128 iterator): New insn.
1259         (xxsel<mode>, IEEE128 iterator): New insn.
1260
1261 2021-07-01  Iain Sandoe  <iain@sandoe.co.uk>
1262
1263         PR debug/101283
1264         * config/darwin.h (CTF_INFO_SECTION_NAME): New.
1265
1266 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
1267
1268         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
1269         Make it global.
1270         * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate):
1271         New prototype.
1272         * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator.
1273         (vec_duplicate<mode>): New expander.
1274
1275 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
1276
1277         PR target/100865
1278         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
1279         New prototype.
1280         (ix86_byte_broadcast): New function.
1281         (ix86_convert_const_wide_int_to_broadcast): Likewise.
1282         (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode
1283         size is 16 bytes or bigger.
1284         (ix86_broadcast_from_integer_constant): New function.
1285         (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR
1286         to broadcast if mode size is 16 bytes or bigger.
1287         * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New
1288         prototype.
1289         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function.
1290
1291 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
1292
1293         * config/i386/predicates.md (ix86_endbr_immediate_operand):
1294         Return true/false instead of 1/0.
1295         (movq_parallel): Ditto.
1296
1297 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
1298
1299         * recog.c (general_operand): Return true/false instead of 1/0.
1300         (register_operand): Ditto.
1301         (immediate_operand): Ditto.
1302         (const_int_operand): Ditto.
1303         (const_scalar_int_operand): Ditto.
1304         (const_double_operand): Ditto.
1305         (push_operand): Ditto.
1306         (pop_operand): Ditto.
1307         (memory_operand): Ditto.
1308         (indirect_operand): Ditto.
1309
1310 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
1311
1312         * genpreds.c (write_predicate_subfunction):
1313         Change the type of written subfunction to bool.
1314         (write_one_predicate_function):
1315         Change the type of written function to bool.
1316         (write_tm_preds_h): Ditto.
1317         * recog.h (*insn_operand_predicate_fn): Change the type to bool.
1318         * recog.c (general_operand): Change the type to bool.
1319         (address_operand): Ditto.
1320         (register_operand): Ditto.
1321         (pmode_register_operand): Ditto.
1322         (scratch_operand): Ditto.
1323         (immediate_operand): Ditto.
1324         (const_int_operand): Ditto.
1325         (const_scalar_int_operand): Ditto.
1326         (const_double_operand): Ditto.
1327         (nonimmediate_operand): Ditto.
1328         (nonmemory_operand): Ditto.
1329         (push_operand): Ditto.
1330         (pop_operand): Ditto.
1331         (memory_operand): Ditto.
1332         (indirect_operand): Ditto.
1333         (ordered_comparison_operator): Ditto.
1334         (comparison_operator): Ditto.
1335         * config/i386/i386-expand.c (ix86_expand_sse_cmp):
1336         Change the type of indirect predicate function to bool.
1337         * config/rs6000/rs6000.c (easy_vector_constant):
1338         Change the type to bool.
1339         * config/mips/mips-protos.h (m16_based_address_p):
1340         Change the type of operand 3 to bool.
1341
1342 2021-07-01  Richard Biener  <rguenther@suse.de>
1343
1344         PR tree-optimization/101280
1345         PR tree-optimization/101173
1346         * gimple-loop-interchange.cc
1347         (tree_loop_interchange::valid_data_dependences): Revert
1348         previous change and instead correctly handle DDR_REVERSED_P
1349         dependence.
1350
1351 2021-07-01  Richard Biener  <rguenther@suse.de>
1352
1353         PR tree-optimization/101278
1354         * tree-ssa-dse.c (dse_classify_store): First check for
1355         uses, then ignore stmt for chaining purposes.
1356
1357 2021-07-01  Richard Biener  <rguenther@suse.de>
1358
1359         PR tree-optimization/100778
1360         * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping
1361         vectorized ops ahead of their scalar BB.
1362
1363 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
1364
1365         PR target/101044
1366         * config/i386/i386.md (*nabs<dwi>2_doubleword):
1367         New insn_and_split pattern.
1368         (*nabs<dwi>2_1): Ditto.
1369         * config/i386/i386-features.c
1370         (general_scalar_chain::compute_convert_gain):
1371         Handle (NEG (ABS (...))) RTX.  Rewrite src code
1372         scanner as switch statement.
1373         (general_scalar_chain::convert_insn):
1374         Handle (NEG (ABS (...))) RTX.
1375         (general_scalar_to_vector_candidate_p):
1376         Detect  (NEG (ABS (...))) RTX.  Reorder case statements
1377         for (AND (NOT (...) ...)) fallthrough.
1378
1379 2021-07-01  Richard Biener  <rguenther@suse.de>
1380
1381         PR tree-optimization/101178
1382         * tree-vect-slp.c (slpg_vertex::materialize): Remove.
1383         (slpg::perm_in): Add.
1384         (slpg::get_perm_in): Remove.
1385         (slpg::get_perm_materialized): Add.
1386         (vect_optimize_slp): Handle VEC_PERM nodes more optimally
1387         during permute propagation and materialization.
1388
1389 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
1390
1391         PR debug/101266
1392         * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.
1393
1394 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
1395
1396         PR middle-end/94366
1397         * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to
1398         is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type,
1399         use boolean_type_node instead of integer_type_node as NE_EXPR type.
1400         (lower_reduction_clauses): Likewise.
1401
1402 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
1403
1404         * config/gcn/gcn.c: Include dwarf2.h.
1405         (gcn_addr_space_debug): New function.
1406         (TARGET_ADDR_SPACE_DEBUG): New hook.
1407
1408 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
1409
1410         * common/config/gcn/gcn-common.c
1411         (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3.
1412         * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer
1413         when emitting CFI.
1414         (gcn_expand_prologue): Prefer the frame pointer when emitting CFI.
1415         (gcn_frame_pointer_rqd): New function.
1416         (TARGET_FRAME_POINTER_REQUIRED): New hook.
1417
1418 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
1419
1420         * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for
1421         prologue register saves.
1422         (gcn_debug_unwind_info): Use UI_DWARF2.
1423         (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC.
1424         (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span.
1425         * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define.
1426         (DWARF_LINK_REGISTER): New define.
1427         (FIRST_PSEUDO_REGISTER): Increment.
1428         (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER.
1429         (CALL_USED_REGISTERS): Likewise.
1430         (REGISTER_NAMES): Likewise.
1431
1432 2021-06-30  Richard Biener  <rguenther@suse.de>
1433
1434         PR tree-optimization/101267
1435         * tree-vect-stmts.c (vect_check_scalar_mask): Adjust
1436         API and use SLP compatible interface of vect_is_simple_use.
1437         Reject not vectorized SLP defs for callers that do not support
1438         that.
1439         (vect_check_store_rhs): Handle masked stores and pass down
1440         the appropriate operator index.
1441         (vectorizable_call): Adjust.
1442         (vectorizable_store): Likewise.
1443         (vectorizable_load): Likewise.  Handle SLP pecularity of
1444         masked loads.
1445         (vect_is_simple_use): Remove special-casing of masked stores.
1446
1447 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
1448
1449         * common.opt (foffload): Remove help as Driver only.
1450         * gcc.c (display_help): Add -foffload.
1451
1452 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
1453
1454         * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC.
1455         (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into
1456         a candidate list; better inform no offload target is configured
1457         and fix hint extraction when passed target is not '\0' at [len].
1458         * common.opt (foffload): Add tailing '.'.
1459         (foffload-options): Likewise; fix flag name in the help string.
1460
1461 2021-06-30  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
1462
1463         PR target/66791
1464         * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32.
1465         (vcage_f32): Gate comparison on __FAST_MATH__.
1466         (vcageq_f32): Likewise.
1467         (vcale_f32): Likewise.
1468         (vcaleq_f32): Likewise.
1469         (vcagt_f32): Likewise.
1470         (vcagtq_f32): Likewise.
1471         (vcalt_f32): Likewise.
1472         (vcaltq_f32): Likewise.
1473         (vcage_f16): Likewise.
1474         (vcageq_f16): Likewise.
1475         (vcale_f16): Likewise.
1476         (vcaleq_f16): Likewise.
1477         (vcagt_f16): Likewise.
1478         (vcagtq_f16): Likewise.
1479         (vcalt_f16): Likewise.
1480         (vcaltq_f16): Likewise.
1481
1482 2021-06-30  Richard Biener  <rguenther@suse.de>
1483
1484         PR tree-optimization/101264
1485         * tree-vect-slp.c (vect_optimize_slp): Propagate the
1486         computed perm_in to all "any" permute successors
1487         we cannot de-duplicate immediately.
1488
1489 2021-06-30  liuhongt  <hongtao.liu@intel.com>
1490
1491         PR target/101248
1492         * config/i386/sse.md
1493         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>):
1494         Refined to ..
1495         (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>):
1496         this.
1497         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined.
1498         * config/i386/subst.md (maskz_scalar): New define_subst.
1499         (maskz_scalar_name): New subst_attr.
1500         (maskz_scalar_op5): Ditto.
1501         (round_saeonly_maskz_scalar_op5): Ditto.
1502         (round_saeonly_maskz_scalar_operand5): Ditto.
1503
1504 2021-06-30  David Edelsohn  <dje.gcc@gmail.com>
1505
1506         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
1507         Increase code CSECT alignment to at least 32 bytes.
1508         * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte
1509         alignment designation.
1510
1511 2021-06-29  Sergei Trofimovich  <siarheit@google.com>
1512
1513         * doc/generic.texi: Fix s/net yet/not yet/ typo.
1514
1515 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
1516
1517         PR tree-optimization/101254
1518         * range-op.cc (operator_minus::op1_op2_relation_effect): Check for
1519         wrapping/non-wrapping when setting the result range.
1520
1521 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
1522
1523         * value-query.cc (gimple_range_global): Allow phis.
1524
1525 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
1526
1527         * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt.
1528         (simplify_using_ranges::op_with_boolean_value_range_p): Add a
1529         statement for location context.
1530         (check_for_binary_op_overflow): Ditto.
1531         (simplify_using_ranges::get_vr_for_comparison): Ditto.
1532         (simplify_using_ranges::compare_name_with_value): Ditto.
1533         (simplify_using_ranges::compare_names): Ditto.
1534         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto.
1535         (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto.
1536         (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto.
1537         (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto.
1538         (simplify_using_ranges::two_valued_val_range_p): Ditto.
1539         (simplify_using_ranges::simplify): Ditto.
1540         * vr-values.h: Adjust prototypes.
1541
1542 2021-06-29  Uroš Bizjak  <ubizjak@gmail.com>
1543
1544         PR target/95046
1545         * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern.
1546
1547 2021-06-29  Julian Brown  <julian@codesourcery.com>
1548
1549         * config/gcn/gcn.c (gcn_init_libfuncs): New function.
1550         (TARGET_INIT_LIBFUNCS): Define target hook using above function.
1551         * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4
1552         otherwise.
1553         (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
1554         (MAX_FIXED_MODE_SIZE): Change to 128.
1555
1556 2021-06-29  Julian Brown  <julian@codesourcery.com>
1557
1558         * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant.
1559         (s_mnemonic): Add clrsb.
1560         (gcn_flbit<mode>_int): Add insn pattern for SImode/DImode.
1561         (clrsb<mode>2): Add expander for SImode/DImode.
1562
1563 2021-06-29  Julian Brown  <julian@codesourcery.com>
1564
1565         * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm,
1566         muldi3): Add patterns.
1567
1568 2021-06-29  Julian Brown  <julian@codesourcery.com>
1569
1570         * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander.
1571         (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns.
1572
1573 2021-06-29  Julian Brown  <julian@codesourcery.com>
1574
1575         * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.
1576
1577 2021-06-29  Joseph Myers  <joseph@codesourcery.com>
1578
1579         * btfout.c, ctfout.c: Include "memmodel.h".
1580
1581 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
1582
1583         * gcc.c (check_offload_target_name): Cast len argument to
1584         %q.*s to 'int'; avoid -Wstringop-truncation warning.
1585
1586 2021-06-29  Richard Biener  <rguenther@suse.de>
1587
1588         * tree-vect-slp.c (vect_optimize_slp): Forward propagate
1589         to "any" permute nodes and relax "any" permute proapgation
1590         during iterative backward propagation.
1591
1592 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
1593
1594         PR other/67300
1595         * common.opt (-foffload=): Update description.
1596         (-foffload-options=): New.
1597         * doc/invoke.texi (C Language Options): Document
1598         -foffload and -foffload-options.
1599         * gcc.c (check_offload_target_name): New, split off from
1600         handle_foffload_option.
1601         (check_foffload_target_names): New.
1602         (handle_foffload_option): Handle -foffload=default.
1603         (driver_handle_option): Update for -foffload-options.
1604         * lto-opts.c (lto_write_options): Use -foffload-options
1605         instead of -foffload.
1606         * lto-wrapper.c (merge_and_complain, append_offload_options):
1607         Likewise.
1608         * opts.c (common_handle_option): Likewise.
1609
1610 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
1611
1612         * doc/invoke.texi (C Language Options): Sort options
1613         alphabetically in optlist and also the description itself.
1614         Remove leftover -fallow-single-precision from and add missing
1615         -fgnu-tm to the optlist.
1616
1617 2021-06-29  Richard Biener  <rguenther@suse.de>
1618
1619         * tree-vect-slp.c (slpg_vertex::visited): Remove.
1620         (vect_slp_perms_eq): Handle -1 permutes.
1621         (vect_optimize_slp): Rewrite permute propagation.
1622
1623 2021-06-29  Jakub Jelinek  <jakub@redhat.com>
1624
1625         PR c++/101210
1626         * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't
1627         perform the optimization in GENERIC when sanitizing and x has a
1628         reference type.
1629
1630 2021-06-29  Richard Biener  <rguenther@suse.de>
1631
1632         PR tree-optimization/101242
1633         * tree-vect-slp.c (vect_slp_build_vertices): Force-add
1634         PHIs with not represented initial values as leafs.
1635
1636 2021-06-29  Jan-Benedict Glaw  <jbglaw@getslash.de>
1637
1638         * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning.
1639         * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove
1640         "register" keyword.
1641         (pdp11_initial_elimination_offset) Remove unused variable.
1642         (pdp11_cmp_length) Ditto.
1643         (pdp11_insn_cost): Ditto, and fix signedness warning.
1644
1645 2021-06-29  David Edelsohn  <dje.gcc@gmail.com>
1646
1647         * btfout.c: Include tm_p.h.
1648         * ctfout.c: Same.
1649
1650 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
1651
1652         * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
1653         frame related.
1654         (bpf_expand_epilogue): Likewise.
1655         * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
1656         Do not define DBX_DEBUGGING_INFO.
1657
1658 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
1659
1660         * doc/invoke.texi: Document the CTF and BTF debug info options.
1661
1662 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
1663             David Faust  <david.faust@oracle.com>
1664             Jose E. Marchesi  <jose.marchesi@oracle.com>
1665             Weimin Pan  <weimin.pan@oracle.com>
1666
1667         * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to
1668         GTFILES.  Add new object files.
1669         * common.opt: Add CTF and BTF debug info options.
1670         * btfout.c: New file.
1671         * ctfc.c: Likewise.
1672         * ctfc.h: Likewise.
1673         * ctfout.c: Likewise.
1674         * dwarf2ctf.c: Likewise.
1675         * dwarf2ctf.h: Likewise.
1676         * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and
1677         BTF_DEBUG.
1678         * dwarf2out.c (dwarf2out_source_line): Likewise.
1679         (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to
1680         be generated.
1681         (debug_format_do_cu): New function.
1682         (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for
1683         them if requested.
1684         Include dwarf2ctf.c.
1685         * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug
1686         formats.
1687         * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG.
1688         (CTF_DEBUG): New bitmask.
1689         (BTF_DEBUG): Likewise.
1690         (enum ctf_debug_info_levels): New enum.
1691         * gengtype.c (open_base_files): Handle ctfc.h.
1692         (main): Handle uint32_t type.
1693         * flags.h (btf_debuginfo_p): New definition.
1694         (dwarf_based_debuginfo_p): Likewise.
1695         * opts.c (debug_type_names): Add entries for CTF and BTF.
1696         (btf_debuginfo_p): New function.
1697         (dwarf_based_debuginfo_p): Likewise.
1698         (common_handle_option): Handle -gctfN and -gbtf options.
1699         (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate.
1700         * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if
1701         frontend is not C.
1702
1703 2021-06-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
1704
1705         * dwarf2out.c (AT_class): Function is no longer static.
1706         (AT_int): Likewise.
1707         (AT_unsigned): Likewise.
1708         (AT_loc): Likewise.
1709         (get_AT): Likewise.
1710         (get_AT_string): Likewise.
1711         (get_AT_flag): Likewise.
1712         (get_AT_unsigned): Likewise.
1713         (get_AT_ref): Likewise.
1714         (new_die_raw): Likewise.
1715         (lookup_decl_die): Likewise.
1716         (base_type_die): Likewise.
1717         (add_name_attribute): Likewise.
1718         (add_AT_int): Likewise.
1719         (add_AT_unsigned): Likewise.
1720         (add_AT_loc): Likewise.
1721         (dw_get_die_tag): New function.
1722         (dw_get_die_child): Likewise.
1723         (dw_get_die_sib): Likewise.
1724         (struct dwarf_file_data): Move from here to dwarf2out.h
1725         (struct dw_attr_struct): Likewise.
1726         * dwarf2out.h: Analogous changes.
1727
1728 2021-06-28  Martin Jambor  <mjambor@suse.cz>
1729
1730         PR ipa/93385
1731         * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
1732         members m_dead_stmts and m_dead_ssas.
1733         * ipa-param-manipulation.c
1734         (ipa_param_body_adjustments::mark_dead_statements): New function.
1735         (ipa_param_body_adjustments::common_initialization): Call it on
1736         all removed but not split parameters.
1737         (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
1738         new mwmbers.
1739         (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that
1740         are dead.
1741         * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset
1742         dead debug statements.
1743         (copy_phis_for_bb): Do not copy dead PHI nodes.
1744
1745 2021-06-28  Martin Jambor  <mjambor@suse.cz>
1746
1747         PR ipa/93385
1748         * symtab-clones.h (clone_info): Removed member param_adjustments.
1749         * ipa-param-manipulation.h: Adjust initial comment to reflect how we
1750         deal with pass-through splits now.
1751         (ipa_param_performed_split): Removed.
1752         (ipa_param_adjustments::modify_call): Adjusted parameters.
1753         (class ipa_param_body_adjustments): Adjusted parameters of
1754         register_replacement, modify_gimple_stmt and modify_call_stmt.
1755         (ipa_verify_edge_has_no_modifications): Declare.
1756         (ipa_edge_modifications_finalize): Declare.
1757         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove
1758         performed_splits processing, pas only edge to padjs->modify_call,
1759         check that call arguments were not modified if they should not have
1760         been.
1761         * cgraphclones.c (cgraph_node::create_clone): Do not copy performed
1762         splits.
1763         * ipa-param-manipulation.c (struct pass_through_split_map): New type.
1764         (ipa_edge_modification_info): Likewise.
1765         (ipa_edge_modification_sum): Likewise.
1766         (ipa_edge_modifications): New edge summary.
1767         (ipa_verify_edge_has_no_modifications): New function.
1768         (transitive_split_p): Removed.
1769         (transitive_split_map): Likewise.
1770         (init_transitive_splits): Likewise.
1771         (ipa_param_adjustments::modify_call): Adjusted to use the new edge
1772         summary instead of performed_splits.
1773         (ipa_param_body_adjustments::register_replacement): Drop dummy
1774         parameter, set base_index of the created ipa_param_body_replacement.
1775         (phi_arg_will_live_p): New function.
1776         (ipa_param_body_adjustments::common_initialization): Do not create
1777         IPA_SRA dummy decls.
1778         (simple_tree_swap_info): Removed.
1779         (remap_split_decl_to_dummy): Likewise.
1780         (record_argument_state_1): New function.
1781         (record_argument_state): Likewise.
1782         (ipa_param_body_adjustments::modify_call_stmt): New parameter
1783         orig_stmt.  Do not work with dummy decls, save necessary info about
1784         changes to ipa_edge_modifications.
1785         (ipa_param_body_adjustments::modify_gimple_stmt): New parameter
1786         orig_stmt, pass it to modify_call_stmt.
1787         (ipa_param_body_adjustments::modify_cfun_body): Adjust call to
1788         modify_gimple_stmt.
1789         (ipa_edge_modifications_finalize): New function.
1790         * tree-inline.c (remap_gimple_stmt): Pass original statement to
1791         modify_gimple_stmt.
1792         (copy_phis_for_bb): Do not copy dead PHI nodes.
1793         (expand_call_inline): Do not remap performed_splits.
1794         (update_clone_info): Likewise.
1795         * toplev.c: Include ipa-param-manipulation.h.
1796         (toplev::finalize): Call ipa_edge_modifications_finalize.
1797
1798 2021-06-28  Andrew Pinski  <apinski@marvell.com>
1799
1800         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range
1801         info if we're the only things setting the target PHI.
1802         (value_replacement): Don't duplicate range here.
1803         (minmax_replacement): Likewise.
1804
1805 2021-06-28  Richard Biener  <rguenther@suse.de>
1806
1807         PR tree-optimization/101229
1808         * gimple-walk.c (gimple_walk_op): Handle PHIs.
1809
1810 2021-06-28  Martin Liska  <mliska@suse.cz>
1811
1812         * config/v850/v850.c (construct_dispose_instruction): Allocate
1813         a bigger buffer.
1814         (construct_prepare_instruction): Likewise.
1815
1816 2021-06-28  Martin Liska  <mliska@suse.cz>
1817
1818         * config/v850/v850.c (v850_option_override): Build default
1819         target node.
1820         (v850_can_inline_p): New.  Allow MASK_PROLOG_FUNCTION to be
1821         ignored for inlining.
1822         (TARGET_CAN_INLINE_P): New.
1823
1824 2021-06-28  Richard Biener  <rguenther@suse.de>
1825
1826         PR tree-optimization/101207
1827         * tree-vect-slp.c (vect_optimize_slp): Do BB reduction
1828         permute eliding for load permutations properly.
1829
1830 2021-06-28  Richard Biener  <rguenther@suse.de>
1831
1832         PR tree-optimization/101173
1833         * gimple-loop-interchange.cc
1834         (tree_loop_interchange::valid_data_dependences): Disallow outer
1835         loop dependence distance of zero.
1836
1837 2021-06-28  liuhongt  <hongtao.liu@intel.com>
1838
1839         PR target/100648
1840         * config/i386/sse.md (*avx_cmp<mode>3_lt): New
1841         define_insn_and_split.
1842         (*avx_cmp<mode>3_ltint): Ditto.
1843         (*avx2_pcmp<mode>3_3): Ditto.
1844         (*avx2_pcmp<mode>3_4): Ditto.
1845         (*avx2_pcmp<mode>3_5): Ditto.
1846
1847 2021-06-28  liuhongt  <hongtao.liu@intel.com>
1848
1849         * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256,
1850         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256,
1851         IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS,
1852         IX86_BUILTIN_PBLENDVB128): Replace icode with
1853         CODE_FOR_nothing.
1854         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv
1855         builtins.
1856         * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not):
1857         New pre_reload splitter.
1858
1859 2021-06-27  Andrew Pinski  <apinski@marvell.com>
1860
1861         PR middle-end/101230
1862         * fold-const.c (fold_ternary_loc): Check
1863         the return value of invert_tree_comparison.
1864
1865 2021-06-27  David Edelsohn  <dje.gcc@gmail.com>
1866
1867         * config.gcc: Add SPDX License Identifier.
1868         (powerpc-ibm-aix789): Default to aix73.h.
1869         (powerpc-ibm-aix7.2.*.*): New stanza.
1870         * config/rs6000/aix72.h: Add SPDX License Identifier.
1871         * config/rs6000/aix73.h: New file.
1872
1873 2021-06-26  Jason Merrill  <jason@redhat.com>
1874
1875         * except.c: #include "dwarf2.h" instead of "dwarf2out.h".
1876
1877 2021-06-26  Andrew Pinski  <apinski@marvell.com>
1878
1879         * genmatch.c (lower_cond): Copy for_subst_vec
1880         for the simplify also.
1881         (lower): Swap the order for lower_for and lower_cond.
1882
1883 2021-06-26  Andrew Pinski  <apinski@marvell.com>
1884
1885         * tree-ssa-phiopt.c (match_simplify_replacement): Reset
1886         flow senatitive info on the moved ssa set.
1887
1888 2021-06-26  Andrew Pinski  <apinski@marvell.com>
1889
1890         * fold-const.c (fold_cond_expr_with_comparison):
1891         Exand arg0 into comp_code, arg00, and arg01.
1892         (fold_ternary_loc): Use invert_tree_comparison
1893         instead of fold_invert_truthvalue for the case
1894         where we have A CMP B ? C : A.
1895
1896 2021-06-25  Martin Sebor  <msebor@redhat.com>
1897
1898         PR middle-end/101216
1899         * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant.
1900
1901 2021-06-25  Jeff Law  <jeffreyalaw@gmail.com>
1902
1903         * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT.
1904
1905 2021-06-25  Richard Biener  <rguenther@suse.de>
1906
1907         PR tree-optimization/101202
1908         * tree-vect-slp.c (vect_optimize_slp): Explicitely handle
1909         failed nodes.
1910
1911 2021-06-25  Richard Biener  <rguenther@suse.de>
1912
1913         * tree-vect-slp-patterns.c (addsub_pattern::build): Copy
1914         STMT_VINFO_REDUC_DEF from the original representative.
1915
1916 2021-06-25  Martin Sebor  <msebor@redhat.com>
1917
1918         * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING,
1919         gimple_no_warning_p and gimple_set_no_warning with
1920         warning_suppressed_p, and suppress_warning.
1921         (c_strlen): Same.
1922         (maybe_warn_for_bound): Same.
1923         (warn_for_access): Same.
1924         (check_access): Same.
1925         (expand_builtin_strncmp): Same.
1926         (fold_builtin_varargs): Same.
1927         * calls.c (maybe_warn_nonstring_arg): Same.
1928         (maybe_warn_rdwr_sizes): Same.
1929         * cfgexpand.c (expand_call_stmt): Same.
1930         * cgraphunit.c (check_global_declaration): Same.
1931         * fold-const.c (fold_undefer_overflow_warnings): Same.
1932         (fold_truth_not_expr): Same.
1933         (fold_unary_loc): Same.
1934         (fold_checksum_tree): Same.
1935         * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same.
1936         (array_bounds_checker::check_mem_ref): Same.
1937         (array_bounds_checker::check_addr_expr): Same.
1938         (array_bounds_checker::check_array_bounds): Same.
1939         * gimple-expr.c (copy_var_decl): Same.
1940         * gimple-fold.c (gimple_fold_builtin_strcpy): Same.
1941         (gimple_fold_builtin_strncat): Same.
1942         (gimple_fold_builtin_stxcpy_chk): Same.
1943         (gimple_fold_builtin_stpcpy): Same.
1944         (gimple_fold_builtin_sprintf): Same.
1945         (fold_stmt_1): Same.
1946         * gimple-ssa-isolate-paths.c (diag_returned_locals): Same.
1947         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
1948         * gimple-ssa-sprintf.c (handle_printf_call): Same.
1949         * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same.
1950         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
1951         * gimple-ssa-warn-restrict.h: Adjust declarations.
1952         (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING,
1953         gimple_no_warning_p and gimple_set_no_warning with
1954         warning_suppressed_p, and suppress_warning.
1955         (check_call): Same.
1956         (check_bounds_or_overlap): Same.
1957         * gimple.c (gimple_build_call_from_tree): Same.
1958         * gimplify.c (gimplify_return_expr): Same.
1959         (gimplify_cond_expr): Same.
1960         (gimplify_modify_expr_complex_part): Same.
1961         (gimplify_modify_expr): Same.
1962         (gimple_push_cleanup): Same.
1963         (gimplify_expr): Same.
1964         * omp-expand.c (expand_omp_for_generic): Same.
1965         (expand_omp_taskloop_for_outer): Same.
1966         * omp-low.c (lower_rec_input_clauses): Same.
1967         (lower_lastprivate_clauses): Same.
1968         (lower_send_clauses): Same.
1969         (lower_omp_target): Same.
1970         * tree-cfg.c (pass_warn_function_return::execute): Same.
1971         * tree-complex.c (create_one_component_var): Same.
1972         * tree-inline.c (remap_gimple_op_r): Same.
1973         (copy_tree_body_r): Same.
1974         (declare_return_variable): Same.
1975         (expand_call_inline): Same.
1976         * tree-nested.c (lookup_field_for_decl): Same.
1977         * tree-sra.c (create_access_replacement): Same.
1978         (generate_subtree_copies): Same.
1979         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.
1980         * tree-ssa-forwprop.c (combine_cond_expr_cond): Same.
1981         * tree-ssa-loop-ch.c (ch_base::copy_headers): Same.
1982         * tree-ssa-loop-im.c (execute_sm): Same.
1983         * tree-ssa-phiopt.c (cond_store_replacement): Same.
1984         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
1985         (handle_builtin_strcpy): Same.
1986         (maybe_diag_stxncpy_trunc): Same.
1987         (handle_builtin_stxncpy_strncat): Same.
1988         (handle_builtin_strcat): Same.
1989         * tree-ssa-uninit.c (get_no_uninit_warning): Same.
1990         (set_no_uninit_warning): Same.
1991         (uninit_undefined_value_p): Same.
1992         (warn_uninit): Same.
1993         (maybe_warn_operand): Same.
1994         * tree-vrp.c (compare_values_warnv): Same.
1995         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same.
1996         (test_for_singularity): Same.
1997         * gimple.h (warning_suppressed_p): New function.
1998         (suppress_warning): Same.
1999         (copy_no_warning): Same.
2000         (gimple_set_block): Call gimple_set_location.
2001         (gimple_set_location): Call copy_warning.
2002
2003 2021-06-25  Martin Sebor  <msebor@redhat.com>
2004
2005         * tree.h (warning_suppressed_at, copy_warning,
2006         warning_suppressed_p, suppress_warning): New functions.
2007
2008 2021-06-25  Martin Sebor  <msebor@redhat.com>
2009
2010         * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o.
2011         * gengtype.c (open_base_files): Add diagnostic-spec.h.
2012         * diagnostic-spec.c: New file.
2013         * diagnostic-spec.h: New file.
2014         * tree.h (no_warning, all_warnings, suppress_warning_at): New
2015         declarations.
2016         * warning-control.cc: New file.
2017
2018 2021-06-25  liuhongt  <hongtao.liu@intel.com>
2019
2020         PR target/101185
2021         * config/i386/i386.c (x86_order_regs_for_local_alloc):
2022         Revert r12-1669.
2023
2024 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2025
2026         PR tree-optimization/101189
2027         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass
2028         LHS range of condition to postfold routine.
2029         (fold_using_range::postfold_gcond_edges): Only process the TRUE or
2030         FALSE edge if the LHS range supports it being taken.
2031         * gimple-range-fold.h (postfold_gcond_edges): Add range parameter.
2032
2033 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2034
2035         * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks.
2036         (relation_oracle::find_relation_block): Check correct bitmap.
2037         (relation_oracle::dump): Do not dump NULL blocks.
2038
2039 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2040
2041         * gimple-range-cache.cc (ranger_cache::propagate_cache): Call
2042         range_on_edge instead of manually calculating.
2043
2044 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2045
2046         * range-op.cc: Fix comment.
2047
2048 2021-06-24  Uroš Bizjak  <ubizjak@gmail.com>
2049
2050         PR target/89021
2051         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
2052         Handle V8QI and V4HI modes.
2053         * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2):
2054         New insn pattern.
2055         (sse4_1_<any_extend:code>v4qiv4hi2): Ditto.
2056         (mmxpackmode): New mode attribute.
2057         (vec_pack_trunc_<mmxpackmode:mode>): New expander.
2058         (mmxunpackmode): New mode attribute.
2059         (vec_unpacks_lo_<mmxunpackmode:mode>): New expander.
2060         (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto.
2061         (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto.
2062         (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto.
2063         * config/i386/i386.md (extsuffix): Move from ...
2064         * config/i386/sse.md: ... here.
2065
2066 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
2067
2068         * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here..
2069         (dwarf2out_finish): ...instead of here.
2070
2071 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
2072
2073         * configure.ac (--gdwarf-5 option): Use objdump instead of readelf.
2074         (working --gdwarf-4/--gdwarf-5 for all sources): Likewise.
2075         (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows.
2076         * configure: Regenerate.
2077
2078 2021-06-24  Richard Biener  <rguenther@suse.de>
2079
2080         * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3,
2081         vec_addsubv8sf3, vec_addsubv4sf3): Merge into ...
2082         (vec_addsub<mode>3): ... using a new addsub_cst mode attribute.
2083
2084 2021-06-24  Richard Biener  <rguenther@suse.de>
2085
2086         * config/i386/sse.md (avx_addsubv4df3): Rename to
2087         vec_addsubv4df3.
2088         (avx_addsubv8sf3): Rename to vec_addsubv8sf3.
2089         (sse3_addsubv2df3): Rename to vec_addsubv2df3.
2090         (sse3_addsubv4sf3): Rename to vec_addsubv4sf3.
2091         * config/i386/i386-builtin.def: Adjust.
2092         * internal-fn.def (VEC_ADDSUB): New internal optab fn.
2093         * optabs.def (vec_addsub_optab): New optab.
2094         * tree-vect-slp-patterns.c (class addsub_pattern): New.
2095         (slp_patterns): Add addsub_pattern.
2096         * tree-vect-slp.c (vect_optimize_slp): Disable propagation
2097         across CFN_VEC_ADDSUB.
2098         * tree-vectorizer.h (vect_pattern::vect_pattern): Make
2099         m_ops optional.
2100         * doc/md.texi (vec_addsub<mode>3): Document.
2101
2102 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
2103
2104         PR middle-end/101170
2105         * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs
2106         where regno + subreg_regno_offset wraps around use 0 as starting
2107         regno.
2108
2109 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
2110
2111         PR middle-end/101172
2112         * stor-layout.c (finish_bitfield_representative): If nextf has
2113         error_mark_node type, set repr type to error_mark_node too.
2114
2115 2021-06-24  Ilya Leoshkevich  <iii@linux.ibm.com>
2116
2117         * config/s390/s390.c (s390_function_profiler): Ignore labelno
2118         parameter.
2119         * config/s390/s390.h (NO_PROFILE_COUNTERS): Define.
2120
2121 2021-06-24  Richard Biener  <rguenther@suse.de>
2122
2123         * tree-vect-slp.c (vect_optimize_slp): Do not propagate
2124         across operations that have different semantics on different
2125         lanes.
2126
2127 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
2128
2129         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP.
2130         * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses
2131         with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification
2132         of non-decl OMP_CLAUSE_DECL.  For OMP_CLAUSE_IN_REDUCTION on
2133         OMP_TARGET user outer_ctx instead of ctx for placeholders and
2134         initializer/combiner gimplification.
2135         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION
2136         on target constructs.
2137         (lower_rec_input_clauses): Likewise.
2138         (lower_omp_target): Likewise.
2139         * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause
2140         on target if in_reduction is present.
2141
2142 2021-06-24  Kewen Lin  <linkw@linux.ibm.com>
2143
2144         * tree-predcom.c (class pcom_worker): New class.
2145         (release_chain): Renamed to...
2146         (pcom_worker::release_chain): ...this.
2147         (release_chains): Renamed to...
2148         (pcom_worker::release_chains): ...this.
2149         (aff_combination_dr_offset): Renamed to...
2150         (pcom_worker::aff_combination_dr_offset): ...this.
2151         (determine_offset): Renamed to...
2152         (pcom_worker::determine_offset): ...this.
2153         (class comp_ptrs): New class.
2154         (split_data_refs_to_components): Renamed to...
2155         (pcom_worker::split_data_refs_to_components): ...this,
2156         and update with class comp_ptrs.
2157         (suitable_component_p): Renamed to...
2158         (pcom_worker::suitable_component_p): ...this.
2159         (filter_suitable_components): Renamed to...
2160         (pcom_worker::filter_suitable_components): ...this.
2161         (valid_initializer_p): Renamed to...
2162         (pcom_worker::valid_initializer_p): ...this.
2163         (find_looparound_phi): Renamed to...
2164         (pcom_worker::find_looparound_phi): ...this.
2165         (add_looparound_copies): Renamed to...
2166         (pcom_worker::add_looparound_copies): ...this.
2167         (determine_roots_comp): Renamed to...
2168         (pcom_worker::determine_roots_comp): ...this.
2169         (determine_roots): Renamed to...
2170         (pcom_worker::determine_roots): ...this.
2171         (single_nonlooparound_use): Renamed to...
2172         (pcom_worker::single_nonlooparound_use): ...this.
2173         (remove_stmt): Renamed to...
2174         (pcom_worker::remove_stmt): ...this.
2175         (execute_pred_commoning_chain): Renamed to...
2176         (pcom_worker::execute_pred_commoning_chain): ...this.
2177         (execute_pred_commoning): Renamed to...
2178         (pcom_worker::execute_pred_commoning): ...this.
2179         (struct epcc_data): New member worker.
2180         (execute_pred_commoning_cbck): Call execute_pred_commoning
2181         with pcom_worker pointer.
2182         (find_use_stmt): Renamed to...
2183         (pcom_worker::find_use_stmt): ...this.
2184         (find_associative_operation_root): Renamed to...
2185         (pcom_worker::find_associative_operation_root): ...this.
2186         (find_common_use_stmt): Renamed to...
2187         (pcom_worker::find_common_use_stmt): ...this.
2188         (combinable_refs_p): Renamed to...
2189         (pcom_worker::combinable_refs_p): ...this.
2190         (reassociate_to_the_same_stmt): Renamed to...
2191         (pcom_worker::reassociate_to_the_same_stmt): ...this.
2192         (stmt_combining_refs): Renamed to...
2193         (pcom_worker::stmt_combining_refs): ...this.
2194         (combine_chains): Renamed to...
2195         (pcom_worker::combine_chains): ...this.
2196         (try_combine_chains): Renamed to...
2197         (pcom_worker::try_combine_chains): ...this.
2198         (prepare_initializers_chain): Renamed to...
2199         (pcom_worker::prepare_initializers_chain): ...this.
2200         (prepare_initializers): Renamed to...
2201         (pcom_worker::prepare_initializers): ...this.
2202         (prepare_finalizers_chain): Renamed to...
2203         (pcom_worker::prepare_finalizers_chain): ...this.
2204         (prepare_finalizers): Renamed to...
2205         (pcom_worker::prepare_finalizers): ...this.
2206         (tree_predictive_commoning_loop): Renamed to...
2207         (pcom_worker::tree_predictive_commoning_loop): ...this, adjust
2208         some calls and remove some cleanup code.
2209         (tree_predictive_commoning): Adjusted to use pcom_worker instance.
2210         (static variable looparound_phis): Remove.
2211         (static variable name_expansions): Remove.
2212
2213 2021-06-24  Richard Biener  <rguenther@suse.de>
2214
2215         * tree-vect-slp.c (slpg_vertex): New struct.
2216         (vect_slp_build_vertices): Adjust.
2217         (vect_optimize_slp): Likewise.  Maintain an outgoing permute
2218         and a materialized one.
2219
2220 2021-06-24  Richard Biener  <rguenther@suse.de>
2221
2222         PR tree-optimization/101105
2223         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
2224         Only ignore steps when they are equal or scalar order is preserved.
2225
2226 2021-06-24  liuhongt  <hongtao.liu@intel.com>
2227
2228         PR target/98434
2229         * config/i386/i386-expand.c (ix86_expand_vec_interleave):
2230         Adjust comments for ix86_expand_vecop_qihi2.
2231         (ix86_expand_vecmul_qihi): Renamed to ..
2232         (ix86_expand_vecop_qihi2): Adjust function prototype to
2233         support shift operation, add static to definition.
2234         (ix86_expand_vec_shift_qihi_constant): Add static to definition.
2235         (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and
2236         ix86_expand_vec_shift_qihi_constant.
2237         * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted.
2238         (ix86_expand_vec_shift_qihi_constant): Deleted.
2239         * config/i386/sse.md (VI12_256_512_AVX512VL): New mode
2240         iterator.
2241         (mulv8qi3): Call ix86_expand_vecop_qihi directly, add
2242         condition TARGET_64BIT.
2243         (mul<mode>3): Ditto.
2244         (<insn><mode>3): Ditto.
2245         (vlshr<mode>3): Extend to support avx512 vlshr.
2246         (v<insn><mode>3): New expander for
2247         vashr/vlshr/vashl.
2248         (v<insn>v8qi3): Ditto.
2249         (vashrv8hi3<mask_name>): Renamed to ..
2250         (vashr<mode>3): And extend to support V16QImode for avx512.
2251         (vashrv16qi3): Deleted.
2252         (vashrv2di3<mask_name>): Extend expander to support avx512
2253         instruction.
2254
2255 2021-06-23  Dimitar Dimitrov  <dimitar@dinux.eu>
2256
2257         * doc/lto.texi (Design Overview): Update that slim objects are
2258         the default.
2259
2260 2021-06-23  Aaron Sawdey  <acsawdey@linux.ibm.com>
2261
2262         * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out
2263         of OTHER_POWER10_MASKS so it will not be enabled by default.
2264
2265 2021-06-23  Richard Biener  <rguenther@suse.de>
2266             Martin Jambor  <mjambor@suse.cz>
2267
2268         * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the
2269         param replacement unconditionally.  Adjust comment.
2270
2271 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2272
2273         * Makefile.in (OBJS): Add gimple-range-fold.o
2274         * gimple-range-fold.cc: New.
2275         * gimple-range-fold.h: New.
2276         * gimple-range-gori.cc (gimple_range_calc_op1): Move to here.
2277         (gimple_range_calc_op2): Ditto.
2278         * gimple-range-gori.h: Move prototypes to here.
2279         * gimple-range.cc: Adjust include files.
2280         (fur_source:fur_source): Relocate to gimple-range-fold.cc.
2281         (fur_source::get_operand): Ditto.
2282         (fur_source::get_phi_operand): Ditto.
2283         (fur_source::query_relation): Ditto.
2284         (fur_source::register_relation): Ditto.
2285         (class fur_edge): Ditto.
2286         (fur_edge::fur_edge): Ditto.
2287         (fur_edge::get_operand): Ditto.
2288         (fur_edge::get_phi_operand): Ditto.
2289         (fur_stmt::fur_stmt): Ditto.
2290         (fur_stmt::get_operand): Ditto.
2291         (fur_stmt::get_phi_operand): Ditto.
2292         (fur_stmt::query_relation): Ditto.
2293         (class fur_depend): Relocate to gimple-range-fold.h.
2294         (fur_depend::fur_depend): Relocate to gimple-range-fold.cc.
2295         (fur_depend::register_relation): Ditto.
2296         (fur_depend::register_relation): Ditto.
2297         (class fur_list): Ditto.
2298         (fur_list::fur_list): Ditto.
2299         (fur_list::get_operand): Ditto.
2300         (fur_list::get_phi_operand): Ditto.
2301         (fold_range): Ditto.
2302         (adjust_pointer_diff_expr): Ditto.
2303         (gimple_range_adjustment): Ditto.
2304         (gimple_range_base_of_assignment): Ditto.
2305         (gimple_range_operand1): Ditto.
2306         (gimple_range_operand2): Ditto.
2307         (gimple_range_calc_op1): Relocate to gimple-range-gori.cc.
2308         (gimple_range_calc_op2): Ditto.
2309         (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc.
2310         (fold_using_range::range_of_range_op): Ditto.
2311         (fold_using_range::range_of_address): Ditto.
2312         (fold_using_range::range_of_phi): Ditto.
2313         (fold_using_range::range_of_call): Ditto.
2314         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
2315         (fold_using_range::range_of_builtin_call): Ditto.
2316         (fold_using_range::range_of_cond_expr): Ditto.
2317         (fold_using_range::range_of_ssa_name_with_loop_info): Ditto.
2318         (fold_using_range::relation_fold_and_or): Ditto.
2319         (fold_using_range::postfold_gcond_edges): Ditto.
2320         * gimple-range.h: Add gimple-range-fold.h to include files. Change
2321         GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H.
2322         (gimple_range_handler): Relocate to gimple-range-fold.h.
2323         (gimple_range_ssa_p): Ditto.
2324         (range_compatible_p): Ditto.
2325         (class fur_source): Ditto.
2326         (class fur_stmt): Ditto.
2327         (class fold_using_range): Ditto.
2328         (gimple_range_calc_op1): Relocate to gimple-range-gori.h
2329         (gimple_range_calc_op2): Ditto.
2330
2331 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2332
2333         PR tree-optimization/101148
2334         PR tree-optimization/101014
2335         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
2336         (ranger_cache::~ranger_cache): Adjust.
2337         (ranger_cache::block_range): Check if propagation disallowed.
2338         (ranger_cache::propagate_cache): Disallow propagation if new value
2339         can't be stored properly.
2340         * gimple-range-cache.h (ranger_cache::m_propfail): New member.
2341
2342 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2343
2344         * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype.
2345         (sbr_vector::set_bb_range): Return true.
2346         (class sbr_sparse_bitmap): Adjust.
2347         (sbr_sparse_bitmap::set_bb_range): Return value.
2348         (block_range_cache::set_bb_range): Return value.
2349         (ranger_cache::propagate_cache): Use return value to print msg.
2350         * gimple-range-cache.h (class block_range_cache): Adjust.
2351
2352 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2353
2354         * gimple-range.cc (dump_bb): Use range_on_edge from the cache.
2355
2356 2021-06-23  Jeff Law  <jeffreyalaw@gmail.com>
2357
2358         * config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn>
2359         so this pattern can be used for test/compare removal.  Pass
2360         current insn to compute_logical_op_length and output_logical_op.
2361         * config/h8300/h8300.c (compute_logical_op_cc): Remove.
2362         (h8300_and_costs): Add argument to compute_logical_op_length.
2363         (output_logical_op): Add new argument.  Use it to determine if the
2364         condition codes are used and adjust the output accordingly.
2365         (compute_logical_op_length): Add new argument and update length
2366         computations when condition codes are used.
2367         * config/h8300/h8300-protos.h (compute_logical_op_length): Update
2368         prototype.
2369         (output_logical_op): Likewise.
2370
2371 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
2372
2373         PR target/89021
2374         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
2375         Handle 64bit modes for TARGET_XOP.  Use indirect gen_* functions.
2376         * config/i386/mmx.md (mmx_ppermv64): New insn pattern.
2377         * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ...
2378         * config/i386/sse.md (unspec): ... here.
2379
2380 2021-06-23  Martin Liska  <mliska@suse.cz>
2381
2382         PR target/98636
2383         * optc-save-gen.awk: Put back arm_fp16_format to
2384         checked_options.
2385
2386 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
2387
2388         PR target/101175
2389         * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
2390         (bsr): Ditto.
2391         (*bsrhi): Remove.
2392         (clz<mode>2): Update RTX pattern for additions.
2393
2394 2021-06-23  Jakub Jelinek  <jakub@redhat.com>
2395
2396         PR middle-end/101167
2397         * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs
2398         and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set.
2399
2400 2021-06-22  Sergei Trofimovich  <siarheit@google.com>
2401
2402         * doc/rtl.texi: drop unbalanced parenthesis.
2403
2404 2021-06-22  Richard Biener  <rguenther@suse.de>
2405
2406         PR middle-end/101156
2407         * gimplify.c (gimplify_expr): Remove premature incorrect
2408         optimization.
2409
2410 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2411
2412         PR tree-optimization/101159
2413         * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some
2414         comment typos.
2415
2416 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2417
2418         PR middle-end/101160
2419         * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type
2420         clear crtl->return_rtx instead of keeping it referencing a pseudo.
2421
2422 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2423             Andrew Pinski  <apinski@marvell.com>
2424
2425         PR tree-optimization/101162
2426         * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer
2427         types.
2428
2429 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2430
2431         * range-op.cc (range_relational_tests): New.
2432         (range_op_tests): Call range_relational_tests.
2433
2434 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2435
2436         * range-op.cc (operator_cast::lhs_op1_relation): New.
2437         (operator_identity::lhs_op1_relation): Mew.
2438
2439 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2440
2441         * range-op.cc (operator_minus::op1_op2_relation_effect): New.
2442
2443 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2444
2445         * range-op.cc (operator_plus::lhs_op1_relation): New.
2446         (operator_plus::lhs_op2_relation): New.
2447
2448 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2449
2450         * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a
2451         relation_oracle if dominators exist.
2452         (ranger_cache::~ranger_cache): Dispose of oracle.
2453         (ranger_cache::dump_bb): Dump oracle.
2454         * gimple-range.cc (fur_source::fur_source): New.
2455         (fur_source::get_operand): Use mmeber query.
2456         (fur_source::get_phi_operand): Use member_query.
2457         (fur_source::query_relation): New.
2458         (fur_source::register_dependency): Delete.
2459         (fur_source::register_relation): New.
2460         (fur_edge::fur_edge): Adjust.
2461         (fur_edge::get_phi_operand): Fix comment.
2462         (fur_edge::query): Delete.
2463         (fur_stmt::fur_stmt): Adjust.
2464         (fur_stmt::query): Delete.
2465         (fur_depend::fur_depend): Adjust.
2466         (fur_depend::register_relation): New.
2467         (fur_depend::register_relation): New.
2468         (fur_list::fur_list): Adjust.
2469         (fur_list::get_operand): Use member query.
2470         (fold_using_range::range_of_range_op): Process and query relations.
2471         (fold_using_range::range_of_address): Adjust dependency call.
2472         (fold_using_range::range_of_phi): Ditto.
2473         (gimple_ranger::gimple_ranger): New.  Use ranger_ache oracle.
2474         (fold_using_range::relation_fold_and_or): New.
2475         (fold_using_range::postfold_gcond_edges): New.
2476         * gimple-range.h (class gimple_ranger): Adjust.
2477         (class fur_source): Adjust members.
2478         (class fur_stmt): Ditto.
2479         (class fold_using_range): Ditto.
2480
2481 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2482
2483         * range-op.cc (range_operator::wi_fold): Apply relation effect.
2484         (range_operator::fold_range): Adjust and apply relation effect.
2485         (*::fold_range): Add relation parameters.
2486         (*::op1_range): Ditto.
2487         (*::op2_range): Ditto.
2488         (range_operator::lhs_op1_relation): New.
2489         (range_operator::lhs_op2_relation): New.
2490         (range_operator::op1_op2_relation): New.
2491         (range_operator::op1_op2_relation_effect): New.
2492         (relop_early_resolve): New.
2493         (operator_equal::op1_op2_relation): New.
2494         (operator_equal::fold_range): Call relop_early_resolve.
2495         (operator_not_equal::op1_op2_relation): New.
2496         (operator_not_equal::fold_range): Call relop_early_resolve.
2497         (operator_lt::op1_op2_relation): New.
2498         (operator_lt::fold_range): Call relop_early_resolve.
2499         (operator_le::op1_op2_relation): New.
2500         (operator_le::fold_range): Call relop_early_resolve.
2501         (operator_gt::op1_op2_relation): New.
2502         (operator_gt::fold_range): Call relop_early_resolve.
2503         (operator_ge::op1_op2_relation): New.
2504         (operator_ge::fold_range): Call relop_early_resolve.
2505         * range-op.h (class range_operator): Adjust parameters and methods.
2506
2507 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2508
2509         * Makefile.in (OBJS): Add value-relation.o.
2510         * gimple-range.h: Adjust include files.
2511         * tree-data-ref.c: Adjust include file order.
2512         * value-query.cc (range_query::get_value_range): Default to no oracle.
2513         (range_query::query_relation): New.
2514         (range_query::query_relation): New.
2515         * value-query.h (class range_query): Adjust.
2516         * value-relation.cc: New.
2517         * value-relation.h: New.
2518
2519 2021-06-22  Richard Biener  <rguenther@suse.de>
2520
2521         PR tree-optimization/101151
2522         * tree-ssa-sink.c (statement_sink_location): Expand irreducible
2523         region check.
2524
2525 2021-06-22  Jojo R  <rjiejie@linux.alibaba.com>
2526
2527         * config/riscv/riscv.c (thead_c906_tune_info): New.
2528         (riscv_tune_info_table): Use new tune.
2529
2530 2021-06-22  Richard Biener  <rguenther@suse.de>
2531
2532         PR tree-optimization/101158
2533         * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand
2534         checking after checking for matching operation.
2535
2536 2021-06-22  Richard Biener  <rguenther@suse.de>
2537
2538         PR tree-optimization/101159
2539         * tree-vect-patterns.c (vect_recog_popcount_pattern): Add
2540         missing NULL vectype check.
2541
2542 2021-06-22  Richard Biener  <rguenther@suse.de>
2543
2544         PR tree-optimization/101154
2545         * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access.
2546
2547 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2548
2549         PR target/11877
2550         * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare.
2551         * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable.
2552         * config/i386/i386.c (ix86_expand_prologue): Clear it.
2553         * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx):
2554         Remove "" from match_operand.  Emit new insns using emit_move_insn and
2555         set ix86_last_zero_store_uid to INSN_UID of the last store.
2556         Add peephole2s for 1/2/4 stores of const0_rtx following previous
2557         successful peep2s.
2558
2559 2021-06-22  Martin Liska  <mliska@suse.cz>
2560
2561         * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format
2562         was changed.
2563
2564 2021-06-22  Martin Liska  <mliska@suse.cz>
2565
2566         * gcov-io.h: Remove padding entries.
2567
2568 2021-06-22  liuhongt  <hongtao.liu@intel.com>
2569
2570         PR tree-optimization/97770
2571         * tree-vect-patterns.c (vect_recog_popcount_pattern):
2572         New.
2573         (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern.
2574
2575 2021-06-22  liuhongt  <hongtao.liu@intel.com>
2576
2577         PR target/100267
2578         * config/i386/i386-builtin.def (BDESC): Adjust builtin name.
2579         * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to ..
2580         (expand<mode>_mask): this ..
2581         (*expand<mode>_mask): New pre_reload splitter to transform
2582         v{,p}expand* to vmov* when mask is zero, all ones, or has all
2583         ones in it's lower part, otherwise still generate
2584         v{,p}expand*.
2585
2586 2021-06-22  liuhongt  <hongtao.liu@intel.com>
2587
2588         PR target/100310
2589         * config/i386/i386-expand.c
2590         (ix86_expand_special_args_builtin): Keep constm1_operand only
2591         if it satisfies insn's operand predicate.
2592
2593 2021-06-21  Jason Merrill  <jason@redhat.com>
2594
2595         PR target/88529
2596         * df-scan.c (df_ref_record): Check that regno < endregno.
2597         * function.c (assign_parms, expand_function_end): Do nothing with a
2598         TYPE_EMPTY_P result.
2599
2600 2021-06-21  Richard Biener  <rguenther@suse.de>
2601
2602         PR tree-optimization/101120
2603         * tree-vect-data-refs.c (bump_vector_ptr): Fold the
2604         built increment.
2605         * tree-vect-slp.c (vect_transform_slp_perm_load): Add
2606         DR chain DCE capability.
2607         * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
2608         * tree-vect-stmts.c (vectorizable_load): Remove unused
2609         loads in the DR chain for SLP.
2610
2611 2021-06-21  Jakub Jelinek  <jakub@redhat.com>
2612
2613         PR inline-asm/100785
2614         * gimplify.c (gimplify_asm_expr): Don't diagnose errors if
2615         output or input operands were already error_mark_node.
2616         * cfgexpand.c (expand_asm_stmt): If errors are emitted,
2617         remove all inputs, outputs and clobbers from the asm and
2618         set template to "".
2619
2620 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
2621
2622         * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b.
2623         (vceq_s16): Likewise.
2624         (vceq_s32): Likewise.
2625         (vceq_u8): Likewise.
2626         (vceq_u16): Likewise.
2627         (vceq_u32): Likewise.
2628         (vceq_p8): Likewise.
2629         (vceqq_s8): Likewise.
2630         (vceqq_s16): Likewise.
2631         (vceqq_s32): Likewise.
2632         (vceqq_u8): Likewise.
2633         (vceqq_u16): Likewise.
2634         (vceqq_u32): Likewise.
2635         (vceqq_p8): Likewise.
2636         (vceq_f32): Gate __a == __b on __FAST_MATH__.
2637         (vceqq_f32): Likewise.
2638         (vceq_f16): Likewise.
2639         (vceqq_f16): Likewise.
2640
2641 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
2642
2643         PR target/97906
2644         * config/arm/iterators.md (NEON_VACMP): Remove.
2645         * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE
2646         iterator.
2647         (neon_vca<cmp_op><mode>_insn): Likewise.
2648         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of
2649         NEON_VACMP.
2650
2651 2021-06-21  Richard Biener  <rguenther@suse.de>
2652
2653         PR tree-optimization/101121
2654         * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally
2655         when we just lack a stmt with the desired op when doing permutation.
2656         (vect_build_slp_tree): When caching a failed SLP build attempt
2657         assert that at least one lane is marked as not matching.
2658
2659 2021-06-21  liuhongt  <hongtao.liu@intel.com>
2660
2661         PR target/101142
2662         * config/i386/i386.md: (*anddi_1): Disparage slightly the mask
2663         register alternative.
2664         (*and<mode>_1): Ditto.
2665         (*andqi_1): Ditto.
2666         (*andn<mode>_1): Ditto.
2667         (*<code><mode>_1): Ditto.
2668         (*<code>qi_1): Ditto.
2669         (*one_cmpl<mode>2_1): Ditto.
2670         (*one_cmplsi2_1_zext): Ditto.
2671         (*one_cmplqi2_1): Ditto.
2672         * config/i386/i386.c (x86_order_regs_for_local_alloc): Change
2673         the order of mask registers to be before general registers.
2674
2675 2021-06-21  Roger Sayle  <roger@nextmovesoftware.com>
2676
2677         PR target/11877
2678         * config/i386/i386.md: New define_peephole2s to shrink writing
2679         1, 2 or 4 consecutive zeros to memory when optimizing for size.
2680
2681 2021-06-18  Jeff Law  <jeffreyalaw@gmail.com>
2682
2683         * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF.
2684         * config/h8300/logical.md (<code><mode>3 logcial expander): Generate
2685         more efficient code when the source can be trivially simplified.
2686
2687 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
2688
2689         * gimple-range-cache.cc (ranger_cache::range_of_def):  Calculate
2690         a range if global is not available.
2691         (ranger_cache::entry_range): Fallback to range_of_def.
2692         * gimple-range-cache.h (range_of_def): Adjust prototype.
2693
2694 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
2695
2696         PR tree-optimization/101014
2697         * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor
2698         value list.
2699         (ranger_cache::~ranger_cache): Ditto.
2700         (ranger_cache::enable_new_values): Delete.
2701         (ranger_cache::push_poor_value): Delete.
2702         (ranger_cache::range_of_def): Remove poor value processing.
2703         (ranger_cache::entry_range): Ditto.
2704         (ranger_cache::fill_block_cache): Ditto.
2705         * gimple-range-cache.h (class ranger_cache): Remove poor value members.
2706         * gimple-range.cc (gimple_ranger::range_of_expr): Remove call.
2707         * gimple-range.h (class gimple_ranger): Adjust.
2708
2709 2021-06-18  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
2710
2711         PR target/100856
2712         * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function
2713         derived from arm_canon_arch.
2714         (arm_canon_arch_option): Call it.
2715         (arm_canon_arch_multilib_option): New function.
2716         * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup.
2717         * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype.
2718         (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro.
2719         (MULTILIB_ARCH_CANONICAL_SPECS): New macro.
2720         (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS.
2721         * config/arm/arm.opt (mlibarch): New option.
2722         * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use
2723         of march on RHS with mlibarch.
2724
2725 2021-06-18  Marcel Vollweiler  <marcel@codesourcery.com>
2726
2727         * config.in: Regenerate.
2728         * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
2729         functions.
2730         * configure: Regenerate.
2731         * configure.ac: Fix for global_load assembler functions.
2732
2733 2021-06-18  Richard Biener  <rguenther@suse.de>
2734
2735         PR tree-optimization/101112
2736         * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition
2737         to lookup a pattern stmt def.
2738
2739 2021-06-18  Jakub Jelinek  <jakub@redhat.com>
2740
2741         PR middle-end/101062
2742         * stor-layout.c (finish_bitfield_layout): Don't add bitfield
2743         representatives in QUAL_UNION_TYPE.
2744
2745 2021-06-18  Andrew Pinski  <apinski@marvell.com>
2746
2747         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
2748         Add counting of how many times it is done.
2749         (factor_out_conditional_conversion): Likewise.
2750         (match_simplify_replacement): Likewise.
2751         (value_replacement): Likewise.
2752         (spaceship_replacement): Likewise.
2753         (cond_store_replacement): Likewise.
2754         (cond_if_else_store_replacement_1): Likewise.
2755         (hoist_adjacent_loads): Likewise.
2756
2757 2021-06-18  Andrew Pinski  <apinski@marvell.com>
2758
2759         * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset
2760         types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR.
2761         (verify_gimple_assign_binary): Reject point and offset types on
2762         MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR,
2763         FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR,
2764         FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR.
2765
2766 2021-06-18  Michael Meissner  <meissner@linux.ibm.com>
2767
2768         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA
2769         3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions.
2770         * config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator):
2771         New insns.
2772
2773 2021-06-17  Aaron Sawdey  <acsawdey@linux.ibm.com>
2774
2775         * config/rs6000/genfusion.pl (gen_logical_addsubf): Add
2776         earlyclobber to alts 0/1.
2777         (gen_addadd): Add earlyclobber to alts 0/1.
2778         * config/rs6000/fusion.md: Regenerate file.
2779
2780 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
2781
2782         * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec.
2783
2784 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
2785
2786         * gimple-range-cache.cc: Comment cleanups.
2787         * gimple-range-gori.cc: Comment cleanups.
2788         * gimple-range.cc: Comment/spacing cleanups
2789         * value-range.h: Comment cleanups.
2790
2791 2021-06-17  H.J. Lu  <hjl.tools@gmail.com>
2792
2793         PR target/100704
2794         * calls.c (expand_call): Replace PUSH_ARGS with
2795         targetm.calls.push_argument (0).
2796         (emit_library_call_value_1): Likewise.
2797         * defaults.h (PUSH_ARGS): Removed.
2798         (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with
2799         targetm.calls.push_argument (0).
2800         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
2801         (emit_push_insn): Pass the number bytes to push to
2802         targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0.
2803         * hooks.c (hook_bool_uint_true): New.
2804         * hooks.h (hook_bool_uint_true): Likewise.
2805         * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with
2806         targetm.calls.push_argument (0).
2807         * target.def (push_argument): Add a targetm.calls hook.
2808         * targhooks.c (default_push_argument): New.
2809         * targhooks.h (default_push_argument): Likewise.
2810         * config/bpf/bpf.h (PUSH_ARGS): Removed.
2811         * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New.
2812         * config/cr16/cr16.h (PUSH_ARGS): Removed.
2813         * config/i386/i386.c (ix86_push_argument): New.
2814         (TARGET_PUSH_ARGUMENT): Likewise.
2815         * config/i386/i386.h (PUSH_ARGS): Removed.
2816         * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New.
2817         * config/m32c/m32c.h (PUSH_ARGS): Removed.
2818         * config/nios2/nios2.h (PUSH_ARGS): Likewise.
2819         * config/pru/pru.h (PUSH_ARGS): Likewise.
2820         * doc/tm.texi.in: Remove PUSH_ARGS documentation.  Add
2821         TARGET_PUSH_ARGUMENT hook.
2822         * doc/tm.texi: Regenerated.
2823
2824 2021-06-17  Uroš Bizjak  <ubizjak@gmail.com>
2825
2826         PR target/97194
2827         * config/i386/i386-expand.c (expand_vector_set_var):
2828         Handle V2FS mode remapping.  Pass TARGET_MMX_WITH_SSE to
2829         ix86_expand_vector_init_duplicate.
2830         (ix86_expand_vector_init_duplicate): Emit insv_1 for
2831         QImode for !TARGET_PARTIAL_REG_STALL.
2832         * config/i386/predicates.md (vec_setm_mmx_operand): New predicate.
2833         * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand
2834         as operand 2 predicate.  Call ix86_expand_vector_set_var
2835         for non-constant index operand.
2836         (vec_setv2si): Ditto.
2837         (vec_setv4hi): Ditto.
2838         (vec_setv8qi): ditto.
2839
2840 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
2841
2842         PR tree-optimization/100790
2843         * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz
2844         code.
2845
2846 2021-06-17  Martin Liska  <mliska@suse.cz>
2847
2848         * doc/invoke.texi: Use consistently -O1 instead of -O.
2849
2850 2021-06-17  Martin Liska  <mliska@suse.cz>
2851
2852         * gcov-io.h: Update documentation entry about string format.
2853
2854 2021-06-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
2855
2856         PR target/100871
2857         * config/s390/vecintrin.h (vec_doublee): Fix to use
2858           __builtin_s390_vflls.
2859         (vec_floate): Fix to use __builtin_s390_vflrd.
2860
2861 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
2862
2863         * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>.
2864         * dominance.h (get_dominated_to_depth): Likewise.
2865         (get_all_dominated_blocks): Likewise.
2866         * cfgcleanup.c (delete_unreachable_blocks): Adjust.
2867         * gcse.c (hoist_code): Likewise.
2868         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
2869         * tree-parloops.c (oacc_entry_exit_ok): Likewise.
2870         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2871         * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise.
2872
2873 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
2874
2875         * dominance.c (get_dominated_by_region): Return auto_vec<basic_block>.
2876         * dominance.h (get_dominated_by_region): Likewise.
2877         * tree-cfg.c (gimple_duplicate_sese_region): Adjust.
2878         (gimple_duplicate_sese_tail): Likewise.
2879         (move_sese_region_to_fn): Likewise.
2880
2881 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
2882
2883         * dominance.c (get_dominated_by): Return auto_vec<basic_block>.
2884         * dominance.h (get_dominated_by): Likewise.
2885         * auto-profile.c (afdo_find_equiv_class): Adjust.
2886         * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise.
2887         * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
2888         * tree-cfg.c (test_linear_chain): Likewise.
2889         (test_diamond): Likewise.
2890
2891 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
2892
2893         * cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>.
2894         * cfgloopanal.c (get_loop_hot_path): Likewise.
2895         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
2896
2897 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
2898
2899         * cgraph.c (cgraph_node::collect_callers): Return
2900         auto_vec<cgraph_edge *>.
2901         * cgraph.h (cgraph_node::collect_callers): Likewise.
2902         * ipa-cp.c (create_specialized_node): Adjust.
2903         (decide_about_value): Likewise.
2904         (decide_whether_version_node): Likewise.
2905         * ipa-sra.c (process_isra_node_results): Likewise.
2906
2907 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
2908
2909         * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec.
2910         (auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy
2911         constructor.
2912         (auto_vec<T, 0>::operator=): Define move assignment and delete copy
2913         assignment.
2914
2915 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
2916
2917         * gimple-range.cc (debug_seed_ranger): New.
2918         (dump_ranger): New.
2919         (debug_ranger): New.
2920
2921 2021-06-17  Richard Biener   <rguenther@suse.de>
2922
2923         PR tree-optimization/54400
2924         * tree-vectorizer.h (enum slp_instance_kind): Add
2925         slp_inst_kind_bb_reduc.
2926         (reduction_fn_for_scalar_code): Declare.
2927         * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
2928         Check SLP_INSTANCE_KIND instead of looking at the
2929         representative.
2930         (vect_slp_analyze_instance_alignment): Likewise.
2931         * tree-vect-loop.c (reduction_fn_for_scalar_code): Export.
2932         * tree-vect-slp.c (vect_slp_linearize_chain): Split out
2933         chain linearization from vect_build_slp_tree_2 and generalize
2934         for the use of BB reduction vectorization.
2935         (vect_build_slp_tree_2): Adjust accordingly.
2936         (vect_optimize_slp): Elide permutes at the root of BB reduction
2937         instances.
2938         (vectorizable_bb_reduc_epilogue): New function.
2939         (vect_slp_prune_covered_roots): Likewise.
2940         (vect_slp_analyze_operations): Use them.
2941         (vect_slp_check_for_constructors): Recognize associatable
2942         chains for BB reduction vectorization.
2943         (vectorize_slp_instance_root_stmt): Generate code for the
2944         BB reduction epilogue.
2945
2946 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
2947
2948         * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with
2949         may_recompute_p.
2950         (gori_compute::may_recompute_p): New.
2951         (gori_compute::outgoing_edge_range_p): Perform recomputations.
2952         * gimple-range-gori.h (class gori_compute): Add prototype.
2953
2954 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
2955
2956         * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return
2957         true when a range can be calculated.
2958         * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p.
2959
2960 2021-06-16  Martin Sebor  <msebor@redhat.com>
2961
2962         * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete):
2963         Correct documented defaults.
2964
2965 2021-06-16  Andrew MacLeod  <amacleod@redhat.com>
2966
2967         * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize
2968         m_new_value_p directly.
2969
2970 2021-06-16  Uroš Bizjak  <ubizjak@gmail.com>
2971
2972         PR target/89021
2973         * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv):
2974         Handle 64bit modes for TARGET_SSE4_1.
2975         (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3.
2976         (expand_vec_perm_even_odd_pack): Handle V4HI mode.
2977         (expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via
2978         expand_vec_perm_pshufb2 for TARGET_SSSE3 and via
2979         expand_vec_perm_even_odd_pack for TARGET_SSE4_1.
2980         * config/i386/mmx.md (mmx_packusdw): New insn pattern.
2981
2982 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
2983
2984         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>):
2985         Change to an expander that emits the correct instruction
2986         depending on endianness.
2987         (aarch64_<sur><addsub>hn<mode>_insn_le): Define.
2988         (aarch64_<sur><addsub>hn<mode>_insn_be): Define.
2989
2990 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
2991
2992         * config/aarch64/aarch64-simd-builtins.def: Split generator
2993         for aarch64_<su>qmovn builtins into scalar and vector
2994         variants.
2995         * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le):
2996         Define.
2997         (aarch64_<su>qmovn<mode>_insn_be): Define.
2998         (aarch64_<su>qmovn<mode>): Split into scalar and vector
2999         variants. Change vector variant to an expander that emits the
3000         correct instruction depending on endianness.
3001
3002 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
3003
3004         * config/aarch64/aarch64-simd-builtins.def: Split generator
3005         for aarch64_sqmovun builtins into scalar and vector variants.
3006         * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>):
3007         Split into scalar and vector variants. Change vector variant
3008         to an expander that emits the correct instruction depending
3009         on endianness.
3010         (aarch64_sqmovun<mode>_insn_le): Define.
3011         (aarch64_sqmovun<mode>_insn_be): Define.
3012
3013 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
3014
3015         * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le):
3016         Define - modeling zero-high-half semantics.
3017         (aarch64_xtn<mode>): Change to an expander that emits the
3018         appropriate instruction depending on endianness.
3019         (aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half
3020         semantics.
3021         (aarch64_xtn2<mode>_le): Rename to...
3022         (aarch64_xtn2<mode>_insn_le): This.
3023         (aarch64_xtn2<mode>_be): Rename to...
3024         (aarch64_xtn2<mode>_insn_be): This.
3025         (vec_pack_trunc_<mode>): Emit truncation instruction instead
3026         of aarch64_xtn.
3027         * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
3028         attribute iterator.
3029
3030 2021-06-16  Martin Jambor  <mjambor@suse.cz>
3031
3032         PR tree-optimization/100453
3033         * tree-sra.c (create_access): Disqualify any const candidates
3034         which are written to.
3035         (sra_modify_expr): Do not store sub-replacements back to a const base.
3036         (handle_unscalarized_data_in_subtree): Likewise.
3037         (sra_modify_assign): Likewise.  Earlier, use TREE_READONLy test
3038         instead of constant_decl_p.
3039
3040 2021-06-16  Jakub Jelinek  <jakub@redhat.com>
3041
3042         PR middle-end/101062
3043         * stor-layout.c (finish_bitfield_representative): For fields in unions
3044         assume nextf is always NULL.
3045         (finish_bitfield_layout): Compute bit field representatives also in
3046         unions, but handle it as if each bitfield was the only field in the
3047         aggregate.
3048
3049 2021-06-16  Richard Biener  <rguenther@suse.de>
3050
3051         PR tree-optimization/101088
3052         * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for
3053         supported refs on edges.  Do not assert same ref but
3054         different kind stores are unsuported but mark them so.
3055         (hoist_memory_references): Only look for supported refs
3056         on exits.
3057
3058 2021-06-16  Roger Sayle  <roger@nextmovesoftware.com>
3059
3060         PR rtl-optimization/46235
3061         * config/i386/i386.md: New define_split for bt followed by cmov.
3062         (*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc.
3063         (*bt<mode>_setncqi): New define_insn_and_split for bt then setnc.
3064         (*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed
3065         by setnc with zero extension.
3066
3067 2021-06-16  Richard Biener  <rguenther@suse.de>
3068
3069         PR tree-optimization/101083
3070         * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get
3071         vectype as argument.
3072         (vect_build_slp_tree_2): Adjust.
3073
3074 2021-06-15  Martin Sebor  <msebor@redhat.com>
3075
3076         PR middle-end/100876
3077         * builtins.c: (gimple_call_return_array): Account for size_t
3078         mangling as either unsigned int or unsigned long
3079
3080 2021-06-15  Jeff Law  <jeffreyalaw@gmail.com>
3081
3082         * compare-elim.c (try_eliminate_compare): Run DCE to clean things
3083         up before eliminating comparisons.
3084
3085 2021-06-15  Aldy Hernandez  <aldyh@redhat.com>
3086
3087         * range-op.cc (operator_bitwise_or::wi_fold): Make sure
3088         nonzero|X is nonzero.
3089         (range_op_bitwise_and_tests): Add tests for above.
3090
3091 2021-06-15  Carl Love  <cel@us.ibm.com>
3092
3093         PR target/101022
3094         * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the
3095         enum definition.
3096         (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2
3097         definitions.
3098
3099 2021-06-15  Tobias Burnus  <tobias@codesourcery.com>
3100
3101         PR fortran/92568
3102         * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET.
3103         (struct gimplify_omp_ctx): Extend defaultmap array by one.
3104         (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET].
3105         (omp_notice_variable): Update type classification for Fortran.
3106         (gimplify_scan_omp_clauses): Update calls for new argument; handle
3107         GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY.
3108         * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument.
3109         * langhooks.c (lhd_omp_scalar_p): Likewise.
3110         (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
3111         (LANG_HOOKS_DECLS): Add them.
3112         * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update
3113         omp_scalar_p pointer type to include the new bool argument.
3114
3115 2021-06-15  David Malcolm  <dmalcolm@redhat.com>
3116
3117         * doc/analyzer.texi
3118         (Special Functions for Debugging the Analyzer): Add
3119         __analyzer_dump_capacity.
3120
3121 2021-06-15  Jakub Jelinek  <jakub@redhat.com>
3122
3123         PR target/101046
3124         * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
3125         case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.
3126
3127 2021-06-15  Richard Biener  <rguenther@suse.de>
3128
3129         * cfgloopanal.c (mark_irreducible_loops): Use a dominance
3130         check to identify loop latches.
3131         * cfgloop.c (verify_loop_structure): Likewise.
3132         * loop-init.c (apply_loop_flags): Allow marked irreducible
3133         regions even with multiple latches.
3134         * predict.c (rebuild_frequencies): Simplify.
3135
3136 2021-06-15  Richard Biener  <rguenther@suse.de>
3137
3138         * tree-ssa-threadupdate.c
3139         (jump_thread_path_registry::mark_threaded_blocks): Assert we
3140         have marked irreducible regions.
3141
3142 2021-06-14  Martin Sebor  <msebor@redhat.com>
3143
3144         PR c++/100876
3145         * builtins.c (gimple_call_return_array): Check for attribute fn spec.
3146         Handle calls to placement new.
3147         (ndecl_dealloc_argno): Avoid placement delete.
3148
3149 2021-06-14  Peter Bergner  <bergner@linux.ibm.com>
3150
3151         PR target/100777
3152         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
3153         create_tmp_reg_or_ssa_name().
3154
3155 2021-06-14  Andrew MacLeod  <amacleod@redhat.com>
3156
3157         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
3158         (ranger_cache::enable_new_values): Set to specified value and
3159         return the old value.
3160         (ranger_cache::disable_new_values): Delete.
3161         (ranger_cache::fill_block_cache): Disable non 1st order derived
3162         poor values.
3163         * gimple-range-cache.h (ranger_cache): Adjust prototypes.
3164         * gimple-range.cc (gimple_ranger::range_of_expr): Adjust.
3165
3166 2021-06-14  Uroš Bizjak  <ubizjak@gmail.com>
3167
3168         PR target/101058
3169         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
3170         Return true early when testing with V2HImode.
3171         * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1.
3172
3173 2021-06-14  Christophe Lyon  <christophe.lyon@linaro.org>
3174
3175         * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern.
3176         (mve_vec_unpack<US>_hi_<mode>): New pattern.
3177         (@mve_vec_pack_trunc_lo_<mode>): New pattern.
3178         (mve_vmovntq_<supf><mode>): Prefix with '@'.
3179         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to
3180         vec-common.md.
3181         (vec_unpack<US>_lo_<mode>): Likewise.
3182         (vec_pack_trunc_<mode>): Rename to
3183         neon_quad_vec_pack_trunc_<mode>.
3184         * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New
3185         pattern.
3186         (vec_unpack<US>_lo_<mode>): New.
3187         (vec_pack_trunc_<mode>): New.
3188
3189 2021-06-14  Richard Biener  <rguenther@suse.de>
3190
3191         PR tree-optimization/100934
3192         * tree-ssa-dom.c (pass_dominator::execute): Properly
3193         mark irreducible regions.
3194
3195 2021-06-14  Martin Liska  <mliska@suse.cz>
3196
3197         * doc/invoke.texi: Put r{...} on the same line as @item.
3198
3199 2021-06-14  Martin Liska  <mliska@suse.cz>
3200
3201         * doc/invoke.texi: Add missing newline.
3202
3203 2021-06-14  Martin Liska  <mliska@suse.cz>
3204
3205         * doc/invoke.texi: Remove '+' charasters.
3206
3207 2021-06-14  Claudiu Zissulescu  <claziss@synopsys.com>
3208
3209         * config.gcc (arc): Add support for with_cpu option.
3210         * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu.
3211
3212 2021-06-14  Richard Biener  <rguenther@suse.de>
3213
3214         PR tree-optimization/101031
3215         * tree-ssa-strlen.c (maybe_invalidate): Increment max_size
3216         instead of size when accounting for a possibly string
3217         terminating nul.
3218
3219 2021-06-14  Martin Liska  <mliska@suse.cz>
3220
3221         * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].
3222
3223 2021-06-14  Aldy Hernandez  <aldyh@redhat.com>
3224
3225         * value-query.cc (gimple_range_global): Call get_range_global
3226         if called after inlining.
3227
3228 2021-06-13  Uroš Bizjak  <ubizjak@gmail.com>
3229
3230         PR target/101021
3231         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
3232         Emit constant permutation insn directly from here.
3233
3234 2021-06-13  Trevor Saunders  <tbsaunde@tbsaunde.org>
3235
3236         * attribs.c (find_attribute_namespace): Iterate over vec<> with
3237         range based for.
3238         * auto-profile.c (afdo_find_equiv_class): Likewise.
3239         * gcc.c (do_specs_vec): Likewise.
3240         (do_spec_1): Likewise.
3241         (driver::set_up_specs): Likewise.
3242         * gimple-loop-jam.c (any_access_function_variant_p): Likewise.
3243         * gimple-ssa-store-merging.c (compatible_load_p): Likewise.
3244         (imm_store_chain_info::try_coalesce_bswap): Likewise.
3245         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
3246         (get_location_for_stmts): Likewise.
3247         * graphite-poly.c (print_iteration_domains): Likewise.
3248         (free_poly_bb): Likewise.
3249         (remove_gbbs_in_scop): Likewise.
3250         (free_scop): Likewise.
3251         (dump_gbb_cases): Likewise.
3252         (dump_gbb_conditions): Likewise.
3253         (print_pdrs): Likewise.
3254         (print_scop): Likewise.
3255         * ifcvt.c (cond_move_process_if_block): Likewise.
3256         * lower-subreg.c (decompose_multiword_subregs): Likewise.
3257         * regcprop.c (pass_cprop_hardreg::execute): Likewise.
3258         * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
3259         * sel-sched-dump.c (dump_insn_vector): Likewise.
3260         * store-motion.c (store_ops_ok): Likewise.
3261         (store_killed_in_insn): Likewise.
3262         * timevar.c (timer::named_items::print): Likewise.
3263         * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise.
3264         (cleanup_tree_cfg_noloop): Likewise.
3265         * tree-data-ref.c (dump_data_references): Likewise.
3266         (print_dir_vectors): Likewise.
3267         (print_dist_vectors): Likewise.
3268         (dump_data_dependence_relations): Likewise.
3269         (dump_dist_dir_vectors): Likewise.
3270         (dump_ddrs): Likewise.
3271         (create_runtime_alias_checks): Likewise.
3272         (free_subscripts): Likewise.
3273         (save_dist_v): Likewise.
3274         (save_dir_v): Likewise.
3275         (invariant_access_functions): Likewise.
3276         (same_access_functions): Likewise.
3277         (access_functions_are_affine_or_constant_p): Likewise.
3278         (find_data_references_in_stmt): Likewise.
3279         (graphite_find_data_references_in_stmt): Likewise.
3280         (free_dependence_relations): Likewise.
3281         (free_data_refs): Likewise.
3282         * tree-inline.c (copy_debug_stmts): Likewise.
3283         * tree-into-ssa.c (dump_currdefs): Likewise.
3284         (rewrite_update_phi_arguments): Likewise.
3285         * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
3286         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
3287         Likewise.
3288         (vect_slp_analyze_node_dependences): Likewise.
3289         (vect_slp_analyze_instance_dependence): Likewise.
3290         (vect_record_base_alignments): Likewise.
3291         (vect_get_peeling_costs_all_drs): Likewise.
3292         (vect_peeling_supportable): Likewise.
3293         * tree-vectorizer.c (vec_info::~vec_info): Likewise.
3294         (vec_info::free_stmt_vec_infos): Likewise.
3295
3296 2021-06-13  Jeff Law  <jeffreyalaw@gmail.com>
3297
3298         * config/h8300/logical.md (<code>qi3_1<cczn>): New pattern.
3299         (andqi3_1<cczn>): Removed.
3300         (<ors>qi3_1): Do not split for IOR/XOR a single bit.
3301         (H8/SX bit logicals): Split out from other patterns.
3302         * config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from
3303         mulqihi3_const_clobber_flags.
3304         (mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly
3305
3306 2021-06-13  H.J. Lu  <hjl.tools@gmail.com>
3307
3308         PR target/101023
3309         * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used
3310         to true if red zone is used.
3311         (ix86_output_indirect_jmp): Replace ix86_red_zone_size with
3312         ix86_red_zone_used.
3313         * config/i386/i386.h (machine_function): Add red_zone_used.
3314         (ix86_red_zone_size): Removed.
3315         (ix86_red_zone_used): New.
3316         * config/i386/i386.md (peephole2 patterns): Replace
3317         ix86_red_zone_size with ix86_red_zone_used.
3318
3319 2021-06-12  Jason Merrill  <jason@redhat.com>
3320
3321         * doc/extend.texi (unused variable attribute): Applies to
3322         structure fields as well.
3323
3324 2021-06-12  Eugene Rozenfeld  <erozen@microsoft.com>
3325
3326         * auto-profile.c (read_profile): fix a typo in an error string
3327
3328 2021-06-11  Thomas Schwinge  <thomas@codesourcery.com>
3329
3330         * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
3331         default argument.
3332         * tree-pretty-print.c (dump_omp_clauses): Update.
3333         (dump_generic_node) <OMP_CLAUSE>: Use it.
3334
3335 2021-06-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
3336
3337         PR target/101016
3338         * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0,
3339         int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for
3340         the polymorphic variants matching code.
3341         (__arm_vld1q_z): Likewise.
3342         (__arm_vld2q): Likewise.
3343         (__arm_vld4q): Likewise.
3344         (__arm_vldrbq_gather_offset): Likewise.
3345         (__arm_vldrbq_gather_offset_z): Likewise.
3346
3347 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
3348
3349         PR tree-optimization/96392
3350         * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype.
3351
3352 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
3353
3354         PR tree-optimization/96392
3355         * fold-const.c (fold_real_zero_addition_p): Take both arguments
3356         of the addition or subtraction, not just the zero.  Use this
3357         other argument in tests for signaling NaNs and signed zeros.
3358         (tree_expr_maybe_real_minus_zero_p): New predicate.
3359         * fold-const.h (fold_real_zero_addition_p): Update prototype.
3360         (tree_expr_maybe_real_minus_zero_p): New function prototype.
3361         * match.pd: Update calls to fold_real_zero_addition_p.
3362         Replace HONOR_NANS with tree_expr_maybe_nan_p.
3363         Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p.
3364         Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p.
3365         * tree-ssa-reassoc.c (eliminate_using_constants): Update
3366         call to fold_real_zero_addition_p.
3367
3368 2021-06-11  Richard Biener  <rguenther@suse.de>
3369
3370         PR tree-optimization/101025
3371         * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process
3372         all refs that require dependence checking.
3373
3374 2021-06-11  Richard Biener  <rguenther@suse.de>
3375
3376         PR tree-optimization/101028
3377         * tree-vect-slp.c (vect_build_slp_tree_2): When SLP
3378         reassoc discovery fails fatally, mark appropriate lanes
3379         in matches[] so.
3380
3381 2021-06-11  Richard Biener  <rguenther@suse.de>
3382
3383         PR tree-optimization/101026
3384         * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we
3385         have a representative for the associated chain nodes.
3386
3387 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
3388
3389         PR rtl-optimization/101008
3390         * simplify-rtx.c (relational_result): New function.
3391         (simplify_logical_relational_operation,
3392         simplify_relational_operation): Use it.
3393
3394 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
3395
3396         PR target/101007
3397         * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2.
3398
3399 2021-06-11  Uroš Bizjak  <ubizjak@gmail.com>
3400
3401         PR target/101021
3402         * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return
3403         false if the permutation can be implemented with constant
3404         permutation instruction in wider mode.
3405         (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb.
3406         Handle V8QImode and V4HImode.
3407
3408 2021-06-11  Martin Liska  <mliska@suse.cz>
3409
3410         PR gcov-profile/100788
3411         * common.opt: Add new option.
3412         * coverage.c (coverage_begin_function): Emit warning instead on
3413         the internal compiler error.
3414         * doc/invoke.texi: Document the option.
3415         * toplev.c (process_options): Enable it by default.
3416
3417 2021-06-11  Richard Biener  <rguenther@suse.de>
3418
3419         PR middle-end/101009
3420         * tree-data-ref.c (build_classic_dist_vector_1): Make sure
3421         to set *init_b to true when we encounter a constant equal
3422         index pair.
3423         (compute_affine_dependence): Also dump the actual DR_REF.
3424
3425 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
3426
3427         PR tree-optimization/100984
3428         * gimple-ssa-evrp.c  (ssa_equiv_stack): Use auto_vec for
3429         replacements table.
3430         (ssa_equiv_stack::~ssa_equiv_stack): Remove.
3431
3432 2021-06-11  Kewen Lin  <linkw@linux.ibm.com>
3433
3434         * config/rs6000/rs6000.md
3435         (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New
3436         define_insn_and_split.
3437
3438 2021-06-11  Richard Biener  <rguenther@suse.de>
3439
3440         * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
3441         to sort operands of the associative chain.
3442
3443 2021-06-11  Richard Biener  <rguenther@suse.de>
3444
3445         * system.h (gcc_stablesort_r): Declare.
3446         * sort.cc (gcc_sort_r): Support stable sort.
3447         (gcc_stablesort_r): Define.
3448         * vec.h (vec<>::stablesort): Add.
3449
3450 2021-06-10  Uroš Bizjak  <ubizjak@gmail.com>
3451
3452         PR target/89021
3453         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
3454         Handle V2SF mode.  Emit SHUFPS to fixup unpack-high for V2SF mode.
3455         (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1.
3456         (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3.
3457         (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1.
3458         (expand_vec_perm_interleave2): Handle 64bit modes.
3459         (expand_vec_perm_even_odd_pack): Handle V8QI mode.
3460         (expand_vec_perm_even_odd_1): Ditto.
3461         (ix86_vectorize_vec_perm_const): Ditto.
3462         * config/i386/i386.md (UNSPEC_PSHUFB): Move from ...
3463         * config/i386/sse.md: ... here.
3464         * config/i386/mmx.md (*vec_interleave_lowv2sf):
3465         New insn_and_split pattern.
3466         (*vec_interleave_highv2sf): Ditto.
3467         (mmx_pshufbv8qi3): New insn pattern.
3468         (*mmx_pblendw): Ditto.
3469
3470 2021-06-10  Peter Bergner  <bergner@linux.ibm.com>
3471
3472         * config/rs6000/rs6000-builtin.def (build_pair): New built-in.
3473         (build_acc): Likewise.
3474         * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble
3475         source operands in little-endian mode.
3476         (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR.
3477         (mma_init_builtins): Likewise.
3478         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness
3479         ordering for the MMA assemble and build source operands.
3480         * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair):
3481         Document.
3482         (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
3483         documentation.
3484
3485 2021-06-10  Jeff Law  <jeffreyalaw@gmail.com>
3486
3487         * config/h8300/h8300.c (select_cc_mode): Handle MEM.  Use
3488         REG_P.
3489         * config/h8300/extensions.md: Replace _clobber_flags patterns
3490         with <cczn>.
3491
3492 2021-06-10  Robin Dapp  <rdapp@linux.ibm.com>
3493
3494         * config/s390/vector.md (vcond_mask_<mode><mode>): Change to
3495         (vcond_mask_<mode><tointvec>): this.
3496
3497 2021-06-10  Andrew Stubbs  <ams@codesourcery.com>
3498             Thomas Schwinge  <thomas@codesourcery.com>
3499
3500         * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into...
3501         (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these.
3502         * gimple.h (enum gf_mask): Split
3503         'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into
3504         'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and
3505         'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'.
3506         (is_gimple_omp_oacc): Update.
3507         * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
3508         * gimplify.c (gimplify_omp_target_update): Likewise.
3509         * omp-expand.c (expand_omp_target, build_omp_regions_1)
3510         (omp_make_gimple_edges): Likewise.
3511         * omp-low.c (check_omp_nesting_restrictions, lower_omp_target):
3512         Likewise.
3513
3514 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
3515
3516         * value-query.cc (value_query::value_on_edge): Rename name to
3517         expr.
3518         (range_query::range_on_edge): Same.
3519         (range_query::value_of_expr): Same.
3520         (range_query::value_on_edge): Same.
3521         * value-query.h (class value_query): Same.
3522         (class range_query): Same.
3523
3524 2021-06-10  Richard Biener  <rguenther@suse.de>
3525
3526         PR tree-optimization/101003
3527         * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately
3528         use the pattern stmt defs when linearizing a chain.
3529
3530 2021-06-10  Jakub Jelinek  <jakub@redhat.com>
3531
3532         PR debug/100852
3533         * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use
3534         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
3535
3536 2021-06-10  Clement Chigot  <clement.chigot@atos.net>
3537
3538         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive.
3539         * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
3540
3541 2021-06-09  Andrew Pinski  <apinski@marvell.com>
3542
3543         PR tree-optimization/100925
3544         * match.pd (a ? CST1 : CST2): Limit transformations
3545         that would produce a negative to integeral types only.
3546         Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also.
3547
3548 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
3549
3550         Revert:
3551         2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
3552
3553         * doc/tm.texi: Correctly update.
3554
3555 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
3556
3557         * doc/tm.texi: Correctly update.
3558
3559 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
3560
3561         PR other/100735
3562         * doc/tm.texi.in (Trampolines): Add a missing blank line.
3563
3564 2021-06-09  Paul Eggert  <eggert@cs.ucla.edu>
3565
3566         PR other/100735
3567         * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines
3568         and -ftrampolines work only with Ada.
3569         * doc/tm.texi.in (Trampolines): Likewise.
3570         * doc/tm.texi: Regenerated.
3571
3572 2021-06-09  Carl Love  <cel@us.ibm.com>
3573
3574         * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq):
3575         Add define for new builtins.
3576         * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand.
3577         * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL):  Add
3578         overloaded builtin definitions.
3579         (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D,
3580         VSIGNEXTSD2Q):  Add builtin expansions.
3581         (SIGNEXT): Add P10 overload definition.
3582         * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL,
3583         P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions.
3584         * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn.
3585         (vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>,
3586         vsignextend_si_v2di)[VIlong]: Add define_expand.
3587         Make define_insn vsx_sign_extend_si_v2di visible.
3588         * doc/extend.texi:  Add documentation for the vec_signexti,
3589         vec_signextll builtins and vec_signextq.
3590
3591 2021-06-09  Carl Love  <cel@us.ibm.com>
3592
3593         * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf,
3594         __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw,
3595         __floattikf_sw, __floatuntikf_sw respectively.
3596         * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
3597         fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add
3598         define_insn for mode IEEE 128.
3599
3600 2021-06-09  Carl Love  <cel@us.ibm.com>
3601
3602         * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq):
3603         Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI.
3604         * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md.
3605         (vashlv1ti3): Change to vashl<mode>3, mode VEC_TI.
3606         (vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI.
3607         * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update
3608         uses of VSX_TI to VEC_TI.
3609
3610 2021-06-09  Carl Love  <cel@us.ibm.com>
3611
3612         * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns.
3613
3614 2021-06-09  Carl Love  <cel@us.ibm.com>
3615
3616         * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new
3617         builtins.
3618         * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD,
3619         UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs.
3620         (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud,
3621         altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq,
3622         altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm,
3623         altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq,
3624         altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New
3625         define_insn.
3626         (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di,
3627         vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi,
3628         altivec_vrlqnm): New define_expands.
3629         * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P,
3630         VCMPGTUT_P): Add macro expansions.
3631         (BU_P10V_AV_P): Add builtin predicate definition.
3632         (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI,
3633         CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P,
3634         VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ,
3635         VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI,
3636         MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions.
3637         (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions.
3638         * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT,
3639         P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI,
3640         P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST,
3641         P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI,
3642         P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI,
3643         P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD,
3644         P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD,
3645         P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS,
3646         P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI,
3647         P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ,
3648         P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ,
3649         P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P,
3650         P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P,
3651         P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET,
3652         P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P,
3653         P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI,
3654         P10V_BUILTIN_MODU_V1TI):
3655         New overloaded definitions.
3656         (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT,
3657         P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI,
3658         P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT,
3659         P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI,
3660         P10V_BUILTIN_CMPLE_U1TI]: New case statements.
3661         (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]:
3662         New assignments.
3663         (altivec_init_builtins): New E_V1TImode case statement.
3664         (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD,
3665         P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI,
3666         P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI,
3667         P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements.
3668         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode,
3669         E_V1TImode]: New case statements.
3670         * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum
3671         value RS6000_BTI_bool_V1TI.
3672         * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti,
3673         vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti,
3674         vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p,
3675         vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3,
3676         vlshrv1ti3, vashrv1ti3): New define_expands.
3677         * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ,
3678         UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ,
3679         UNSPEC_VSX_MODUQ): New unspecs.
3680         (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti,
3681         vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New
3682         define_insns.
3683         (vcmpnet): New define_expand.
3684         * doc/extend.texi: Add documentation for the new builtins vec_rl,
3685         vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo,
3686         vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt,
3687         vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt,
3688         vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt,
3689         vec_any_ge, vec_any_le.
3690
3691 2021-06-09  Carl Love  <cel@us.ibm.com>
3692
3693         * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix
3694         bug in argument generation.
3695
3696 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
3697
3698         * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S.
3699         (VCLZQ): Remove.
3700         * config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix,
3701         remove <supf> iterator.
3702         (mve_vclzq_u<mode>): New.
3703         * config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>.
3704         (neon_vclz<mode): Move to ...
3705         * config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove.
3706         * config/arm/vec-common.md: ... here. Add support for MVE.
3707
3708 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
3709
3710         * config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'.
3711         (@mve_vrhaddq_<supf><mode): Likewise.
3712         * config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise.
3713         * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
3714         (avg<mode>3_ceil", uavg<mode>3_ceil): New patterns.
3715
3716 2021-06-09  imba-tjd  <109224573@qq.com>
3717
3718         * doc/invoke.texi: Fix typo.
3719
3720 2021-06-09  Roger Sayle  <roger@nextmovesoftware.com>
3721
3722         PR middle-end/53267
3723         * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]:
3724         Support evaluation of fmod/fmodf/fmodl at compile-time.
3725
3726 2021-06-09  Richard Biener  <rguenther@suse.de>
3727
3728         PR tree-optimization/100981
3729         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
3730         gimple_get_lhs to also handle calls.
3731         * tree-vect-slp-patterns.c (complex_pattern::build): Transfer
3732         reduction info.
3733
3734 2021-06-09  Richard Biener  <rguenther@suse.de>
3735
3736         PR tree-optimization/97832
3737         * tree-vectorizer.h (_slp_tree::failed): New.
3738         * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
3739         failed member.
3740         (_slp_tree::~_slp_tree): Free failed.
3741         (vect_build_slp_tree): Retain failed nodes and record
3742         matches in them, copying that back out when running
3743         into a cached fail.  Dump start and end of discovery.
3744         (dt_sort_cmp): New.
3745         (vect_build_slp_tree_2): Handle associatable chains
3746         together doing more aggressive operand swapping.
3747
3748 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
3749
3750         PR target/100896
3751         * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
3752         GNU targets.
3753         * doc/install.texi: Require glibc 2.1 and binutils 2.12 for
3754         Linux and GNU targets.
3755
3756 2021-06-09  Richard Biener  <rguenther@suse.de>
3757
3758         * tree-vect-stmts.c (vect_is_simple_use): Always get dt
3759         from the stmt.
3760
3761 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
3762
3763         * config/arc/arc.md (loop_end): Change it to
3764         define_insn_and_split.
3765
3766 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
3767
3768         * config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
3769         (machi): New pattern.
3770         (umaddhisi4): Use VMAC2HU instruction.
3771         (umachi): New pattern.
3772
3773 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
3774
3775         * config/arc/arc-protos.h (arc_split_move_p): New prototype.
3776         * config/arc/arc.c (arc_split_move_p): New function.
3777         (arc_split_move): Clean up.
3778         * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
3779         (movdf_insn): Likewise.
3780         * config/arc/simdext.md (mov<VWH>_insn): Likewise.
3781
3782 2021-06-09  Uroš Bizjak  <ubizjak@gmail.com>
3783
3784         PR target/100936
3785         * config/i386/i386.c (print_operand_address_as): Rename "no_rip"
3786         argument to "raw".  Do not emit segment overrides when "raw" is true.
3787
3788 2021-06-09  Martin Liska  <mliska@suse.cz>
3789
3790         * doc/gcov.texi: Create a proper JSON files.
3791         * doc/invoke.texi: Remove dots in order to make it a valid
3792         JSON object.
3793
3794 2021-06-09  Xionghu Luo  <luoxhu@linux.ibm.com>
3795
3796         * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New.
3797         (insn_is_load_p): Use pattern_is_rotate64.
3798         (insn_is_swap_p): Likewise.
3799         (quad_aligned_load_p): Likewise.
3800         (const_load_sequence_p): Likewise.
3801         (replace_swapped_aligned_load): Likewise.
3802         (recombine_lvx_pattern): Likewise.
3803         (recombine_stvx_pattern): Likewise.
3804
3805 2021-06-09  Andrew MacLeod  <amacleod@redhat.com>
3806
3807         * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a
3808         fur_stmt source record.
3809         * gimple-range.cc (fur_source::get_operand): Generic range query.
3810         (fur_source::get_phi_operand): New.
3811         (fur_source::register_dependency): New.
3812         (fur_source::query): New.
3813         (class fur_edge): New.  Edge source for operands.
3814         (fur_edge::fur_edge): New.
3815         (fur_edge::get_operand): New.
3816         (fur_edge::get_phi_operand): New.
3817         (fur_edge::query): New.
3818         (fur_stmt::fur_stmt): New.
3819         (fur_stmt::get_operand): New.
3820         (fur_stmt::get_phi_operand): New.
3821         (fur_stmt::query): New.
3822         (class fur_depend): New.  Statement source and process dependencies.
3823         (fur_depend::fur_depend): New.
3824         (fur_depend::register_dependency): New.
3825         (class fur_list): New.  List source for operands.
3826         (fur_list::fur_list): New.
3827         (fur_list::get_operand): New.
3828         (fur_list::get_phi_operand): New.
3829         (fold_range): New.  Instantiate appropriate fur_source class and fold.
3830         (fold_using_range::range_of_range_op): Use new API.
3831         (fold_using_range::range_of_address): Ditto.
3832         (fold_using_range::range_of_phi): Ditto.
3833         (imple_ranger::fold_range_internal): Use fur_depend class.
3834         (fold_using_range::range_of_ssa_name_with_loop_info): Use new API.
3835         * gimple-range.h (class fur_source): Now a base class.
3836         (class fur_stmt): New.
3837         (fold_range): New prototypes.
3838         (fur_source::fur_source): Delete.
3839
3840 2021-06-08  Andrew Pinski  <apinski@marvell.com>
3841
3842         PR tree-optimization/25290
3843         * tree-ssa-phiopt.c (xor_replacement): Delete.
3844         (tree_ssa_phiopt_worker): Delete use of xor_replacement.
3845         (match_simplify_replacement): Allow one cheap preparation
3846         statement that can be moved to before the if.
3847
3848 2021-06-08  Pat Haugen  <pthaugen@linux.ibm.com>
3849
3850         * config/rs6000/power10.md (power10-fused-load, power10-fused-store,
3851         power10-fused_alu, power10-fused-vec, power10-fused-branch): New.
3852
3853 2021-06-08  Jeff Law  <jeffreyalaw@gmail.com>
3854
3855         * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split.
3856         Create length attribute on define_insn_and_split.  Only split for cases which we
3857         know will use AND.
3858         (andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags.  Only handle AND here and
3859         fix length computation.
3860         (b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator.
3861
3862 2021-06-08  Richard Biener  <rguenther@suse.de>
3863
3864         PR tree-optimization/100923
3865         * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
3866         the operand vector to be valueized.
3867         (valueize_refs): Likewise.
3868         (valueize_shared_reference_ops_from_ref): Adjust.
3869         (valueize_shared_reference_ops_from_call): Likewise.
3870         (vn_reference_lookup_3): Likewise.
3871         (vn_reference_lookup_pieces): Likewise.  Re-valueize
3872         with honoring availability when we are about to create
3873         the ao_ref and valueized before.
3874         (vn_reference_lookup): Likewise.
3875         (vn_reference_insert_pieces): Adjust.
3876
3877 2021-06-08  Richard Biener  <rguenther@suse.de>
3878
3879         * tree-vectorizer.h (_slp_instance::root_stmt): Change to...
3880         (_slp_instance::root_stmts): ... a vector.
3881         (SLP_INSTANCE_ROOT_STMT): Rename to ...
3882         (SLP_INSTANCE_ROOT_STMTS): ... this.
3883         (slp_root::root): Change to...
3884         (slp_root::roots): ... a vector.
3885         (slp_root::slp_root): Adjust.
3886         * tree-vect-slp.c (_slp_instance::location): Adjust.
3887         (vect_free_slp_instance): Release the root stmt vector.
3888         (vect_build_slp_instance): Adjust.
3889         (vect_analyze_slp): Likewise.
3890         (_bb_vec_info::~_bb_vec_info): Likewise.
3891         (vect_slp_analyze_operations): Likewise.
3892         (vect_bb_vectorization_profitable_p): Likewise.  Adjust
3893         costs for the root stmt.
3894         (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs
3895         as root stmts.
3896         (vect_slp_analyze_bb_1): Simplify by marking all root stmts
3897         as pure_slp.
3898         (vectorize_slp_instance_root_stmt): Adjust.
3899         (vect_schedule_slp): Likewise.
3900
3901 2021-06-08  Aldy Hernandez  <aldyh@redhat.com>
3902
3903         * gimple-ssa-evrp.c (class ssa_equiv_stack): New.
3904         (ssa_equiv_stack::ssa_equiv_stack): New.
3905         (ssa_equiv_stack::~ssa_equiv_stack): New.
3906         (ssa_equiv_stack::enter): New.
3907         (ssa_equiv_stack::leave): New.
3908         (ssa_equiv_stack::push_replacement): New.
3909         (ssa_equiv_stack::get_replacement): New.
3910         (is_pointer_ssa): New.
3911         (class pointer_equiv_analyzer): New.
3912         (pointer_equiv_analyzer::pointer_equiv_analyzer): New.
3913         (pointer_equiv_analyzer::~pointer_equiv_analyzer): New.
3914         (pointer_equiv_analyzer::set_global_equiv): New.
3915         (pointer_equiv_analyzer::set_cond_equiv): New.
3916         (pointer_equiv_analyzer::get_equiv): New.
3917         (pointer_equiv_analyzer::enter): New.
3918         (pointer_equiv_analyzer::leave): New.
3919         (pointer_equiv_analyzer::get_equiv_expr): New.
3920         (pta_valueize): New.
3921         (pointer_equiv_analyzer::visit_stmt): New.
3922         (pointer_equiv_analyzer::visit_edge): New.
3923         (hybrid_folder::value_of_expr): Call PTA.
3924         (hybrid_folder::value_on_edge): Same.
3925         (hybrid_folder::pre_fold_bb): New.
3926         (hybrid_folder::post_fold_bb): New.
3927         (hybrid_folder::pre_fold_stmt): New.
3928         (rvrp_folder::pre_fold_bb): New.
3929         (rvrp_folder::post_fold_bb): New.
3930         (rvrp_folder::pre_fold_stmt): New.
3931         (rvrp_folder::value_of_expr): Call PTA.
3932         (rvrp_folder::value_on_edge): Same.
3933
3934 2021-06-08  Jakub Jelinek  <jakub@redhat.com>
3935
3936         PR c++/100957
3937         * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't
3938         check TREE_CODE if OMP_CLAUSE_DECL is NULL.
3939
3940 2021-06-08  Richard Biener  <rguenther@suse.de>
3941
3942         PR middle-end/100951
3943         * tree-vect-generic.c (expand_vector_piecewise): Build a
3944         VECTOR_CST if all elements are constant.
3945         (expand_vector_condition): Likewise.
3946         (lower_vec_perm): Likewise.
3947         (expand_vector_conversion): Likewise.
3948
3949 2021-06-08  Martin Liska  <mliska@suse.cz>
3950
3951         * doc/invoke.texi: Document new param evrp-sparse-threshold.
3952
3953 2021-06-08  Martin Liska  <mliska@suse.cz>
3954
3955         * genautomata.c (create_automata): Fix typo.
3956
3957 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
3958
3959         PR tree-optimization/100794
3960         * tree-predcom.c (tree_predictive_commoning_loop): Add parameter
3961         allow_unroll_p and only allow unrolling when it's true.
3962         (tree_predictive_commoning): Add parameter allow_unroll_p and
3963         adjust for it.
3964         (run_tree_predictive_commoning): Likewise.
3965         (pass_predcom::gate): Check flag_tree_loop_vectorize and
3966         global_options_set.x_flag_predictive_commoning.
3967         (pass_predcom::execute): Adjust for allow_unroll_p.
3968
3969 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
3970
3971         * tree-predcom.c (execute_pred_commoning): Remove update_ssa call.
3972         (tree_predictive_commoning_loop): Factor some cleanup stuffs into
3973         lambda function cleanup, remove scev_reset call, and adjust return
3974         value.
3975         (tree_predictive_commoning): Adjust for different changed values,
3976         only set flag TODO_update_ssa_only_virtuals if changed.
3977         (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals
3978         from todo_flags_finish.
3979
3980 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
3981
3982         * gimple-range-cache.cc (class sbr_sparse_bitmap): New.
3983         (sbr_sparse_bitmap::sbr_sparse_bitmap): New.
3984         (sbr_sparse_bitmap::bitmap_set_quad): New.
3985         (sbr_sparse_bitmap::bitmap_get_quad): New.
3986         (sbr_sparse_bitmap::set_bb_range): New.
3987         (sbr_sparse_bitmap::get_bb_range): New.
3988         (sbr_sparse_bitmap::bb_range_p): New.
3989         (block_range_cache::block_range_cache): initialize bitmap obstack.
3990         (block_range_cache::~block_range_cache): Destruct obstack.
3991         (block_range_cache::set_bb_range): Decide when to utilze the
3992         sparse on entry cache.
3993         * gimple-range-cache.h (block_range_cache): Add bitmap obstack.
3994         * params.opt (-param=evrp-sparse-threshold): New.
3995
3996 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
3997
3998         * bitmap.c (bitmap_set_aligned_chunk): New.
3999         (bitmap_get_aligned_chunk): New.
4000         (test_aligned_chunk): New.
4001         (bitmap_c_tests): Call test_aligned_chunk.
4002         * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New.
4003
4004 2021-06-07  Uroš Bizjak  <ubizjak@gmail.com>
4005
4006         PR target/100637
4007         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
4008         Handle V4QI mode.
4009         (ix86_expand_vector_init_one_nonzero): Ditto.
4010         (ix86_expand_vector_init_one_var): Ditto.
4011         (ix86_expand_vector_init_general): Ditto.
4012         * config/i386/mmx.md (vec_initv4qiqi): New expander.
4013
4014 2021-06-07  Jeff Law  <jeffreyalaw@gmail.com>
4015
4016         * config/h8300/movepush.md: Change most _clobber_flags
4017         patterns to instead use <cczn> subst.
4018         (movsi_cczn): New pattern with usable CC cases split out.
4019         (movsi_h8sx_cczn): Likewise.
4020
4021 2021-06-07  Martin Liska  <mliska@suse.cz>
4022
4023         * common/common-target.def: Split long lines and replace them
4024         with '\n\'.
4025         * target.def: Likewise.
4026         * doc/tm.texi: Re-generated.
4027
4028 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
4029
4030         PR target/100887
4031         * fold-const.c (fold_read_from_vector): Return NULL if trying to
4032         read from a CONSTRUCTOR with vector type elements.
4033
4034 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
4035
4036         PR middle-end/100898
4037         * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy
4038         should copy any arguments.  Don't call gimple_call_num_args
4039         on id->call_stmt or call_stmt more than once.
4040
4041 2021-06-07  liuhongt  <hongtao.liu@intel.com>
4042
4043         PR target/100885
4044         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine
4045         constraints.
4046         (<insn>v4siv4di2): Delete constraints for define_expand.
4047
4048 2021-06-07  liuhongt  <hongtao.liu@intel.com>
4049
4050         PR target/82735
4051         * config/i386/i386-expand.c (ix86_expand_builtin): Remove
4052         assignment of cfun->machine->has_explicit_vzeroupper.
4053         * config/i386/i386-features.c
4054         (ix86_add_reg_usage_to_vzerouppers): Delete.
4055         (ix86_add_reg_usage_to_vzeroupper): Ditto.
4056         (rest_of_handle_insert_vzeroupper): Remove
4057         ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end
4058         of the function.
4059         (gate): Remove cfun->machine->has_explicit_vzeroupper.
4060         * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper):
4061         Declared.
4062         * config/i386/i386.c (ix86_insn_callee_abi): New function.
4063         (ix86_initialize_callee_abi): Ditto.
4064         (ix86_expand_avx_vzeroupper): Ditto.
4065         (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper
4066         ABI.
4067         (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi.
4068         (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper
4069         directly.
4070         * config/i386/i386.h (struct GTY(()) machine_function): Delete
4071         has_explicit_vzeroupper.
4072         * config/i386/i386.md (enum unspec): New member
4073         UNSPEC_CALLEE_ABI.
4074         (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New
4075         define_constants for insn callee abi index.
4076         * config/i386/predicates.md (vzeroupper_pattern): Adjust.
4077         * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted.
4078         (avx_vzeroupper): Call ix86_expand_avx_vzeroupper.
4079         (*avx_vzeroupper): Rename to ..
4080         (avx_vzeroupper_callee_abi): .. this, and adjust pattern as
4081         call_insn which has a special vzeroupper ABI.
4082         (*avx_vzeroupper_1): Deleted.
4083
4084 2021-06-07  liuhongt  <hongtao.liu@intel.com>
4085
4086         PR target/82735
4087         * df-scan.c (df_get_call_refs): When call_insn is a fake call,
4088         it won't use stack pointer reg.
4089         * final.c (leaf_function_p): When call_insn is a fake call, it
4090         won't affect caller as a leaf function.
4091         * reg-stack.c (callee_clobbers_any_stack_reg): New.
4092         (subst_stack_regs): When call_insn doesn't clobber any stack
4093         reg, don't clear the arguments.
4094         * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is
4095         a insn.
4096         * shrink-wrap.c (requires_stack_frame_p): No need for stack
4097         frame for a fake call.
4098         * rtl.h (FAKE_CALL_P): New macro.
4099
4100 2021-06-06  Eric Botcazou  <ebotcazou@adacore.com>
4101
4102         * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename
4103         to...
4104         (sparc_order_regs_for_local_alloc): ...this.
4105         (sparc_leaf_reg_remap): Declare.
4106         * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust.
4107         (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap.
4108         * config/sparc/sparc.c (leaf_reg_remap): Delete.
4109         (order_regs_for_local_alloc): Rename to...
4110         (sparc_order_regs_for_local_alloc): ...this.
4111         (sparc_leaf_reg_remap): New function.
4112         (sparc_conditional_register_usage): Do not modify leaf_reg_remap.
4113
4114 2021-06-06  David Edelsohn  <dje.gcc@gmail.com>
4115
4116         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common):
4117         Use assemble_name to output BSS section name.
4118
4119 2021-06-06  Uroš Bizjak  <ubizjak@gmail.com>
4120
4121         * config/i386/constraints.md (Bs):
4122         Remove boolean operators from match_test RTX.
4123         (Bw): Ditto.
4124         (L): Ditto.
4125         (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
4126         (Wz): Ditto.
4127
4128 2021-06-06  Martin Liska  <mliska@suse.cz>
4129
4130         * doc/extend.texi: Add missing @headitem.
4131         * doc/invoke.texi: Likewise.
4132         * doc/objc.texi: Likewise.
4133
4134 2021-06-06  Martin Liska  <mliska@suse.cz>
4135
4136         * genhooks.c (emit_findices): Remove unused function.
4137         (emit_documentation): Do not call emit_findices
4138         and do not search for @Fcode directives.
4139
4140 2021-06-06  Martin Liska  <mliska@suse.cz>
4141
4142         * doc/invoke.texi: Remove extra character.
4143
4144 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4145
4146         * config/sh/sh.md (doloop_end_split): Fix empty split condition.
4147
4148 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4149
4150         * config/sparc/sparc.md (*snedi<W:mode>_zero_vis3,
4151         *neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero,
4152         *plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero,
4153         *minus_minus_snedi<W:mode>_zero): Fix empty split condition.
4154
4155 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4156
4157         * config/or1k/or1k.md (*movdi): Fix empty split condition.
4158
4159 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4160
4161         * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty
4162         split condition.
4163
4164 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4165
4166         * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec,
4167         *zero_extendsidi2): Fix empty split condition.
4168
4169 2021-06-05  Jeff Law  <jeffreyalaw@gmail.com>
4170
4171         * config/h8300/addsub.md: Fix split condition in define_insn_and_split
4172         patterns.
4173         * config/h8300/bitfield.md: Likewise.
4174         * config/h8300/combiner.md: Likewise.
4175         * config/h8300/divmod.md: Likewise.
4176         * config/h8300/extensions.md: Likewise.
4177         * config/h8300/jumpcall.md: Likewise.
4178         * config/h8300/movepush.md: Likewise.
4179         * config/h8300/multiply.md: Likewise.
4180         * config/h8300/other.md: Likewise.
4181         * config/h8300/shiftrotate.md: Likewise.
4182         * config/h8300/logical.md: Likewise.  Fix split pattern to use
4183         code iterator that somehow slipped through.
4184
4185 2021-06-04  Tobias Burnus  <tobias@codesourcery.com>
4186
4187         PR middle-end/100905
4188         * tree-nested.c (convert_nonlocal_omp_clauses,
4189         convert_local_omp_clauses): Handle OMP_CLAUSE_BIND.
4190
4191 2021-06-04  Martin Sebor  <msebor@redhat.com>
4192
4193         PR middle-end/100732
4194         * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls
4195         with either source or destination argument of invalid type.
4196         * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking
4197         calls with arguments of invalid type.
4198
4199 2021-06-04  Martin Sebor  <msebor@redhat.com>
4200
4201         * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected
4202         order.
4203         (attr_access::vla_bounds): Also handle VLA bounds.
4204
4205 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
4206
4207         * config/i386/predicates.md (GOT_memory_operand):
4208         Implement using match_code RTXes.
4209         (GOT32_symbol_operand): Ditto.
4210
4211 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
4212
4213         PR target/100637
4214         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
4215         Handle V2HI mode.
4216         (ix86_expand_vector_init_general): Ditto.
4217         Use SImode instead of word_mode for logic operations
4218         when GET_MODE_SIZE (mode) < UNITS_PER_WORD.
4219         (expand_vec_perm_even_odd_1): Assert that V2HI mode should be
4220         implemented by expand_vec_perm_1.
4221         (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes
4222         should be implemented using standard shuffle patterns.
4223         (ix86_vectorize_vec_perm_const): Handle V2HImode.  Add V4HI and
4224         V2HI modes to modes, implementable with shuffle for one operand.
4225         * config/i386/mmx.md (*punpckwd): New insn_and_split pattern.
4226         (*pshufw_1): New insn pattern.
4227         (*vec_dupv2hi): Ditto.
4228         (vec_initv2hihi): New expander.
4229
4230 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
4231
4232         * config/arm/vfp.md (no_literal_pool_df_immediate,
4233         no_literal_pool_sf_immediate): Fix empty split condition.
4234
4235 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
4236
4237         * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext,
4238         *tls_dynamic_gnu2_combine_32): Fix empty split condition.
4239         * config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt,
4240         *<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt,
4241         *<sse4_1_avx2>_pblendvb_lt): Likewise.
4242
4243 2021-06-04  Jakub Jelinek  <jakub@redhat.com>
4244
4245         PR target/100887
4246         * config/i386/i386-expand.c (ix86_expand_vector_init): Handle
4247         concatenation from half-sized modes with TImode elements.
4248
4249 2021-06-04  Claudiu Zissulescu  <claziss@synopsys.com>
4250
4251         * config/arc/arc.c (arc_override_options): Disable millicode
4252         thunks when RF16 is on.
4253
4254 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
4255
4256         * config/rs6000/rs6000.h (PROMOTE_MODE): Remove.
4257
4258 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
4259
4260         * config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
4261         Replace PROMOTE_MODE marco with its content.
4262
4263 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
4264
4265         * config/cris/cris.md (*addi_reload): Fix empty split condition.
4266
4267 2021-06-03  Jim Wilson  <jimw@sifive.com>
4268
4269         * config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
4270         turn it on for all riscv targets.
4271
4272 2021-06-03  Uroš Bizjak  <ubizjak@gmail.com>
4273
4274         PR target/100637
4275         * config/i386/i386-expand.c (ix86_expand_vector_set):
4276         Handle V2HI and V4QI modes.
4277         (ix86_expand_vector_extract): Ditto.
4278         * config/i386/mmx.md (*pinsrw): New insn pattern.
4279         (*pinsrb): Ditto.
4280         (*pextrw): Ditto.
4281         (*pextrw_zext): Ditto.
4282         (*pextrb): Ditto.
4283         (*pextrb_zext): Ditto.
4284         (vec_setv2hi): New expander.
4285         (vec_extractv2hihi): Ditto.
4286         (vec_setv4qi): Ditto.
4287         (vec_extractv4qiqi): Ditto.
4288         (vec_setv8qi): Enable only for TARGET_SSE4_1.
4289         (vec_extractv8qiqi): Ditto.
4290
4291 2021-06-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
4292
4293         * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input
4294         order to subf instruction.
4295         * config/rs6000/fusion.md: Regenerate.
4296
4297 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
4298
4299         * calls.c (get_size_range): Use range_of_expr instead of
4300         determine_value_range.
4301         * tree-affine.c (expr_to_aff_combination): Same.
4302         * tree-data-ref.c (split_constant_offset): Same.
4303         * tree-vrp.c (determine_value_range_1): Remove.
4304         (determine_value_range): Remove.
4305         * tree-vrp.h (determine_value_range): Remove.
4306
4307 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
4308
4309         * function-tests.c (test_ranges): Call gimple_range_tests.
4310         * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt
4311         to get_tree_range.
4312         * gimple-range.cc (fur_source::get_operand): Do not call
4313         get_tree_range or gimple_range_global.
4314         get_tree_range.
4315         (get_tree_range): Move to value-query.cc.
4316         Call get_arith_expr_range.
4317         (gimple_ranger::range_of_expr): Add argument to get_tree_range.
4318         Include gimple-range-tests.cc.
4319         * gimple-range.h (fold_range): Add argument.
4320         (get_tree_range): Remove.
4321         * selftest.h (gimple_range_tests): New.
4322         * value-query.cc (global_range_query::range_of_expr): Add
4323         stmt argument.
4324         (range_query::get_tree_range): Move from gimple-range.cc.
4325         * value-query.h (class range_query): Add get_tree_range and
4326         get_arith_expr_range.  Make fur_source a friend.
4327         * vr-values.c (vr_values::range_of_expr): Pass stmt to
4328         get_tree_range.
4329         * gimple-range-tests.cc: New file.
4330
4331 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
4332
4333         * gimple-range.cc (gimple_ranger::export_global_ranges): Call
4334           update_global_range.
4335         * value-query.cc (update_global_range): New.
4336         * value-query.h (update_global_range): New.
4337
4338 2021-06-03  David Malcolm  <dmalcolm@redhat.com>
4339
4340         * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject
4341         printing the same location twice if there are fix-it hints,
4342         multiple locations, or a label.
4343
4344 2021-06-03  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4345
4346         * tree-vect-loop.c (vect_transform_loop): Use main loop's various'
4347         thresholds to narrow the upper bound on epilogue iterations.
4348
4349 2021-06-03  Christophe Lyon  <christophe.lyon@linaro.org>
4350
4351         * config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec.
4352         (mve_vabsq_s<mode>): Likewise.
4353         * config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2.
4354         * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete.
4355         * config/arm/vec-common.md (neg<mode>2): Rename to
4356         <absneg_str><mode>2.
4357
4358 2021-06-03  Claudiu Zissulescu  <claziss@synopsys.com>
4359
4360         * common/config/arc/arc-common.c (arc_option_optimization_table):
4361         Remove malign-call.
4362         * config/arc/arc.c (arc_unalign_branch_p): Remove unused function.
4363         * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro.
4364         (INDEX_REG_CLASS): Only refer to GENERAL_REGS.
4365         * config/arc/arc.md (abssi2_mixed): Remove pattern.
4366         * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete.
4367         (malign-call): Likewise.
4368         (mmixed-code): Likewise.
4369         * doc/invoke.texi (ARC): Update doc.
4370
4371 2021-06-03  Martin Liska  <mliska@suse.cz>
4372
4373         * common.opt: Use proper Enum values.
4374         * opts.c (COVERAGE_SANITIZER_OPT): Remove.
4375         (parse_sanitizer_options): Handle only sanitizer_opts.
4376         (common_handle_option): Just assign value.
4377
4378 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4379
4380         PR ipa/99122
4381         * tree-inline.c (inline_forbidden_p): Remove test on return type.
4382
4383 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4384
4385         * dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate
4386         DW_OP_GNU_variable_value referencing an existing DIE at file scope.
4387         (type_byte_size): Inline into...
4388         (add_byte_size_attribute): ...this and call add_scalar_info.
4389
4390 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4391
4392         * dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo.
4393         (typed_binop_from_tree): New function.
4394         (loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type,
4395         turn a divide by a power of 2 into a shift.
4396         <CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the
4397         size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a
4398         typed divide by calling typed_binop_from_tree.
4399
4400 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4401
4402         * dwarf2out.c (scompare_loc_descriptor): Fix head comment.
4403         (is_handled_procedure_type): Likewise.
4404         (struct loc_descr_context): Add strict_signedness field.
4405         (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type,
4406         DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret.
4407         (resolve_args_picking): Minor tweak.
4408         (function_to_dwarf_procedure): Initialize strict_signedness field.
4409         (type_byte_size): Likewise.
4410         (field_byte_offset): Likewise.
4411         (gen_descr_array_type_die): Likewise.
4412         (gen_variant_part): Likewise.
4413         (loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness
4414         to true when a context is present before evaluating the arguments.
4415         <COND_EXPR>: Do not generate a useless comparison with zero.
4416         When dereferencing an address, if strict_signedness is true and the
4417         type is small and signed, use DW_OP_deref_type to do the dereference
4418         and then DW_OP_convert to convert back to the generic type.
4419
4420 2021-06-03  Jakub Jelinek  <jakub@redhat.com>
4421
4422         PR c++/100859
4423         * tree-inline.c (copy_tree_body_r): Handle iterators on
4424         OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND.
4425
4426 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
4427
4428         * config/arc/arc.md (*bbit_di): Remove.
4429
4430 2021-06-02  Christoph Muellner  <cmuellner@gcc.gnu.org>
4431
4432         PR rtl-optimization/100264
4433         * ree.c (get_sub_rtx): Ignore SET expressions without register
4434         destinations and remove assertion, as it is not valid anymore
4435         with this new behaviour.
4436         (merge_def_and_ext): Eliminate destination check for register
4437         as such SET expressions can't occur anymore.
4438         (combine_reaching_defs): Likewise.
4439
4440 2021-06-02  Jakub Jelinek  <jakub@redhat.com>
4441
4442         PR target/100841
4443         * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid
4444         -Wtype-limits warnings.
4445         (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition
4446         in operands to avoid -Wsign-compare warnings.
4447
4448 2021-06-02  Pat Haugen  <pthaugen@linux.ibm.com>
4449
4450         * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
4451         gen_frame_store.
4452
4453 2021-06-02  Vineet Gupta  <vgupta@synopsys.com>
4454
4455         * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux.
4456
4457 2021-06-02  Ilya Leoshkevich  <iii@linux.ibm.com>
4458
4459         * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single
4460         constraint.
4461         * config/s390/subst.md(cconly_subst): Use a single constraint
4462         in (match_scratch).
4463
4464 2021-06-02  Martin Liska  <mliska@suse.cz>
4465
4466         * ipa-icf.h: Use auto_vec for memory_access_types.
4467
4468 2021-06-02  Jeff Law  <jeffreyalaw@gmail.com>
4469
4470         * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused
4471         argument from prototype.
4472         (output_logical_op): Add rtx_code argument.
4473         (compute_logical_op_length): Likewise.
4474         * config/h8300/h8300.c (h8300_and_costs): Pass additional argument
4475         to compute_a_shift_length.
4476         (output_logical_op); New argument with the rtx code rather than
4477         extracting it from an operand.  Handle QImode too.
4478         (compute_logical_op_length): Similary.
4479         (compute_a_shift_length): Drop unused argument.
4480         * config/h8300/h8300.md (logicals): New code iterator.
4481         * config/h8300/logical.md (<code><mode>3 expander): Combine
4482         the "and" expander with the "ior"/"xor" expander.
4483         (bclr<mode>msx): Combine the QI/HI mode patterns.
4484         (<logical><mode>3 insns): Use code iterator rather than match_operator.
4485         Handle QImode as well.   Update call to output_logical_op and
4486         compute_logical_op_length to pass in rtx_code
4487         Fix split condition on all define_insn_and_split patterns.
4488         (one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering
4489         the flags and setting ZN via existing define_subst.
4490         * config/h8300/shiftrotate.md: Drop unused argument from
4491         calls to compute_a_shift_length.
4492         Signed-off-by: Jeff Law <jeffreyalaw@gmail.com>
4493
4494 2021-06-01  Andrew Pinski  <apinski@marvell.com>
4495
4496         PR tree-optimization/25290
4497         * tree-ssa-phiopt.c (match_simplify_replacement):
4498         New function.
4499         (tree_ssa_phiopt_worker): Use match_simplify_replacement.
4500         (two_value_replacement): Change the comment about
4501         conditional_replacement.
4502         (conditional_replacement): Delete.
4503
4504 2021-06-01  Andrew Pinski  <apinski@marvell.com>
4505
4506         PR tree-optimization/95481
4507         * tree-tailcall.c (find_tail_calls): Handle empty typed
4508         return decls.
4509
4510 2021-06-01  Andrew Pinski  <apinski@marvell.com>
4511
4512         * gimplify.c (zero_sized_field_decl): Delete
4513         (zero_sized_type): Delete
4514         (gimplify_init_ctor_eval): Use is_empty_type instead
4515         of zero_sized_field_decl.
4516         (gimplify_modify_expr): Use is_empty_type instead of
4517         zero_sized_type.
4518
4519 2021-06-01  Jason Merrill  <jason@redhat.com>
4520
4521         PR c++/91859
4522         * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment.
4523
4524 2021-06-01  Jason Merrill  <jason@redhat.com>
4525
4526         PR c++/94492
4527         * diagnostic.h (warning_enabled_at): Declare.
4528         * diagnostic.c (diagnostic_enabled): Factor out from...
4529         (diagnostic_report_diagnostic): ...here.
4530         (warning_enabled_at): New.
4531
4532 2021-06-01  Aldy Hernandez  <aldyh@redhat.com>
4533
4534         * gimple-ssa-evrp.c: Enable exporting of global ranges.
4535
4536 2021-06-01  Martin Liska  <mliska@suse.cz>
4537
4538         PR other/100826
4539         * doc/invoke.texi: Mention that -fgcse-after-reload
4540         is enabled with -O3.
4541
4542 2021-06-01  liuhongt  <hongtao.liu@intel.com>
4543
4544         PR tree-optimization/98365
4545         * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function.
4546         (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction.
4547         (convert_scalar_cond_reduction): Ditto.
4548         (predicate_scalar_phi): Ditto.
4549
4550 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4551
4552         PR tree-optimization/100781
4553         * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new
4554         value calculation by default.
4555         (ranger_cache::enable_new_values): New.
4556         (ranger_cache::disable_new_values): New.
4557         (ranger_cache::push_poor_value): Check if new values are allowed.
4558         * gimple-range-cache.h (class ranger_cache): New member/methods.
4559         * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug
4560         statement, and disable/renable new value calculation.
4561
4562 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4563
4564         * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete.
4565         (ranger_cache::range_of_def): New.
4566         (ranger_cache::entry_range): New.
4567         (ranger_cache::exit_range): New.
4568         (ranger_cache::range_of_expr): Adjust.
4569         (ranger_cache::range_on_edge): Adjust.
4570         (ranger_cache::propagate_cache): Call exit_range directly.
4571         * gimple-range-cache.h (class ranger_cache): Adjust.
4572
4573 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4574
4575         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for
4576         gori_compute being a member rather than base class.
4577         dervied call to member call.
4578         (ranger_cache::dump): No longer dump gori_map.
4579         (ranger_cache::dump_bb): New.
4580         (ranger_cache::get_non_stale_global_range): Adjust for gori_compute
4581         being a member rather than base class.
4582         (ranger_cache::set_global_range): Ditto.
4583         (ranger_cache::ssa_range_in_bb): Ditto.
4584         (ranger_cache::range_of_expr): New.
4585         (ranger_cache::range_on_edge): New.
4586         (ranger_cache::block_range): Adjust for gori_computes.  Debug changes.
4587         (ranger_cache::propagate_cache):  Adjust debugging output.
4588         (ranger_cache::fill_block_cache): Adjust for gori_computes.  Debug
4589         output changes.
4590         * gimple-range-cache.h (class ranger_cache): Make gori_compute a
4591         member, and inherit from range_query instead.
4592         (ranger_cache::dump_bb): New. split from dump.
4593         * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete.
4594         (gori_compute::expr_range_at_stmt): Delete.
4595         (gori_compute::compute_name_range_op): Delete.
4596         (gori_compute::compute_operand_range_switch): Add fur_source.
4597         (gori_compute::compute_operand_range): Add fur_source param, inline
4598         old compute_name_range_op and optimize_logical_operands.
4599         (struct tf_range): Delete.
4600         (gori_compute::logical_combine): Adjust
4601         (gori_compute::optimize_logical_operands): Delete.
4602         (gori_compute::compute_logical_operands_in_chain): Delete.
4603         (gori_compute::compute_logical_operands): Adjust.
4604         (gori_compute::compute_operand1_range): Adjust to fur_source.
4605         (gori_compute::compute_operand2_range): Ditto.
4606         (gori_compute::compute_operand1_and_operand2_range): Ditto.
4607         (gori_compute::outgoing_edge_range_p): Add range_query parameter,
4608         and adjust to fur_source.
4609         * gimple-range-gori.h (class gori_compute): Simplify and adjust to
4610         range_query and fur_source.
4611         * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge
4612         from the ranger_cache..
4613         (gimple_ranger::fold_range_internal): Adjust to base class change of
4614         ranger_cache.
4615         (gimple_ranger::dump_bb): Adjust dump.
4616         * gimple-range.h (gimple_ranger):export gori computes object.
4617
4618 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4619
4620         PR tree-optimization/100774
4621         * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range):
4622         Constant values are also not stale.
4623         (ranger_cache::set_global_range): Range invariant values should also
4624         have the correct timestamp.
4625
4626 2021-05-31  Martin Liska  <mliska@suse.cz>
4627
4628         * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
4629         Unpack FUNCTION_DECL_DECL_TYPE.
4630         * tree-streamer-out.c (pack_ts_function_decl_value_fields):
4631         Stream FUNCTION_DECL_DECL_TYPE instead of
4632         DECL_IS_OPERATOR_NEW_P.
4633         * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE
4634         macro.
4635         (DECL_IS_OPERATOR_NEW_P): Likewise.
4636         (DECL_IS_OPERATOR_DELETE_P): Likewise.
4637         (DECL_LAMBDA_FUNCTION_P): Likewise.
4638
4639 2021-05-31  Richard Biener  <rguenther@suse.de>
4640
4641         PR c++/88601
4642         * internal-fn.c (expand_SHUFFLEVECTOR): Define.
4643         * internal-fn.def (SHUFFLEVECTOR): New.
4644         * internal-fn.h (expand_SHUFFLEVECTOR): Declare.
4645         * doc/extend.texi: Document __builtin_shufflevector.
4646
4647 2021-05-31  Peter Bergner  <bergner@linux.ibm.com>
4648
4649         PR target/99842
4650         * config/rs6000/predicates.md(mma_assemble_input_operand): Allow
4651         indexed form addresses.
4652
4653 2021-05-29  Jeff Law  <jlaw@tachyum.com>
4654
4655         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused
4656         parameter.  Call callers fixed.
4657         (push): Likewise.
4658         (output_plussi): Add FALLTHRU markers.
4659         (h8300_shift_needs_scratch_p): Add gcc_unreachable marker.
4660
4661 2021-05-29  Jakub Jelinek  <jakub@redhat.com>
4662
4663         PR middle-end/99928
4664         * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd
4665         combined with parallel, make sure to add shared clause to
4666         parallel for explicit linear clause.
4667
4668 2021-05-29  Aldy Hernandez  <aldyh@redhat.com>
4669
4670         PR tree-optimization/100787
4671         * gimple-ssa-evrp.c: Disable exporting of global ranges.
4672
4673 2021-05-28  Jason Merrill  <jason@redhat.com>
4674
4675         * tree-iterator.h (struct tree_stmt_iterator): Add operator++,
4676         operator--, operator*, operator==, and operator!=.
4677         (class tsi_range): New.
4678
4679 2021-05-28  Richard Biener  <rguenther@suse.de>
4680
4681         PR tree-optimization/100778
4682         * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly
4683         trapping ops in different BBs.
4684
4685 2021-05-28  Richard Biener  <rguenther@suse.de>
4686
4687         PR ipa/100791
4688         * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
4689         copy fntype from original call.
4690
4691 2021-05-28  Martin Liska  <mliska@suse.cz>
4692
4693         PR gcov-profile/100751
4694         * doc/gcov.texi: Revert partially a hunk that was wrong.
4695
4696 2021-05-28  Cooper Qu  <cooper.qu@linux.alibaba.com>
4697
4698         * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi):
4699         Defined.
4700         (HAVE_sync_compare_and_swaphi): Likewise.
4701         (HAVE_sync_compare_and_swapsi): Likewise.
4702
4703 2021-05-28  Jakub Jelinek  <jakub@redhat.com>
4704
4705         PR middle-end/99928
4706         * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define.
4707
4708 2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
4709
4710         * gimplify.c (gimplify_omp_affinity): New.
4711         (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards.
4712         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY.
4713         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY.
4714         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause.
4715         (walk_tree_1): Handle OMP_CLAUSE_AFFINITY.
4716
4717 2021-05-28  Joern Rennecke  <joern.rennecke@riscy-ip.com>
4718             Richard Biener   <rguenther@suse.de>
4719
4720         * match.pd <popcount & / + pattern matching>:
4721         When generating popcount directly fails, try doing it in two halves.
4722
4723 2021-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4724
4725         * Makefile.in (generated_files): Add gimple-match.c and
4726         generic-match.c
4727
4728 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4729
4730         * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP.
4731
4732 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4733
4734         * gensupport.c (alter_constraints): Add MATCH_SCRATCH case.
4735
4736 2021-05-28  Kewen Lin  <linkw@linux.ibm.com>
4737
4738         PR tree-optimization/99398
4739         * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases
4740         where the fed operands are CTOR/CST and propagated through
4741         VIEW_CONVERT_EXPR.  Call vec_perm_indices::new_shrunk_vector.
4742         * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New
4743         function.
4744         * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New
4745         declare.
4746
4747 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
4748
4749         * config/i386/mmx.md (addv2sf3): Do not call
4750         ix86_fixup_binary_operands_no_copy.
4751         (subv2sf3): Ditto.
4752         (mulv2sf3): Ditto.
4753         (<smaxmin:code>v2sf3): Ditto.
4754         (<plusminus:insn><MMXMODEI:mode>3): Ditto.
4755         (<plusminus:insn><VI_32:mode>3): Remove expander.
4756         (<plusminus:insn><VI_32:mode>3): Rename from
4757         "*<plusminus:insn><VI_32:mode>3".
4758         (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy.
4759         (mulv2hi3): Remove expander.
4760         (mulv2hi3): Rename from *mulv2hi3.
4761         (<s>mulv2hi3_highpart): Remove expander.
4762         (<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart.
4763         (<smaxmin:code><MMXMODE14:mode>3): Rename from
4764         "*mmx_<smaxmin:code><MMXMODE14:mode>3".
4765         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander.
4766         (SMAXMIN_MMXMODEI): Remove mode iterator.
4767         (<smaxmin:code>v4hi3): New expander.
4768         (<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3.
4769         (<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3.
4770         (<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
4771         (SMAXMIN_VI_32): Remove mode iterator.
4772         (<umaxmin:code><MMXMODE24:mode>3): Rename from
4773         "*mmx_<umaxmin:code><MMXMODE24:mode>3".
4774         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander.
4775         (UMAXMIN_MMXMODEI): Remove mode iterator.
4776         (<umaxmin:code>v8qi3): New expander.
4777         (<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3.
4778         (<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3.
4779         (<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
4780         (UMAXMIN_VI_32): Remove mode iterator.
4781         (<any_shift:insn>v2hi3): Remove expander.
4782         (<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3.
4783         (<any_logic:code><MMXMODEI:mode>3): Do not call
4784         ix86_fixup_binary_operands_no_copy.
4785         (<any_logic:code><VI_32:mode>3): Remove expander.
4786         (<any_logic:code><VI_32:mode>3): Rename from
4787         "*<any_logic:code><VI_32:mode>3".
4788         (uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy.
4789         * config/i386/sse.md (div<VF2:mode>3): Do not call
4790         ix86_fixup_binary_operands_no_copy.
4791         (div<VF1:mode>3): Ditto.
4792         (<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto.
4793         (smulhrsv4hi3): Ditto.
4794         (smulhrsv2hi3): Ditto.
4795
4796 2021-05-27  Martin Sebor  <msebor@redhat.com>
4797
4798         * ggc.h (gt_ggc_mx): Add overloads for all integers.
4799         (gt_pch_nx):  Same.
4800         * hash-map.h (class hash_map): Add pch_nx_helper overloads for all
4801         integers.
4802         (hash_map::operator==): New function.
4803
4804 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
4805
4806         PR target/100637
4807         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
4808         For TARGET_XOP bypass SSE comparisons for all supported vector modes.
4809         * config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern.
4810         (*xop_maskcmp<VI_32:mode>3): Ditto.
4811         (*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto.
4812         (*xop_maskcmp_uns<VI_32:mode>3): Ditto.
4813
4814 2021-05-27  Richard Earnshaw  <rearnsha@arm.com>
4815
4816         PR target/100767
4817         * config/arm/arm.c (arm_configure_build_target): Remove parameter
4818         opts_set, directly check opts parameters for being non-null.
4819         (arm_option_restore): Update call to arm_configure_build_target.
4820         (arm_option_override): Likewise.
4821         (arm_can_inline_p): Likewise.
4822         (arm_valid_target_attribute_tree): Likewise.
4823         * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
4824         * config/arm/arm-protos.h (arm_configure_build_target): Adjust
4825         prototype.
4826
4827 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
4828
4829         * vr-values.c (simplify_conversion_using_ranges): Use
4830         get_range_query instead of get_global_range_query.
4831
4832 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
4833
4834         * gimple-range.cc (get_range_global): Move to value-query.cc.
4835         (gimple_range_global): Same.
4836         (get_global_range_query): Same.
4837         (global_range_query::range_of_expr): Same.
4838         * gimple-range.h (class global_range_query): Move to
4839         value-query.h.
4840         (gimple_range_global): Same.
4841         * tree-ssanames.c (get_range_info): Move to value-query.cc.
4842         (get_ptr_nonnull): Same.
4843         * tree-ssanames.h (get_range_info): Remove.
4844         (get_ptr_nonnull): Remove.
4845         * value-query.cc (get_ssa_name_range_info): Move from
4846         tree-ssanames.c.
4847         (get_ssa_name_ptr_info_nonnull): Same.
4848         (get_range_global): Move from gimple-range.cc.
4849         (gimple_range_global): Same.
4850         (get_global_range_query): Same.
4851         (global_range_query::range_of_expr): Same.
4852         * value-query.h (class global_range_query): Move from
4853         gimple-range.h.
4854         (gimple_range_global): Same.
4855
4856 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
4857
4858         PR target/100637
4859         * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern.
4860         (uavgv2hi3_ceil): Ditto.
4861
4862 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
4863
4864         PR c/100653
4865         * doc/extend.texi (scalar_storage_order): Rephrase slightly.
4866
4867 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
4868
4869         * tree-ssanames.c (get_range_info): Merge both copies of
4870         get_range_info into one that works with irange.
4871         * tree-ssanames.h (get_range_info): Remove version that works on
4872         wide_ints.
4873
4874 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
4875
4876         * builtins.c (check_nul_terminated_array): Convert to get_range_query.
4877         (expand_builtin_strnlen): Same.
4878         (determine_block_size): Same.
4879         * fold-const.c (expr_not_equal_to): Same.
4880         * gimple-fold.c (size_must_be_zero_p): Same.
4881         * gimple-match-head.c: Include gimple-range.h.
4882         * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query.
4883         * gimple-ssa-warn-restrict.c
4884         (builtin_memref::extend_offset_range): Same.
4885         * graphite-sese-to-poly.c (add_param_constraints): Same.
4886         * internal-fn.c (get_min_precision): Same.
4887         * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same.
4888         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
4889         * match.pd: Same.
4890         * tree-data-ref.c (split_constant_offset): Same.
4891         (dr_step_indicator): Same.
4892         * tree-dfa.c (get_ref_base_and_extent): Same.
4893         * tree-scalar-evolution.c (iv_can_overflow_p): Same.
4894         * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same.
4895         (determine_value_range): Same.
4896         (record_nonwrapping_iv): Same.
4897         (infer_loop_bounds_from_signedness): Same.
4898         (scev_var_range_cant_overflow): Same.
4899         * tree-ssa-phiopt.c (two_value_replacement): Same.
4900         * tree-ssa-pre.c (insert_into_preds_of_block): Same.
4901         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same.
4902         * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same.
4903         (get_range): Same.
4904         (dump_strlen_info): Same.
4905         (set_strlen_range): Same.
4906         (maybe_diag_stxncpy_trunc): Same.
4907         (get_len_or_size): Same.
4908         (handle_integral_assign): Same.
4909         * tree-ssa-structalias.c (find_what_p_points_to): Same.
4910         * tree-ssa-uninit.c (find_var_cmp_const): Same.
4911         * tree-switch-conversion.c (bit_test_cluster::emit): Same.
4912         * tree-vect-patterns.c (vect_get_range_info): Same.
4913         (vect_recog_divmod_pattern): Same.
4914         * tree-vrp.c (intersect_range_with_nonzero_bits): Same.
4915         (register_edge_assert_for_2): Same.
4916         (determine_value_range_1): Same.
4917         * tree.c (get_range_pos_neg): Same.
4918         * vr-values.c (vr_values::get_lattice_entry): Same.
4919         (vr_values::update_value_range): Same.
4920         (simplify_conversion_using_ranges): Same.
4921
4922 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
4923
4924         * gimple-ssa-warn-alloca.c (alloca_call_type): Use
4925           get_range_query instead of query argument.
4926         (pass_walloca::execute): Enable and disable global ranger.
4927
4928 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
4929
4930         * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
4931         enable_ranger.
4932         (rvrp_folder::~rvrp_folder): Call disable_ranger.
4933         (hybrid_folder::hybrid_folder): Call enable_ranger.
4934         (hybrid_folder::~hybrid_folder): Call disable_ranger.
4935
4936 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
4937
4938         * function.c (allocate_struct_function): Set cfun->x_range_query.
4939         * function.h (struct function): Declare x_range_query.
4940         (get_range_query): New.
4941         (get_global_range_query): New.
4942         * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache):
4943         Remove call to safe_grow_cleared.
4944         * gimple-range.cc (get_range_global): New.
4945         (gimple_range_global): Move from gimple-range.h.
4946         (get_global_range_query): New.
4947         (global_range_query::range_of_expr): New.
4948         (enable_ranger): New.
4949         (disable_ranger): New.
4950         * gimple-range.h (gimple_range_global): Move to gimple-range.cc.
4951         (class global_range_query): New.
4952         (enable_ranger): New.
4953         (disable_ranger): New.
4954         * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename
4955         dump_all_value_ranges to dump.
4956         * tree-vrp.c (vrp_prop::finalize): Same.
4957         * value-query.cc (range_query::dump): New.
4958         * value-query.h (range_query::dump): New.
4959         * vr-values.c (vr_values::dump_all_value_ranges): Rename to...
4960         (vr_values::dump): ...this.
4961         * vr-values.h (class vr_values): Rename dump_all_value_ranges to
4962         dump and make virtual.
4963
4964 2021-05-26  Uroš Bizjak  <ubizjak@gmail.com>
4965
4966         * config/i386/i386.c (ix86_autovectorize_vector_modes):
4967         Add V4QImode and V16QImode for TARGET_SSE2.
4968         * doc/sourcebuild.texi (Vector-specific attributes):
4969         Add vect64 and vect32 description.
4970
4971 2021-05-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4972
4973         * gimple-range-gori.cc (range_def_chain::register_dependency):
4974         Resize m_def_chain when needed.
4975
4976 2021-05-26  Christophe Lyon  <christophe.lyon@linaro.org>
4977
4978         * config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'.
4979         * config/arm/neon.md (reduc_plus_scal_<mode>): Move to ..
4980         * config/arm/vec-common.md: .. here. Add support for MVE.
4981
4982 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
4983
4984         * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove
4985         register keywords.
4986         * config/microblaze/microblaze.c (microblaze_legitimize_address,
4987         call_internal1,
4988         microblaze_option_override, print_operand): Likewise.
4989         * config/microblaze/microblaze.md (call_internal_plt,
4990         call_value_intern_plt, call_value_intern): Likewise.
4991         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise.
4992         * config/iq2000/iq2000.md (call_internal1, call_value_internal1,
4993         call_value_multiple_internal1): Likewise.
4994         * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise.
4995
4996 2021-05-26  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4997
4998         * config/arc/arc.c (arc_address_cost, arc_print_operand_address,
4999         arc_ccfsm_advance, symbolic_reference_mentioned_p,
5000         arc_raw_symbolic_reference_mentioned_p): Remove register
5001         keyword.
5002
5003 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
5004
5005         PR libgomp/100573
5006         * omp-low.c: Include omp-offload.h.
5007         (create_omp_child_function): If current_function_decl has
5008         "omp declare target" attribute and is_gimple_omp_offloaded,
5009         remove that attribute from the copy of attribute list and
5010         add "omp target entrypoint" attribute instead.
5011         (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.*
5012         variables for offloading if in omp_maybe_offloaded_ctx.
5013         * omp-offload.c (pass_omp_target_link::execute): Nullify second
5014         argument to GOMP_target_data_ext in offloaded code.
5015
5016 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5017
5018         * config/csky/csky.c (csky_can_change_mode_class): Delete.
5019         For csky, HF/SF mode use the low bits of VREGS.
5020
5021 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5022
5023         * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a
5024         DECL which is a reference for OMP.
5025
5026 2021-05-26  Martin Liska  <mliska@suse.cz>
5027
5028         PR gcov-profile/100751
5029         * doc/gcov.texi: Document that __gcov_dump can be called just
5030         once and that __gcov_reset resets run-time counters.
5031
5032 2021-05-26  Martin Liska  <mliska@suse.cz>
5033
5034         * doc/install.texi: Port relevant part from install-old.texi
5035         and re-generate list of CPUs and systems.
5036
5037 2021-05-26  Martin Liska  <mliska@suse.cz>
5038
5039         * Makefile.in: Remove it.
5040         * doc/include/fdl.texi: Update next/previous chapters.
5041         * doc/install.texi: Likewise.
5042         * doc/install-old.texi: Removed.
5043
5044 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5045
5046         * config/csky/csky.c (ck810_legitimate_index_p): Support
5047         "base + index" with DF mode.
5048         * config/csky/constraints.md ("Y"): New constraint for memory operands
5049         without index register.
5050         * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m"
5051         when mov between memory and general registers, and lower their priority.
5052         * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise.
5053
5054 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5055
5056         * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete.
5057
5058 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5059
5060         * config/csky/csky.md (untyped_call): Emit clobber for return
5061         registers to mark them used.
5062
5063 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5064
5065         * config/csky/csky.md (cskyv2_sextend_ldbs): New.
5066
5067 2021-05-26  Andrew Pinski  <apinski@marvell.com>
5068
5069         * match.pd (x < 0 ? ~y : y): New patterns.
5070
5071 2021-05-26  Andrew Pinski  <apinski@marvell.com>
5072
5073         * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0,
5074         A?POW2:0 and A?0:POW2.
5075
5076 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5077
5078         * gimple-range-gori.cc (class logical_stmt_cache): Delete
5079         (logical_stmt_cache::logical_stmt_cache ): Delete.
5080         (logical_stmt_cache::~logical_stmt_cache): Delete.
5081         (logical_stmt_cache::cache_entry::dump): Delete.
5082         (logical_stmt_cache::get_range): Delete.
5083         (logical_stmt_cache::cached_name ): Delete.
5084         (logical_stmt_cache::same_cached_name): Delete.
5085         (logical_stmt_cache::cacheable_p): Delete.
5086         (logical_stmt_cache::slot_diagnostics ): Delete.
5087         (logical_stmt_cache::dump): Delete.
5088         (gori_compute_cache::gori_compute_cache): Delete.
5089         (gori_compute_cache::~gori_compute_cache): Delete.
5090         (gori_compute_cache::compute_operand_range): Delete.
5091         (gori_compute_cache::cache_stmt): Delete.
5092         * gimple-range-gori.h (gori_compute::compute_operand_range): Remove
5093         virtual.
5094         (class gori_compute_cache): Delete.
5095
5096 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5097
5098         * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori
5099         intead of m_cache.
5100         (fold_using_range::range_of_address): Adjust.
5101         (fold_using_range::range_of_phi): Adjust.
5102         * gimple-range.h (class fur_source): Adjust.
5103         (fur_source::fur_source): Adjust.
5104
5105 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5106
5107         * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename
5108         from expr_range_in_bb and adjust.
5109         (gori_compute::compute_name_range_op): Adjust.
5110         (gori_compute::optimize_logical_operands): Adjust.
5111         (gori_compute::compute_logical_operands_in_chain): Adjust.
5112         (gori_compute::compute_operand1_range): Adjust.
5113         (gori_compute::compute_operand2_range): Adjust.
5114         (ori_compute_cache::cache_stmt): Adjust.
5115         * gimple-range-gori.h (gori_compute): Rename prototype.
5116
5117 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5118
5119         * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be
5120         checked only after range_of_stmt, not range_on_entry.
5121         (gimple_ranger::range_on_entry): Check for non-null in any
5122         predecessor block, if it is not already non-null.
5123         (gimple_ranger::range_on_exit): DOnt check for non-null after
5124         range on entry call.
5125         (gimple_ranger::dump_bb): New.  Split from dump.
5126         (gimple_ranger::dump): Adjust.
5127         * gimple-range.h (class gimple_ranger): Adjust.
5128
5129 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5130
5131         * gimple-range-cache.cc (struct range_timestamp): Delete.
5132         (class temporal_cache): Adjust.
5133         (temporal_cache::get_timestamp): Delete.
5134         (temporal_cache::set_dependency): Delete.
5135         (temporal_cache::temporal_value): Adjust.
5136         (temporal_cache::current_p): Take dependencies as params.
5137         (temporal_cache::set_timestamp): Adjust.
5138         (temporal_cache::set_always_current): Adjust.
5139         (ranger_cache::get_non_stale_global_range): Adjust.
5140         (ranger_cache::register_dependency): Delete.
5141         * gimple-range-cache.h (class range_cache): Adjust.
5142
5143 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5144
5145         * gimple-range-gori.cc (range_def_chain::range_def_chain): init
5146         bitmap obstack.
5147         (range_def_chain::~range_def_chain): Dispose of obstack rather than
5148         each individual bitmap.
5149         (range_def_chain::set_import): New.
5150         (range_def_chain::get_imports): New.
5151         (range_def_chain::chain_import_p): New.
5152         (range_def_chain::register_dependency): Rename from build_def_chain
5153         and set imports.
5154         (range_def_chain::def_chain_in_bitmap_p): New.
5155         (range_def_chain::add_def_chain_to_bitmap): New.
5156         (range_def_chain::has_def_chain): Just check first depenedence.
5157         (range_def_chain::get_def_chain): Process imports, use generic
5158         register_dependency routine.
5159         (range_def_chain::dump): New.
5160         (gori_map::gori_map): Allocate import list.
5161         (gori_map::~gori_map): Release imports.
5162         (gori_map::exports): Check for past allocated block size.
5163         (gori_map::imports): New.
5164         (gori_map::def_chain_in_export_p): Delete.
5165         (gori_map::is_import_p): New.
5166         (gori_map::maybe_add_gori): Handle imports.
5167         (gori_map::dump): Adjust output, add imports.
5168         (gori_compute::has_edge_range_p): Remove def_chain_in_export call.
5169         (gori_export_iterator::gori_export_iterator): New.
5170         (gori_export_iterator::next): New.
5171         (gori_export_iterator::get_name): New.
5172         * gimple-range-gori.h (range_def_chain): Add imports and direct
5173         dependecies via struct rdc.
5174         (range_def_chain::depend1): New.
5175         (range_def_chain::depend2): New.
5176         (class gori_map): Adjust.
5177         (FOR_EACH_GORI_IMPORT_NAME): New.
5178         (FOR_EACH_GORI_EXPORT_NAME): New.
5179         (class gori_export_iterator): New.
5180
5181 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5182
5183         * gimple-range-cache.cc (ranger_cache::ranger_cache):  Move initial
5184         export cache filling to here.
5185         * gimple-range-gori.cc (gori_compute::gori_compute) : From Here.
5186
5187 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5188
5189         * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h.
5190         (gori_map): Move to gimple-range-gori.h.
5191         (gori_compute::gori_compute): Adjust.
5192         (gori_compute::~gori_compute): Delete.
5193         (gori_compute::compute_operand_range_switch): Adjust.
5194         (gori_compute::compute_operand_range): Adjust.
5195         (gori_compute::compute_logical_operands): Adjust.
5196         (gori_compute::has_edge_range_p ): Adjust.
5197         (gori_compute::set_range_invariant): Delete.
5198         (gori_compute::dump): Adjust.
5199         (gori_compute::outgoing_edge_range_p): Adjust.
5200         * gimple-range-gori.h (class range_def_chain): Relocate here.
5201         (class gori_map): Relocate here.
5202         (class gori_compute): Inherit from gori_map, and adjust.
5203
5204 2021-05-25  Aldy Hernandez  <aldyh@redhat.com>
5205
5206         * value-range.cc (range_tests_legacy): Use
5207         build_nonstandard_integer_type instead of int and short.
5208
5209 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5210
5211         * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL
5212         when really creating an initialization statement for it.
5213
5214 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5215
5216         * tree-inline.c (setup_one_parameter): Fix thinko in new condition.
5217
5218 2021-05-25  Kito Cheng  <kito.cheng@sifive.com>
5219
5220         * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax.
5221
5222 2021-05-25  Martin Liska  <mliska@suse.cz>
5223
5224         PR tree-optimization/92860
5225         PR target/99592
5226         * optc-save-gen.awk: Remove exceptions.
5227
5228 2021-05-25  Martin Liska  <mliska@suse.cz>
5229
5230         * asan.h (sanitize_coverage_p): New function.
5231         * doc/extend.texi: Document it.
5232         * fold-const.c (fold_range_test): Use sanitize_flags_p
5233         instead of flag_sanitize_coverage.
5234         (fold_truth_andor): Likewise.
5235         * sancov.c: Likewise.
5236         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
5237         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle
5238         -fsanitize-coverage when inlining.
5239
5240 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
5241
5242         * config/csky/csky-modes.def : Fix copyright.
5243
5244 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
5245
5246         * config/csky/csky-modes.def : Amend copyright.
5247         * config/csky/csky_insn_fpuv2.md : Likewise.
5248         * config/csky/csky_insn_fpuv3.md : Likewise.
5249
5250 2021-05-25  Richard Biener  <rguenther@suse.de>
5251
5252         PR middle-end/100727
5253         * calls.c (initialize_argument_information): Explicitely test
5254         for WITH_SIZE_EXPR.
5255         * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.
5256
5257 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5258
5259         * config/csky/csky.h (FRAME_POINTER_REGNUM): Use
5260         HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of
5261         the signle definition. The signle definition may not work well
5262         at simplify_subreg_regno().
5263         (HARD_FRAME_POINTER_REGNUM): New.
5264         (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM.
5265         * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate,
5266         csky_initial_elimination_offset, csky_expand_prologue,
5267         csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM.
5268
5269 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5270
5271         * config/csky/csky.c (csky_option_override):
5272         Init csky_arch_isa_features[] in advance, so TARGET_DSP
5273         and TARGET_DIV can be set well.
5274
5275 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5276
5277         * config/csky/constraints.md ("l", "h"): Delete.
5278         * config/csky/csky.h (reg_class, REG_CLASS_NAMES,
5279         REG_CLASS_CONTENTS):  Delete LO_REGS and HI_REGS.
5280         * config/csky/csky.c (regno_reg_classm,
5281         csky_secondary_reload, csky_register_move_cost):
5282         Use HILO_REGS instead of LO_REGS and HI_REGS.
5283
5284 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5285
5286         * config/csky/constraints.md ("W"): New constriant for mem operand
5287         with base reg, index register.
5288         ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to
5289         "csky_valid_mem_constraint_operand" to deal with both "Q" and "W"
5290         constraint.
5291         ("Dv"): New constraint for const double value that can be used at
5292         fmovi instruction.
5293         * config/csky/csky-modes.def (HFmode): New mode.
5294         * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename
5295         to "csky_valid_mem_constraint_operand" and support new constraint
5296         "W".
5297         (csky_get_movedouble_length): New.
5298         (fpuv3_output_move): New.
5299         (fpuv3_const_double): New.
5300         * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3.
5301         (decompose_csky_address): Refine.
5302         (csky_print_operand): New "CONST_DOUBLE" operand.
5303         (csky_output_move): Support fpv3 instructions.
5304         (csky_get_movedouble_length): New.
5305         (fpuv3_output_move): New.
5306         (fpuv3_const_double): New.
5307         (csky_emit_compare): Cover float comparsion.
5308         (csky_emit_compare_float): Refine.
5309         (csky_vaild_fpuv2_mem_operand): Rename to
5310         "csky_valid_mem_constraint_operand" and support new constraint "W".
5311         (ck860_rtx_costs): New.
5312         (csky_rtx_costs): Add the cost calculation of CK860.
5313         (regno_reg_class): New vregs for fpuv3.
5314         (csky_dbx_regno): Likewise.
5315         (csky_cpu_cpp_builtins): New builtin macro for fpuv3.
5316         (csky_conditional_register_usage): Suporrot fpuv3.
5317         (csky_dwarf_register_span): Suporrot fpuv3.
5318         (csky_init_builtins, csky_mangle_type): Support "__fp16" type.
5319         (ck810_legitimate_index_p): Support fp16.
5320         * config/csky/csky.h (TARGET_TLS): ADD CK860.
5321         (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3.
5322         (TARGET_SINGLE_FPU): Support fpuv3.
5323         (TARGET_SUPPORT_FPV3): New.
5324         (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers.
5325         (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES,
5326          REG_CLASS_CONTENTS): Support fpuv3.
5327         * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine.
5328         (csky_movsf_fpv2): Likewise.
5329         (ck801_movsf): Likewise.
5330         (csky_movsf): Likewise.
5331         (movdf): Likewise.
5332         (csky_movdf_fpv2): Likewise.
5333         (ck801_movdf): Likewise.
5334         (csky_movdf): Likewise.
5335         (movsicc): Refine. Use "comparison_operatior" instead of
5336         "ordered_comparison_operatior".
5337         (addsicc): Likewise.
5338         (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant.
5339         (call_value_internal_vh): New.
5340         * config/csky/csky_cores.def (CK860): New arch and cpu.
5341         (fpv3_hf): New.
5342         (fpv3_hsf): New.
5343         (fpv3_sdf): New.
5344         (fpv3): New.
5345         * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns
5346         into emit-patterns and match-patterns, remain the emit-patterns here,
5347         and move the match-patterns to csky_insn_fpuv2.md or
5348         csky_insn_fpuv3.md.
5349         * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions.
5350         * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3
5351         isntructions.
5352         * config/csky/csky_isa.def (fcr): New.
5353         (fpv3_hi): New.
5354         (fpv3_hf): New.
5355         (fpv3_sf): New.
5356         (fpv3_df): New.
5357         (CK860): New definition for ck860.
5358         * config/csky/csky_tables.opt (ck860): New processors ck860,
5359         ck860f. And new arch ck860.
5360         (fpv3_hf): New.
5361         (fpv3_hsf): New.
5362         (fpv3_hdf): New.
5363         (fpv3): New.
5364         * config/csky/predicates.md (csky_float_comparsion_operator): Delete
5365         "geu", "gtu", "leu", "ltu", which will never appear at float comparison.
5366         * config/csky/t-csky-elf: Support 860.
5367         * config/csky/t-csky-linux: Likewise.
5368         * doc/md.texi: Add "Q" and "W" constraints for C-SKY.
5369
5370 2021-05-24  Aaron Sawdey  <acsawdey@linux.ibm.com>
5371
5372         * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to
5373         add generation of logical-add and add-logical fusion pairs.
5374         * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask
5375         and powerpc mask.
5376         * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on
5377         logical-add and add-logical fusion by default.
5378         * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and
5379         -mpower10-fusion-add-logical options.
5380         * config/rs6000/fusion.md: Regenerate file.
5381
5382 2021-05-24  Aldy Hernandez  <aldyh@redhat.com>
5383
5384         * value-range.cc (irange::legacy_equal_p): Check type when
5385         comparing VR_VARYING types.
5386         (range_tests_legacy): Test comparing VARYING ranges of different
5387         sizes.
5388
5389 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
5390
5391         * config/aarch64/aarch64.c (neoversen1_tunings):
5392         Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
5393
5394 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
5395
5396         * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for
5397         extern weak symbols.  Limit symbol offsets for non-GOT symbols with
5398         PIC/PIE.
5399
5400 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
5401
5402         * config/arm/neon.md (vec_load_lanesxi<mode>)
5403         (vec_store_lanexoi<mode>): Move ...
5404         * config/arm/vec-common.md: here.
5405
5406 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
5407
5408         * config/arm/neon.md (vec_load_lanesoi<mode>)
5409         (vec_store_lanesoi<mode>): Move ...
5410         * config/arm/vec-common.md: here.
5411
5412 2021-05-24  liuhongt  <hongtao.liu@intel.com>
5413
5414         PR target/100660
5415         * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing
5416         stmt with GIMPLE_NOP when lhs doesn't exist.
5417
5418 2021-05-23  Uroš Bizjak  <ubizjak@gmail.com>
5419
5420         PR target/100722
5421         * config/i386/mmx.md (*push<VI_32:mode>2_rex64):
5422         New instruction pattern.
5423         (*push<VI_32:mode>2): Ditto.
5424         (push splitter for SSE registers): New splitter.
5425
5426 2021-05-23  Andrew Pinski  <apinski@marvell.com>
5427
5428         * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types.
5429
5430 2021-05-22  Aaron Sawdey  <acsawdey@linux.ibm.com>
5431
5432         * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types.
5433         * config/rs6000/fusion.md: Regenerate file.
5434
5435 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
5436
5437         * config/rs6000/genfusion.pl (gen_addadd): New function.
5438         * config/rs6000/fusion.md: Regenerate file.
5439         * config/rs6000/rs6000-cpus.def: Add
5440         OPTION_MASK_P10_FUSION_2ADD to masks.
5441         * config/rs6000/rs6000.c (rs6000_option_override_internal):
5442         Handle default value of OPTION_MASK_P10_FUSION_2ADD.
5443         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add.
5444
5445 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
5446
5447         PR middle-end/99928
5448         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define.
5449         * gimplify.c (enum gimplify_omp_var_data): Fix up
5450         GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT.
5451         (omp_lastprivate_for_combined_outer_constructs): If combined target
5452         has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to
5453         GOVD_MAP | GOVD_SEEN.
5454         (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for
5455         firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT.
5456         (gimplify_adjust_omp_clauses): For firstprivate clauses with
5457         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and
5458         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and
5459         let it be replaced by implicit map clause.
5460
5461 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
5462
5463         PR middle-end/99928
5464         * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New
5465         function.
5466         (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it.
5467         (gimplify_omp_for): Likewise.
5468
5469 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5470
5471         PR middle-end/90115
5472         * omp-low.c (oacc_privatization_candidate_p): Reject 'static',
5473         'external' in blocks.
5474
5475 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5476
5477         PR middle-end/90115
5478         * flag-types.h (enum openacc_privatization): New.
5479         * params.opt (-param=openacc-privatization): New.
5480         * doc/invoke.texi (openacc-privatization): Document it.
5481         * omp-general.h (get_openacc_privatization_dump_flags): New
5482         function.
5483         * omp-low.c (oacc_privatization_candidate_p): Add diagnostics.
5484         * omp-offload.c (execute_oacc_device_lower)
5485         <IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics.
5486         * target.def (goacc.adjust_private_decl): Add 'location_t'
5487         parameter.
5488         * doc/tm.texi: Regenerate.
5489         * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust.
5490         * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise.
5491         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl):
5492         Likewise.  Preserve it for...
5493         (nvptx_goacc_expand_var_decl): ... use here.
5494
5495 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5496
5497         * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__'
5498         DejaGnu selector.
5499
5500 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5501
5502         PR middle-end/90115
5503         * omp-low.c (oacc_privatization_candidate_p): New function.
5504         (oacc_privatization_scan_clause_chain)
5505         (oacc_privatization_scan_decl_chain): Use it.  Also
5506         'gcc_checking_assert' that we're not seeing duplicates.
5507
5508 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5509
5510         PR middle-end/90115
5511         * omp-offload.c (execute_oacc_device_lower): Skip processing if no
5512         work to be done.
5513
5514 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5515
5516         PR middle-end/90115
5517         * omp-offload.c (execute_oacc_device_lower): Explain.
5518
5519 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5520
5521         PR middle-end/90115
5522         * omp-offload.c (execute_oacc_device_lower)
5523         <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1'
5524         case, too.
5525         * internal-fn.c (expand_UNIQUE): Don't expect
5526         'IFN_UNIQUE_OACC_PRIVATE'.
5527
5528 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5529
5530         PR middle-end/90115
5531         * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses.
5532
5533 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5534
5535         PR middle-end/90115
5536         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl)
5537         (nvptx_goacc_expand_var_decl): Tighten.
5538
5539 2021-05-21  Julian Brown  <julian@codesourcery.com>
5540             Chung-Lin Tang  <cltang@codesourcery.com>
5541             Thomas Schwinge  <thomas@codesourcery.com>
5542
5543         PR middle-end/90115
5544         * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL)
5545         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks.
5546         * doc/tm.texi: Regenerate.
5547         * expr.c (expand_expr_real_1): Expand decls using the
5548         expand_var_decl OpenACC hook if defined.
5549         * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE.
5550         * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE.
5551         * omp-low.c (omp_context): Add oacc_privatization_candidates
5552         field.
5553         (lower_oacc_reductions): Add PRIVATE_MARKER parameter.  Insert
5554         before fork.
5555         (lower_oacc_head_tail): Add PRIVATE_MARKER parameter.  Modify
5556         private marker's gimple call arguments, and pass it to
5557         lower_oacc_reductions.
5558         (oacc_privatization_scan_clause_chain)
5559         (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
5560         New functions.
5561         (lower_omp_for, lower_omp_target, lower_omp_1): Use these.
5562         * omp-offload.c (convert.h): Include.
5563         (oacc_loop_xform_head_tail): Treat private-variable markers like
5564         fork/join when transforming head/tail sequences.
5565         (struct var_decl_rewrite_info): Add struct.
5566         (oacc_rewrite_var_decl, is_sync_builtin_call): New functions.
5567         (execute_oacc_device_lower): Support rewriting gang-private
5568         variables using target hook, and fix up addr_expr and var_decl
5569         nodes afterwards.
5570         * target.def (adjust_private_decl, expand_var_decl): New hooks.
5571         * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl):
5572         Rename to...
5573         (gcn_goacc_adjust_private_decl): ...this.
5574         * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl):
5575         Rename to...
5576         (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter.
5577         * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename
5578         definition using gcn_goacc_adjust_gangprivate_decl...
5579         (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using
5580         gcn_goacc_adjust_private_decl.
5581         * config/nvptx/nvptx.c (tree-pretty-print.h): Include.
5582         (gang_private_shared_size): New global variable.
5583         (gang_private_shared_align): Likewise.
5584         (gang_private_shared_sym): Likewise.
5585         (gang_private_shared_hmap): Likewise.
5586         (nvptx_option_override): Initialize these.
5587         (nvptx_file_end): Output gang_private_shared_sym.
5588         (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl):
5589         New functions.
5590         (nvptx_set_current_function): Clear gang_private_shared_hmap.
5591         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook.
5592         (TARGET_GOACC_EXPAND_VAR_DECL): Likewise.
5593
5594 2021-05-21  H.J. Lu  <hjl.tools@gmail.com>
5595
5596         * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed.
5597
5598 2021-05-21  Richard Biener  <rguenther@suse.de>
5599             H.J. Lu  <hjl.tools@gmail.com>
5600
5601         PR middle-end/90773
5602         * expr.c (expand_constructor): Elide expand_constructor if
5603         move by pieces is preferred.
5604
5605 2021-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5606
5607         * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
5608         Take a flag and mode value as arguments.
5609         (aarch64_modifies_global_state_p): Likewise.
5610         (aarch64_reads_global_state_p): Likewise.
5611         (aarch64_could_trap_p): Likewise.
5612         (aarch64_get_attributes): Likewise.
5613         (aarch64_init_simd_builtins): Adjust callsite of above.
5614         (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get
5615         function attributes to apply to builtins.
5616         (aarch64_init_crc32_builtins): Likewise.
5617         (aarch64_init_builtin_rsqrt): Likewise.
5618
5619 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
5620
5621         * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion.
5622         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types.
5623         (gen_2logical): Use new fusion types.
5624         * config/rs6000/fusion.md: Regenerate.
5625
5626 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
5627
5628         PR target/100637
5629         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
5630         Handle V4QI and V2HI modes.
5631         (ix86_expand_sse_movcc): Ditto.
5632         * config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3):
5633         New instruction pattern.
5634         (*eq<VI_32:mode>3): Ditto.
5635         (*gt<VI_32:mode>3): Ditto.
5636         (*xop_pcmov_<VI_32:mode>): Ditto.
5637         (mmx_pblendvb32): Ditto.
5638         (mmx_pblendvb64): Rename from mmx_pblendvb.
5639         (vec_cmp<VI_32:mode><VI_32:mode>): New expander.
5640         (vec_cmpu<VI_32:mode><VI_32:mode>): Ditto.
5641         (vcond<VI_32:mode><VI_32:mode>): Ditto.
5642         (vcondu<VI_32:mode><VI_32:mode>): Ditto.
5643         (vcond_mask_<VI_32:mode><VI_32:mode>): Ditto.
5644
5645 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
5646
5647         PR tree-optimization/94589
5648         * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and
5649         rhs2, treat x <= 4 equivalently to x < 5 etc.  In cmp1 and cmp2 (if
5650         not the same as cmp3) treat <= the same as < and >= the same as >.
5651         Don't require that cond2_phi_edge is true edge, instead take
5652         false/true edges into account based on cmp1/cmp2 comparison kinds.
5653
5654 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
5655
5656         PR target/100637
5657         * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator.
5658         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander
5659         from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3
5660         using SMAXMIN_MMXMODEI mode iterator.
5661         (*<smaxmin:code>v4qi3): New insn pattern.
5662         (*<smaxmin:code>v2hi3): Ditto.
5663         (SMAXMIN_VI_32): New mode iterator.
5664         (<smaxmin:code><SMAXMIN_VI_32>mode3): New expander.
5665         (UMAXMIN_MMXMODEI): New mode iterator.
5666         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander
5667         from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3
5668         using UMAXMIN_MMXMODEI mode iterator.
5669         (*<umaxmin:code>v4qi3): New insn pattern.
5670         (*<umaxmin:code>v2hi3): Ditto.
5671         (UMAXMIN_VI_32): New mode iterator.
5672         (<umaxmin:code><UMAXMIN_VI_32>mode3): New expander.
5673         (abs<VI_32:mode>2): New insn pattern.
5674         (ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ...
5675         * config/i386/sse.md: ... here.
5676
5677 2021-05-20  Clement Chigot  <clement.chigot@atos.net>
5678             David Edelsohn  <dje.gcc@gmail.com>
5679
5680         * collect2.c (scan_prog_file): Issue non-fatal warning for
5681         non-COFF files.
5682
5683 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
5684
5685         * doc/invoke.texi (-Wno-c++11-extensions)
5686         (-Wno-c++14-extensions, -Wno-c++17-extensions)
5687         (-Wno-c++20-extensions, -Wno-c++23-extensions): Document
5688         new options.
5689
5690 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
5691
5692         * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p.
5693         * config/darwin.c (darwin_override_options): Likewise.
5694         * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
5695         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
5696         (DWARF2_FRAME_REG_OUT): Likewise.
5697         * config/mips/mips.c (mips_output_filename): Likewise.
5698         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name):
5699         Likewise.
5700         (rs6000_dbx_register_number): Likewise.
5701         * dbxout.c: Include flags.h.
5702         * dwarf2cfi.c (cfi_label_required_p): Likewise.
5703         (dwarf2out_do_frame): Likewise.
5704         * except.c: Include flags.h.
5705         * final.c (dwarf2_debug_info_emitted_p): Likewise.
5706         (final_scan_insn_1): Likewise.
5707         * flags.h (dwarf_debuginfo_p): New function declaration.
5708         * opts.c (dwarf_debuginfo_p): New function definition.
5709         * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p.
5710         * toplev.c (process_options): Likewise.
5711
5712 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
5713
5714         * common.opt: Change type to support bitmasks.
5715         * flag-types.h (enum debug_info_type): Rename enumerator constants.
5716         (NO_DEBUG): New bitmask.
5717         (DBX_DEBUG): Likewise.
5718         (DWARF2_DEBUG): Likewise.
5719         (XCOFF_DEBUG): Likewise.
5720         (VMS_DEBUG): Likewise.
5721         (VMS_AND_DWARF2_DEBUG): Likewise.
5722         * flags.h (debug_set_to_format): New function declaration.
5723         (debug_set_count): Likewise.
5724         (debug_set_names): Likewise.
5725         * opts.c (debug_type_masks): Array of bitmasks for debug formats.
5726         (debug_set_to_format): New function definition.
5727         (debug_set_count): Likewise.
5728         (debug_set_names): Likewise.
5729         (set_debug_level): Update access to debug_type_names.
5730         * toplev.c: Likewise.
5731
5732 2021-05-20  Martin Sebor  <msebor@redhat.com>
5733
5734         PR middle-end/100684
5735         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda.
5736
5737 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
5738
5739         PR target/100701
5740         * config/i386/i386.md (isa): Remove x64_bmi.
5741         (enabled): Remove x64_bmi.
5742         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
5743         Remove general register alternative.
5744         (*andnot<VI_32:mode>3): Ditto.
5745         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
5746         (*<any_logic:code><VI_32:mode>3): Ditto.
5747
5748 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
5749
5750         * config/arm/arm.c: Include head files tree-vectorizer.h and
5751         cfgloop.h.
5752
5753 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
5754
5755         PR target/100637
5756         * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes.
5757         (*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint.
5758         (<s>mulv4hi3_highpart): New expander.
5759         (*<s>mulv2hi3_highpart): New insn pattern.
5760         (<s>mulv2hi3_higpart): New expander.
5761         (*<any_shift:insn>v2hi3): New insn pattern.
5762         (<any_shift:insn>v2hi3): New expander.
5763         * config/i386/sse.md (smulhrsv2hi3): New expander.
5764         (*smulhrsv2hi3): New insn pattern.
5765
5766 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
5767
5768         * doc/invoke.texi (vect-inner-loop-cost-factor): Document new
5769         parameter.
5770         * params.opt (vect-inner-loop-cost-factor): New.
5771         * targhooks.c (default_add_stmt_cost): Replace hardcoded factor
5772         50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file
5773         tree-vectorizer.h and its required ones.
5774         * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace
5775         hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR.
5776         * config/arm/arm.c (arm_add_stmt_cost): Likewise.
5777         * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
5778         * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
5779         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
5780         Likewise.
5781         (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor.
5782         * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor.
5783         (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro.
5784
5785 2021-05-20  Christophe Lyon  <christophe.lyon@linaro.org>
5786             Torbjörn Svensson  <torbjorn.svensson@st.com>
5787
5788         PR c/42579
5789         * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__.
5790
5791 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
5792
5793         PR middle-end/99928
5794         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For
5795         explicit linear clause when combined with target, make it map(tofrom:)
5796         instead of no clause or firstprivate.
5797
5798 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
5799
5800         PR tree-optimization/94589
5801         * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence
5802         of integral conversions.
5803
5804 2021-05-19  Andrew MacLeod  <amacleod@redhat.com>
5805
5806         * gimple-range.cc (fur_source::get_operand): New.
5807         (gimple_range_fold): Delete.
5808         (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt.
5809         (fold_using_range::range_of_range_op): Move from gimple_ranger.
5810         (fold_using_range::range_of_address): Ditto.
5811         (fold_using_range::range_of_phi): Ditto.
5812         (fold_using_range::range_of_call): Ditto.
5813         (fold_using_range::range_of_builtin_ubsan_call): Move from
5814         range_of_builtin_ubsan_call.
5815         (fold_using_range::range_of_builtin_call): Move from
5816         range_of_builtin_call.
5817         (gimple_ranger::range_of_builtin_call): Delete.
5818         (fold_using_range::range_of_cond_expr): Move from gimple_ranger.
5819         (gimple_ranger::fold_range_internal): New.
5820         (gimple_ranger::range_of_stmt): Use new fold_using_range API.
5821         (fold_using_range::range_of_ssa_name_with_loop_info): Move from
5822         gimple_ranger.  Improve ranges of SSA_NAMES when possible.
5823         * gimple-range.h (gimple_ranger): Remove various range_of routines.
5824         (class fur_source): New.
5825         (class fold_using_range): New.
5826         (fur_source::fur_source): New.
5827         (fold_range): New.
5828         * vr-values.c (vr_values::extract_range_basic): Use fold_using_range
5829         instead of range_of_builtin_call.
5830
5831 2021-05-19  Jonathan Wakely  <jwakely@redhat.com>
5832
5833         * doc/cpp.texi (Common Predefined Macros): Update documentation
5834         for the __GXX_EXPERIMENTAL_CXX0X__ macro.
5835
5836 2021-05-19  Alex Coplan  <alex.coplan@arm.com>
5837
5838         PR target/100333
5839         * config/arm/arm.md (nonsecure_call_internal): Always ensure
5840         callee's address is in a register.
5841
5842 2021-05-19  Geng Qi  <gengqi@linux.alibaba.com>
5843
5844         * common/config/riscv/riscv-common.c
5845         (riscv_subset_list::parsing_subset_version): Properly parse the letter
5846         'p' in '-march'.
5847         (riscv_subset_list::parse_std_ext,
5848          riscv_subset_list::parse_multiletter_ext): To handle errors generated
5849         in riscv_subset_list::parsing_subset_version.
5850
5851 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
5852
5853         * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
5854         type attribute in patterns generating XTN(2).
5855
5856 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
5857
5858         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>):
5859         Remove as duplicate of...
5860         (aarch64_xtn<mode>): This.
5861         (aarch64_xtn2<mode>_le): Move position in file.
5862         (aarch64_xtn2<mode>_be): Move position in file.
5863         (aarch64_xtn2<mode>): Move position in file.
5864         (vec_pack_trunc_<mode>): Define as an expander.
5865
5866 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
5867
5868         * config/aarch64/aarch64-simd-builtins.def: Split builtin
5869         generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into
5870         separate scalar and vector generators.
5871         * config/aarch64/aarch64-simd.md
5872         (aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and
5873         split into...
5874         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and...
5875         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This.
5876         * config/aarch64/iterators.md: Define SD_HSDI iterator.
5877
5878 2021-05-19  Jonathn Wright  <jonathan.wright@arm.com>
5879
5880         * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead
5881         of UNSPEC_SQXTUN2.
5882         * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2.
5883
5884 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
5885
5886         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>):
5887         Implement as an expand emitting a big/little endian
5888         instruction pattern.
5889         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define.
5890         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define.
5891
5892 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
5893
5894         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>):
5895         Implement as an expand emitting a big/little endian
5896         instruction pattern.
5897         (aarch64_<sur><addsub>hn2<mode>_insn_le): Define.
5898         (aarch64_<sur><addsub>hn2<mode>_insn_be): Define.
5899         * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and
5900         UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator.
5901
5902 2021-05-19  Richard Biener  <rguenther@suse.de>
5903
5904         PR middle-end/100672
5905         * fold-const.c (fold_negate_expr_1): Use element_precision.
5906         (negate_expr_p): Likewise.
5907
5908 2021-05-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5909
5910         * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator.
5911         (pred_load): New int attribute.
5912         * config/aarch64/aarch64-sve.md
5913         (aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use
5914         SVE_PRED_LOAD enum iterator and corresponding pred_load attribute.
5915         * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to
5916         code_for_aarch64_load.
5917
5918 2021-05-19  Richard Biener  <rguenther@suse.de>
5919
5920         * cfgexpand.c (discover_nonconstant_array_refs_r): Make
5921         sure TARGET_MEM_REF bases are expanded as memory.
5922         * tree-ssa-operands.c (operands_scanner::get_tmr_operands):
5923         Do not mark TARGET_MEM_REF bases addressable.
5924         * tree-ssa.c (non_rewritable_mem_ref_base): Handle
5925         TARGET_MEM_REF bases as never rewritable.
5926         * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not
5927         walk TARGET_MEM_REF bases as address-takens.
5928         * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF.
5929
5930 2021-05-19  Richard Biener  <rguenther@suse.de>
5931
5932         * builtins.c (get_object_alignment_1): Strip outer
5933         WITH_SIZE_EXPR.
5934         * tree-dfa.c (get_ref_base_and_extent): Handle outer
5935         WITH_SIZE_EXPR for size processing and process the
5936         containing ref.
5937         * tree-ssa-alias.c (ao_ref_base_alias_set): Strip
5938         outer WITH_SIZE_EXPR.
5939         (ao_ref_base_alias_ptr_type): Likewise.
5940         (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref
5941         and handle that accordingly, stripping it for the
5942         core alias workers.
5943         * tree.c (get_base_address): Handle WITH_SIZE_EXPR by
5944         looking through it instead of returning NULL.
5945
5946 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
5947
5948         PR middle-end/100576
5949         * builtins.c (check_read_access): Convert bound to size_type_node if
5950         non-NULL.
5951
5952 2021-05-19  Richard Biener  <rguenther@suse.de>
5953
5954         * tree-cfg.c (verify_types_in_gimple_min_lval): Inline...
5955         (verify_types_in_gimple_reference): ... here.  Sanitize.
5956         (verify_gimple_call): Verify references in LHS and arguments.
5957         (verify_gimple_assign_single): Reject WITH_SIZE_EXPR.
5958
5959 2021-05-19  Uroš Bizjak  <ubizjak@gmail.com>
5960
5961         * config/i386/i386.h (VALID_INT_MODE_P):
5962         Add V8QI, V4HI and V2SI modes for TARGET_64BIT.
5963         * config/i386/i386.md (isa): Add x64_bmi.
5964         (enabled): Handle x64_bmi.
5965         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
5966         Add alternative using 64bit general registers.
5967         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
5968
5969 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
5970
5971         PR middle-end/99928
5972         * tree.h (OMP_MASTER_COMBINED): Define.
5973         * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate
5974         handling for outer combined/composite constructs to a loop.
5975         Handle lastprivate on combined target.
5976         (gimplify_expr): Formatting fix.
5977
5978 2021-05-19  Xionghu Luo  <luoxhu@linux.ibm.com>
5979
5980         * passes.def: Add sink_code pass before store_merging.
5981         * tree-ssa-sink.c (pass_sink_code:clone): New.
5982
5983 2021-05-18  Bill Schmidt  <wschmidt@linux.ibm.com>
5984
5985         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to
5986         rs6000_special_adjust_field_align_p.
5987         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
5988         * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary):
5989         Remove ABI warning.
5990         (rs6000_function_arg): Likewise.
5991         * config/rs6000/rs6000-protos.h
5992         (rs6000_special_adjust_field_align_p): Remove prototype.
5993         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
5994         Remove.
5995         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to
5996         rs6000_special_adjust_field_align_p.
5997
5998 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
5999
6000         PR target/100637
6001         * config/i386/i386.h (VALID_SSE2_REG_MODE):
6002         Add V4QI and V2HI modes.
6003         (VALID_INT_MODE_P): Ditto.
6004         * config/i386/mmx.md (VI_32): New mode iterator.
6005         (mmxvecsize): Handle V4QI and V2HI.
6006         (Yv_Yw): Ditto.
6007         (mov<VI_32:mode>): New expander.
6008         (*mov<mode>_internal): New insn pattern.
6009         (movmisalign<VI_32:mode>): New expander.
6010         (neg<VI_32:mode>): New expander.
6011         (<plusminus:insn><VI_32:mode>3): New expander.
6012         (*<plusminus:insn><VI_32:mode>3): New insn pattern.
6013         (mulv2hi3): New expander.
6014         (*mulv2hi3): New insn pattern.
6015         (one_cmpl<VI_32:mode>2): New expander.
6016         (*andnot<VI_32:mode>3): New insn pattern.
6017         (<any_logic:code><VI_32:mode>3): New expander.
6018         (*<any_logic:code><VI_32:mode>3): New insn pattern.
6019
6020 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
6021
6022         * config/i386/sse.md (<any_extend:insn>v4qiv4di2):
6023         Fix a mode mismatch with operand 1.
6024
6025 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
6026
6027         PR target/100626
6028         * config/i386/i386-expand.c (split_double_mode): Return
6029         temporary register when simplify_gen_subreg fails with
6030         the high half od the paradoxical subreg.
6031
6032 2021-05-18  Richard Biener  <rguenther@suse.de>
6033
6034         * cfgexpand.c (expand_one_var): Pass in forced_stack_var
6035         and honor it when expanding.
6036         (expand_used_vars_for_block): Pass through forced_stack_var.
6037         (expand_used_vars): Likewise.
6038         (discover_nonconstant_array_refs_r): Set bits in
6039         forced_stack_vars instead of marking vars TREE_ADDRESSABLE.
6040         (avoid_type_punning_on_regs): Likewise.
6041         (discover_nonconstant_array_refs): Likewise.
6042         (pass_expand::execute): Create and pass down forced_stack_var
6043         bitmap.  For parameters and returns temporarily set
6044         TREE_ADDRESSABLE when expand_function_start.
6045
6046 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
6047
6048         * doc/sourcebuild.texi: Document 'dg-note'.
6049
6050 2021-05-18  Tobias Burnus  <tobias@codesourcery.com>
6051
6052         PR other/100598
6053         * configure: Regenerate.
6054         * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@).
6055
6056 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
6057
6058         * gimple.h (is_gimple_omp_oacc): Tighten.
6059         * omp-low.c (check_omp_nesting_restrictions): Adjust.
6060
6061 2021-05-18  Richard Biener  <rguenther@suse.de>
6062
6063         * tree-ssa-operands.c (mark_address_taken): Simplify.
6064
6065 2021-05-18  Martin Liska  <mliska@suse.cz>
6066
6067         * config/gcn/mkoffload.c (STR): Redefine.
6068         * config/i386/intelmic-mkoffload.c (STR): Likewise.
6069         * config/nvptx/mkoffload.c (STR): Likewise.
6070
6071 2021-05-18  Martin Liska  <mliska@suse.cz>
6072
6073         * common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
6074         Use startswith function instead of strncmp.
6075         * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
6076         * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise.
6077         * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise.
6078         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise.
6079         * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise.
6080         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
6081         * config/arm/arm.c (arm_file_start): Likewise.
6082         (arm_valid_target_attribute_rec): Likewise.
6083         (thumb1_md_asm_adjust): Likewise.
6084         * config/arm/driver-arm.c (host_detect_local_cpu): Likewise.
6085         * config/avr/avr.c (STR_PREFIX_P): Likewise.
6086         (avr_set_current_function): Likewise.
6087         (avr_handle_addr_attribute): Likewise.
6088         (avr_asm_output_aligned_decl_common): Likewise.
6089         (avr_asm_named_section): Likewise.
6090         (avr_section_type_flags): Likewise.
6091         (avr_asm_select_section): Likewise.
6092         * config/c6x/c6x.c (c6x_in_small_data_p): Likewise.
6093         (c6x_section_type_flags): Likewise.
6094         * config/darwin-c.c (darwin_cfstring_ref_p): Likewise.
6095         (darwin_objc_declare_unresolved_class_reference): Likewise.
6096         (darwin_objc_declare_class_definition): Likewise.
6097         * config/darwin.c (indirect_data): Likewise.
6098         (darwin_encode_section_info): Likewise.
6099         (darwin_objc2_section): Likewise.
6100         (darwin_objc1_section): Likewise.
6101         (machopic_select_section): Likewise.
6102         (darwin_globalize_label): Likewise.
6103         (darwin_label_is_anonymous_local_objc_name): Likewise.
6104         (darwin_asm_named_section): Likewise.
6105         (darwin_asm_output_dwarf_offset): Likewise.
6106         * config/frv/frv.c (frv_string_begins_with): Likewise.
6107         (frv_in_small_data_p): Likewise.
6108         * config/gcn/mkoffload.c (STR): Likewise.
6109         (main): Likewise.
6110         * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise.
6111         * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
6112         * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise.
6113         (ix86_md_asm_adjust): Likewise.
6114         * config/i386/intelmic-mkoffload.c (STR): Likewise.
6115         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
6116         (i386_pe_file_end): Likewise.
6117         * config/ia64/ia64.c (ia64_in_small_data_p): Likewise.
6118         (ia64_section_type_flags): Likewise.
6119         * config/mips/driver-native.c (host_detect_local_cpu): Likewise.
6120         * config/mips/mips.c (mips_handle_interrupt_attr): Likewise.
6121         (mips16_stub_function_p): Likewise.
6122         (mips_function_rodata_section): Likewise.
6123         * config/msp430/msp430.c (msp430_mcu_name): Likewise.
6124         (msp430_function_section): Likewise.
6125         (msp430_section_type_flags): Likewise.
6126         (msp430_expand_helper): Likewise.
6127         * config/nios2/nios2.c (nios2_small_section_name_p): Likewise.
6128         (nios2_valid_target_attribute_rec): Likewise.
6129         * config/nvptx/mkoffload.c (process): Likewise.
6130         (STR): Likewise.
6131         * config/pa/som.h: Likewise.
6132         * config/pdp11/pdp11.c (pdp11_output_ident): Likewise.
6133         * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise.
6134         * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise.
6135         (rs6000_inner_target_options): Likewise.
6136         * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise.
6137         * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise.
6138         * config/vax/vax.c (vax_output_int_move): Likewise.
6139         * config/vms/vms-ld.c (startswith): Likewise.
6140         (process_args): Likewise.
6141         (main): Likewise.
6142         * config/vms/vms.c: Likewise.
6143
6144 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
6145
6146         PR rtl-optimization/100590
6147         * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if
6148         they are NONJUMP_INSN_P.
6149
6150 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
6151
6152         PR c++/100580
6153         * function.c (push_dummy_function): Set DECL_ARTIFICIAL and
6154         DECL_ASSEMBLER_NAME on the fn_decl.
6155
6156 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
6157
6158         PR tree-optimization/94589
6159         * tree-ssa-phiopt.c (spaceship_replacement): Pattern match
6160         phi result used in (res & ~1) == 0 comparison as res >= 0 as
6161         res == 2 would be UB with -ffinite-math-only.
6162
6163 2021-05-18  Martin Liska  <mliska@suse.cz>
6164
6165         * Makefile.in: genversion.o should depend on DATESTAMP.
6166
6167 2021-05-18  Claudiu Zissulescu  <claziss@synopsys.com>
6168
6169         * config/arc/simdext.md (negv2si2): Remove round bracket.
6170
6171 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
6172
6173         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
6174         _Bool as macro expanding to _Bool.
6175
6176 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
6177
6178         PR c++/100281
6179         * tree.c (build_reference_type_for_mode)
6180         (build_pointer_type_for_mode): Pick pointer mode if MODE argument
6181         is VOIDmode.
6182         (build_reference_type, build_pointer_type): Invoke
6183         build_*_type_for_mode with VOIDmode.
6184
6185 2021-05-17  Andrew MacLeod  <amacleod@redhat.com>
6186
6187         PR tree-optimization/100512
6188         * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const
6189         and non-zero pointer ranges as invariant.
6190         * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer
6191         processing from here.
6192
6193 2021-05-17  Tom de Vries  <tdevries@suse.de>
6194
6195         PR target/100497
6196         * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare
6197         * config/nvptx/nvptx.c (nvptx_output_barrier)
6198         (nvptx_output_atomic_insn): New function.
6199         (nvptx_print_operand): Add support for 'B'.
6200         * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic
6201         insns.
6202
6203 2021-05-17  Aldy Hernandez  <aldyh@redhat.com>
6204
6205         PR tree-optimization/100349
6206         * vr-values.c (bounds_of_var_in_loop): Bail if scev returns
6207           NULL.
6208
6209 2021-05-17  Tamar Christina  <tamar.christina@arm.com>
6210
6211         * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New.
6212         (host_detect_local_cpu): Use it.
6213
6214 2021-05-17  Martin Liska  <mliska@suse.cz>
6215
6216         * doc/invoke.texi: Add 2 missing dots.
6217
6218 2021-05-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
6219
6220         PR bootstrap/100552
6221         * configure.ac: Replace pattern substitution with call to sed.
6222         * configure: Regenerate.
6223
6224 2021-05-17  Richard Biener  <rguenther@suse.de>
6225
6226         PR middle-end/100582
6227         * tree.c (array_at_struct_end_p): Get to the base of the
6228         reference before looking for the underlying decl.
6229
6230 2021-05-17  Joern Rennecke  <joern.rennecke@embecosm.com>
6231
6232         * genoutput.c (validate_insn_alternatives) Make "wrong number of
6233         alternatives" message more specific, and remove assumption on where
6234         the problem is.
6235
6236 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
6237
6238         * config/arm/iterators.md (V16): New iterator.
6239         (VH_cvtto): New iterator.
6240         (v_cmp_result): Added V4HF and V8HF support.
6241         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH.
6242         (vcond<mode><mode>): Likewise.
6243         (vcond_mask_<mode><v_cmp_result>): Likewise.
6244         (vcond<VH_cvtto><mode>): New expander.
6245
6246 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
6247
6248         * config/arm/arm-protos.h (arm_expand_vector_compare): Update
6249         prototype.
6250         * config/arm/arm.c (arm_expand_vector_compare): Add support for
6251         MVE.
6252         (arm_expand_vcond): Likewise.
6253         * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S,
6254         VCMPEQQ_N_S, VCMPNEQ_N_S.
6255         (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove.
6256         * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix.
6257         (@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise.
6258         (@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise.
6259         (@mve_vpselq_<supf><mode>): Likewise.
6260         (@mve_vpselq_f<mode>"): Likewise.
6261         * config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE
6262         and move to vec-common.md.
6263         (vec_cmpu<mode><mode>): Likewise.
6264         (vcond<mode><mode>): Likewise.
6265         (vcond<V_cvtto><mode>): Likewise.
6266         (vcondu<mode><v_cmp_result>): Likewise.
6267         (vcond_mask_<mode><v_cmp_result>): Likewise.
6268         * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S)
6269         (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U)
6270         (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S)
6271         (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U)
6272         (VCMPHIQ_N_U, VCMPHIQ_U): Remove.
6273         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved
6274         from neon.md.
6275         (vec_cmpu<mode><mode>): Likewise.
6276         (vcond<mode><mode>): Likewise.
6277         (vcond<V_cvtto><mode>): Likewise.
6278         (vcondu<mode><v_cmp_result>): Likewise.
6279         (vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math
6280         condition.
6281
6282 2021-05-17  liuhongt  <hongtao.liu@intel.com>
6283
6284         PR target/100549
6285         * config/i386/i386.c (ix86_gimple_fold_builtin): Use
6286         gsi_insert_seq_before instead.
6287
6288 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
6289
6290         * doc/sourcebuild.texi (arm_qbit_ok): Rename into...
6291         (arm_sat_ok): ...this.
6292
6293 2021-05-17  Martin Liska  <mliska@suse.cz>
6294
6295         * lto-wrapper.c (merge_flto_options): Factor out a new function.
6296         (merge_and_complain): Use it.
6297         (run_gcc): Merge also linker command line -flto=foo argument
6298         with IL files.
6299
6300 2021-05-16  Christophe Lyon  <christophe.lyon@linaro.org>
6301
6302         * config/arm/arm.h (CPP_SPEC): Remove error message about
6303         -mlittle-endian/-mbig-endian conflict.
6304
6305 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
6306
6307         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
6308         __ROP_PROTECT__ if -mrop-protect is selected.
6309
6310 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
6311
6312         * config/rs6000/rs6000-internal.h (rs6000_stack): Add
6313         rop_hash_save_offset and rop_hash_size.
6314         * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute
6315         rop_hash_size and rop_hash_save_offset.
6316         (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size.
6317         (rs6000_emit_prologue): Emit hashst[p] in prologue.
6318         (rs6000_emit_epilogue): Emit hashchk[p] in epilogue.
6319         * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and
6320         UNSPEC_HASHCHK.
6321         (hashst): New define_insn.
6322         (hashchk): Likewise.
6323
6324 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
6325
6326         * config/rs6000/rs6000.c (rs6000_option_override_internal):
6327         Disable shrink wrap when inserting ROP-protect instructions.
6328         * config/rs6000/rs6000.opt (mrop-protect): New option.
6329         (mprivileged): Likewise.
6330         * doc/invoke.texi: Document mrop-protect and mprivileged.
6331
6332 2021-05-15  Hans-Peter Nilsson  <hp@axis.com>
6333
6334         * reorg.c (fill_slots_from_thread): Reinstate code typoed out in
6335         "Remove CC0".
6336
6337 2021-05-15  Martin Jambor  <mjambor@suse.cz>
6338
6339         Revert:
6340         2021-05-13  Martin Jambor  <mjambor@suse.cz>
6341
6342         PR tree-optimization/100453
6343         * tree-sra.c (sra_modify_assign): All const base accesses do not
6344         need refreshing, not just those from decl_pool.
6345         (sra_modify_assign): Do not refresh into a const base decl.
6346
6347 2021-05-15  Jakub Jelinek  <jakub@redhat.com>
6348
6349         PR rtl-optimization/100342
6350         * regcprop.c (copy_value): When copying a source reg in a wider
6351         mode than it has recorded for the value, adjust recorded destination
6352         mode too or punt if !REG_CAN_CHANGE_MODE_P.
6353
6354 2021-05-14  Jason Merrill  <jason@redhat.com>
6355
6356         * intl.h: Add comments.
6357
6358 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6359
6360         * config/aarch64/aarch64-simd.md
6361         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into...
6362         (aarch64_sqdmlsl2_lane<mode>_internal): ... This...
6363         (aarch64_sqdmlal2_lane<mode>_internal): ... And this.
6364         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ...
6365         (aarch64_sqdmlsl2_laneq<mode>_internal): ... This...
6366         (aarch64_sqdmlal2_laneq<mode>_internal): ... And this.
6367         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into...
6368         (aarch64_sqdmlsl2_n<mode>_internal): ... This...
6369         (aarch64_sqdmlal2_n<mode>_internal): ... And this.
6370
6371 2021-05-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6372
6373         PR target/66791
6374         * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's
6375         boolean logic equivalent.
6376         (vtst_s16): Likewise.
6377         (vtst_s32): Likewise.
6378         (vtst_u8): Likewise.
6379         (vtst_u16): Likewise.
6380         (vtst_u32): Likewise.
6381         (vtst_p8): Likewise.
6382         (vtst_p16): Likewise.
6383         (vtstq_s8): Likewise.
6384         (vtstq_s16): Likewise.
6385         (vtstq_s32): Likewise.
6386         (vtstq_u8): Likewise.
6387         (vtstq_u16): Likewise.
6388         (vtstq_u32): Likewise.
6389         (vtstq_p8): Likewise.
6390         (vtstq_p16): Likewise.
6391         * config/arm/arm_neon_builtins.def: Remove entry for vtst.
6392         * config/arm/neon.md (neon_vtst<mode>): Remove pattern.
6393
6394 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6395
6396         * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into...
6397         (aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This.
6398         (aarch64_sqdmlsl2<mode>): Delete.
6399         (aarch64_sqdmlal2_lane<mode>): Merge this...
6400         (aarch64_sqdmlsl2_lane<mode>): ... And this...
6401         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this.
6402         (aarch64_sqdmlal2_laneq<mode>): Merge this...
6403         (aarch64_sqdmlsl2_laneq<mode>): ... And this...
6404         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this.
6405         (aarch64_sqdmlal2_n<mode>): Merge this...
6406         (aarch64_sqdmlsl2_n<mode>): ... And this...
6407         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this.
6408
6409 2021-05-13  Martin Sebor  <msebor@redhat.com>
6410
6411         PR middle-end/100574
6412         * builtins.c (access_ref::get_ref): Improve detection of PHIs with
6413         all null arguments.
6414
6415 2021-05-13  Martin Sebor  <msebor@redhat.com>
6416
6417         PR tree-optimization/93100
6418         PR middle-end/98583
6419         * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that
6420         don't modify referenced objects.
6421
6422 2021-05-13  Martin Jambor  <mjambor@suse.cz>
6423
6424         PR tree-optimization/100453
6425         * tree-sra.c (sra_modify_assign): All const base accesses do not
6426         need refreshing, not just those from decl_pool.
6427         (sra_modify_assign): Do not refresh into a const base decl.
6428
6429 2021-05-13  Martin Liska  <mliska@suse.cz>
6430
6431         * tree-ssa-dom.c: Remove m_simplifier.
6432
6433 2021-05-13  Richard Earnshaw  <rearnsha@arm.com>
6434
6435         PR target/100563
6436         * config/arm/arm.c (arm_canonicalize_comparison): Correctly
6437         canonicalize DImode inequality comparisons against the
6438         maximum integral value.
6439
6440 2021-05-13  Jakub Jelinek  <jakub@redhat.com>
6441
6442         PR tree-optimization/98856
6443         * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument.
6444         Expect V2DI and V4DI arithmetic right shifts to be emulated.
6445         (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost
6446         caller.
6447         * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave,
6448         expand_vec_perm_2perm_pblendv): New functions.
6449         (ix86_expand_vec_perm_const_1): Use them.
6450         * config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ...
6451         (<mask_codefor>ashr<mode>3<mask_name>): ... this.
6452         (ashr<mode>3): New define_expand with VI248_AVX512BW iterator.
6453         (ashrv4di3): New define_expand.
6454         (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP
6455         and !TARGET_AVX512VL expansion.
6456
6457 2021-05-13  Uroš Bizjak  <ubizjak@gmail.com>
6458
6459         PR target/100581
6460         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode
6461         sizes < 16 to a register when constructing vpcmov pattern.
6462         * config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode.
6463
6464 2021-05-13  Martin Liska  <mliska@suse.cz>
6465
6466         * gcov-io.c (gcov_write_block): Remove.
6467         (gcov_write_words): Likewise.
6468         (gcov_read_words): Re-implement using gcov_read_bytes.
6469         (gcov_allocate): Remove.
6470         (GCOV_BLOCK_SIZE): Likewise.
6471         (struct gcov_var): Remove most of the fields.
6472         (gcov_position): Implement with ftell.
6473         (gcov_rewrite): Remove setting of start and offset fields.
6474         (from_file): Re-format.
6475         (gcov_open): Remove setbuf call. It should not be needed.
6476         (gcov_close): Remove internal buffer handling.
6477         (gcov_magic): Use __builtin_bswap32.
6478         (gcov_write_counter): Use directly gcov_write_unsigned.
6479         (gcov_write_string): Use direct fwrite and do not round
6480         to 4 bytes.
6481         (gcov_seek): Use directly fseek.
6482         (gcov_write_tag): Use gcov_write_unsigned directly.
6483         (gcov_write_length): Likewise.
6484         (gcov_write_tag_length): Likewise.
6485         (gcov_read_bytes): Use directly fread.
6486         (gcov_read_unsigned): Use gcov_read_words.
6487         (gcov_read_counter): Likewise.
6488         (gcov_read_string): Use gcov_read_bytes.
6489         * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect
6490         that size is not in bytes, but words (4B).
6491         (GCOV_TAG_FUNCTION_LENGTH): Likewise.
6492         (GCOV_TAG_ARCS_LENGTH): Likewise.
6493         (GCOV_TAG_ARCS_NUM): Likewise.
6494         (GCOV_TAG_COUNTER_LENGTH): Likewise.
6495         (GCOV_TAG_COUNTER_NUM): Likewise.
6496         (GCOV_TAG_SUMMARY_LENGTH): Likewise.
6497
6498 2021-05-13  liuhongt  <hongtao.liu@intel.com>
6499
6500         PR target/94680
6501         * config/i386/sse.md (ssedoublevecmode): Add attribute for
6502         V64QI/V32HI/V16SI/V4DI.
6503         (ssehalfvecmode): Add attribute for V2DI/V2DF.
6504         (*vec_concatv4si_0): Extend to VI124_128.
6505         (*vec_concat<mode>_0): New pre-reload splitter.
6506         * config/i386/predicates.md (movq_parallel): New predicate.
6507
6508 2021-05-13  Alexandre Oliva  <oliva@adacore.com>
6509
6510         * targhooks.c (default_zero_call_used_regs): Retry using
6511         successfully-zeroed registers as sources.
6512
6513 2021-05-12  Tobias Burnus  <tobias@codesourcery.com>
6514
6515         * omp-low.c (finish_taskreg_scan): Use the proper detach decl.
6516
6517 2021-05-12  Aldy Hernandez  <aldyh@redhat.com>
6518
6519         PR c/100521
6520         * gimple-range.cc (range_of_builtin_call): Skip out on
6521           processing __builtin_clz when varying.
6522
6523 2021-05-12  Tom de Vries  <tdevries@suse.de>
6524
6525         PR target/96005
6526         * config/nvptx/nvptx-opts.h (enum ptx_version): New enum.
6527         * config/nvptx/nvptx.c (nvptx_file_start): Print .version according
6528         to ptx_version_option.
6529         * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define.
6530         * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
6531         (define_insn "nvptx_vote_ballot"): Use sync variant for
6532         TARGET_PTX_6_3.
6533         * config/nvptx/nvptx.opt (ptx_version): Add enum.
6534         (mptx): Add option.
6535         * doc/invoke.texi (Nvidia PTX Options): Add mptx item.
6536
6537 2021-05-12  Richard Biener  <rguenther@suse.de>
6538
6539         PR tree-optimization/100566
6540         * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
6541         allow_back for all edge queries.
6542
6543 2021-05-12  liuhongt  <hongtao.liu@intel.com>
6544
6545         PR target/99908
6546         * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add
6547         splitters for pblendvb of NOT mask register.
6548
6549 2021-05-12  Richard Biener  <rguenther@suse.de>
6550
6551         PR tree-optimization/100519
6552         * tree-ssa-reassoc.c (can_associate_p): Split into...
6553         (can_associate_op_p): ... this
6554         (can_associate_type_p): ... and this.
6555         (is_reassociable_op): Call can_associate_op_p.
6556         (break_up_subtract_bb): Call the appropriate predicates.
6557         (reassociate_bb): Likewise.
6558
6559 2021-05-12  Martin Liska  <mliska@suse.cz>
6560
6561         * lto-wrapper.c (merge_and_complain): Merge -flto=arg options.
6562         (run_gcc): Use -flto argument detection for merged
6563         fdecoded_options.
6564
6565 2021-05-12  Martin Liska  <mliska@suse.cz>
6566
6567         * lto-wrapper.c (print_lto_docs_link): New function.
6568         (run_gcc): Print warning about missing job server detection
6569         after we know NR of partitions. Do the same for -flto{,=1}.
6570         * opts.c (get_option_html_page): Support -flto option.
6571
6572 2021-05-12  Martin Liska  <mliska@suse.cz>
6573
6574         * lto-wrapper.c (get_options_from_collect_gcc_options): Change
6575         return type.
6576         (append_option): Remove.
6577         (find_option): Rework to use the vector type.
6578         (remove_option): Remove.
6579         (merge_and_complain): Use vectors for cl_decoded_option data
6580         type arguments.
6581         (append_compiler_options): Likewise.
6582         (append_diag_options): Likewise.
6583         (append_linker_options): Likewise.
6584         (append_offload_options): Likewise.
6585         (compile_offload_image): Likewise.
6586         (compile_images_for_offload_targets): Likewise.
6587         (find_and_merge_options): Likewise.
6588         (run_gcc): Likewise.
6589
6590 2021-05-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6591
6592         PR debug/100515
6593         * dwarf2out.c (dwarf2out_finish): Set
6594         have_multiple_function_sections with multi-range text_section.
6595
6596 2021-05-12  Martin Liska  <mliska@suse.cz>
6597
6598         PR bootstrap/100560
6599         * Makefile.in: Remove version.h from linker command line.
6600
6601 2021-05-12  Richard Biener  <rguenther@suse.de>
6602
6603         PR middle-end/100547
6604         * rtl.h (rtvec_alloc): Make argument size_t.
6605         * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX.
6606
6607 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
6608
6609         PR middle-end/100508
6610         * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
6611         type, don't reuse DECL_RTL if it has different mode, instead force
6612         creation of a new DEBUG_EXPR.
6613
6614 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
6615             Marc Glisse  <marc.glisse@inria.fr>
6616
6617         PR tree-optimization/94589
6618         * match.pd ((X & Y) == X -> (X & ~Y) == 0,
6619         (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications.
6620
6621 2021-05-12  Uroš Bizjak  <ubizjak@gmail.com>
6622
6623         PR target/98218
6624         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
6625         * config/i386/mmx.md (MMXMODE124): New mode iterator.
6626         (V2FI): Ditto.
6627         (mmxintvecmode): New mode attribute.
6628         (mmxintvecmodelower): Ditto.
6629         (*mmx_maskcmpv2sf3_comm): New insn pattern.
6630         (*mmx_maskcmpv2sf3): Ditto.
6631         (vec_cmpv2sfv2si): New expander.
6632         (vcond<V2FI:mode>v2si): Ditto.
6633         (mmx_vlendvps): New insn pattern.
6634         (vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode.
6635         (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
6636         (vcond_mask_<mode><mmxintvecmodelower>): Ditto.
6637
6638 2021-05-11  Martin Sebor  <msebor@redhat.com>
6639
6640         PR middle-end/21433
6641         * expr.c (expand_expr_real_1): Replace unreachable code with an assert.
6642
6643 2021-05-11  Richard Biener  <rguenther@suse.de>
6644
6645         * gimple-fold.c (gimple_fold_call): Do not call
6646         maybe_fold_reference on call arguments or the static chain.
6647         (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM
6648         inputs.
6649
6650 2021-05-11  Martin Liska  <mliska@suse.cz>
6651
6652         * builtins.def (DEF_HSAIL_BUILTIN): Remove.
6653         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
6654         (DEF_HSAIL_SAT_BUILTIN): Likewise.
6655         (DEF_HSAIL_INTR_BUILTIN): Likewise.
6656         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
6657         * doc/frontends.texi: Remove BRIG.
6658         * doc/install.texi: Likewise.
6659         * doc/invoke.texi: Likewise.
6660         * doc/standards.texi: Likewise.
6661         * brig-builtins.def: Removed.
6662         * brig/ChangeLog: Removed.
6663         * brig/Make-lang.in: Removed.
6664         * brig/brig-builtins.h: Removed.
6665         * brig/brig-c.h: Removed.
6666         * brig/brig-lang.c: Removed.
6667         * brig/brigfrontend/brig-arg-block-handler.cc: Removed.
6668         * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed.
6669         * brig/brigfrontend/brig-basic-inst-handler.cc: Removed.
6670         * brig/brigfrontend/brig-branch-inst-handler.cc: Removed.
6671         * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed.
6672         * brig/brigfrontend/brig-code-entry-handler.cc: Removed.
6673         * brig/brigfrontend/brig-code-entry-handler.h: Removed.
6674         * brig/brigfrontend/brig-comment-handler.cc: Removed.
6675         * brig/brigfrontend/brig-control-handler.cc: Removed.
6676         * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed.
6677         * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed.
6678         * brig/brigfrontend/brig-fbarrier-handler.cc: Removed.
6679         * brig/brigfrontend/brig-function-handler.cc: Removed.
6680         * brig/brigfrontend/brig-function.cc: Removed.
6681         * brig/brigfrontend/brig-function.h: Removed.
6682         * brig/brigfrontend/brig-inst-mod-handler.cc: Removed.
6683         * brig/brigfrontend/brig-label-handler.cc: Removed.
6684         * brig/brigfrontend/brig-lane-inst-handler.cc: Removed.
6685         * brig/brigfrontend/brig-machine.c: Removed.
6686         * brig/brigfrontend/brig-machine.h: Removed.
6687         * brig/brigfrontend/brig-mem-inst-handler.cc: Removed.
6688         * brig/brigfrontend/brig-module-handler.cc: Removed.
6689         * brig/brigfrontend/brig-queue-inst-handler.cc: Removed.
6690         * brig/brigfrontend/brig-seg-inst-handler.cc: Removed.
6691         * brig/brigfrontend/brig-signal-inst-handler.cc: Removed.
6692         * brig/brigfrontend/brig-to-generic.cc: Removed.
6693         * brig/brigfrontend/brig-to-generic.h: Removed.
6694         * brig/brigfrontend/brig-util.cc: Removed.
6695         * brig/brigfrontend/brig-util.h: Removed.
6696         * brig/brigfrontend/brig-variable-handler.cc: Removed.
6697         * brig/brigfrontend/hsa-brig-format.h: Removed.
6698         * brig/brigfrontend/phsa.h: Removed.
6699         * brig/brigspec.c: Removed.
6700         * brig/config-lang.in: Removed.
6701         * brig/gccbrig.texi: Removed.
6702         * brig/lang-specs.h: Removed.
6703         * brig/lang.opt: Removed.
6704
6705 2021-05-11  Richard Biener  <rguenther@suse.de>
6706
6707         PR ipa/100513
6708         * ipa-param-manipulation.c
6709         (ipa_param_body_adjustments::modify_call_stmt): Avoid
6710         altering SSA_NAME_DEF_STMT by adjusting the calls LHS
6711         via gimple_call_lhs_ptr.
6712
6713 2021-05-11  Alex Coplan  <alex.coplan@arm.com>
6714
6715         PR target/99725
6716         * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
6717         Avoid emitting CFA adjusts on the sp if we have the fp.
6718
6719 2021-05-11  Richard Sandiford  <richard.sandiford@arm.com>
6720
6721         * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete.
6722         (VMULD): New iterator.
6723         (VCOND): Handle V4HF and V8HF.
6724         (VCONQ): Fix entry for V2SF.
6725         * config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD
6726         instead of VMUL.  Use a 64-bit vector mode for the indexed operand.
6727         (*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with...
6728         (mul_laneq<mode>3): ...this define_insn.  Use VMUL instead of VDQSF.
6729         Use a 128-bit vector mode for the indexed operand.  Use stype for
6730         the scheduling type.
6731
6732 2021-05-11  Richard Biener  <rguenther@suse.de>
6733
6734         * gimple-fold.c (maybe_fold_reference): Only return
6735         is_gimple_min_invariant values.
6736
6737 2021-05-11  Richard Biener  <rguenther@suse.de>
6738
6739         PR middle-end/100509
6740         * gimple-fold.c (fold_gimple_assign): Only call
6741         get_symbol_constant_value on register type symbols.
6742
6743 2021-05-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
6744             Joe Ramsay   <joe.ramsay@arm.com>
6745
6746         PR target/100419
6747         * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments.
6748         (__arm_vcmpneq): Remove duplicate definition.
6749         (__arm_vstrwq_scatter_offset_p): Likewise.
6750         (__arm_vmaxq_x): Likewise.
6751         (__arm_vmlsdavaq): Likewise.
6752         (__arm_vmlsdavaxq): Likewise.
6753         (__arm_vmlsdavq_p): Likewise.
6754         (__arm_vmlsdavxq_p): Likewise.
6755         (__arm_vrmlaldavhaq): Likewise.
6756         (__arm_vstrbq_p): Likewise.
6757         (__arm_vstrbq_scatter_offset): Likewise.
6758         (__arm_vstrbq_scatter_offset_p): Likewise.
6759         (__arm_vstrdq_scatter_offset): Likewise.
6760         (__arm_vstrdq_scatter_offset_p): Likewise.
6761         (__arm_vstrdq_scatter_shifted_offset): Likewise.
6762         (__arm_vstrdq_scatter_shifted_offset_p): Likewise.
6763
6764 2021-05-11  Jakub Jelinek  <jakub@redhat.com>
6765
6766         PR middle-end/100471
6767         * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data
6768         is 0, bypass the reduction loop including
6769         GOMP_taskgroup_reduction_unregister call.
6770
6771 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
6772
6773         * config/rs6000/rs6000.c (struct rs6000_cost_data): New member
6774         costing_for_scalar.
6775         (rs6000_density_test): Early return if costing_for_scalar is true.
6776         (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data.
6777
6778 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
6779
6780         * doc/tm.texi: Regenerated.
6781         * target.def (init_cost): Add new parameter costing_for_scalar.
6782         * targhooks.c (default_init_cost): Adjust for new parameter.
6783         * targhooks.h (default_init_cost): Likewise.
6784         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise.
6785         (vect_compute_single_scalar_iteration_cost): Likewise.
6786         (vect_analyze_loop_2): Likewise.
6787         * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise.
6788         (vect_bb_vectorization_profitable_p): Likewise.
6789         * tree-vectorizer.h (init_cost): Likewise.
6790         * config/aarch64/aarch64.c (aarch64_init_cost): Likewise.
6791         * config/i386/i386.c (ix86_init_cost): Likewise.
6792         * config/rs6000/rs6000.c (rs6000_init_cost): Likewise.
6793
6794 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
6795
6796         * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to
6797         vect_nonmem and moved into...
6798         (struct rs6000_cost_data): ...here.
6799         (rs6000_init_cost): Use vect_nonmem of cost_data instead.
6800         (rs6000_add_stmt_cost): Likewise.
6801         (rs6000_finish_cost): Likewise.
6802
6803 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6804
6805         * range-op.cc (get_bool_state): Adjust head comment.
6806         (operator_not_equal::op1_range): Fix comment.
6807         (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable.
6808
6809 2021-05-10  Martin Sebor  <msebor@redhat.com>
6810
6811         PR middle-end/100425
6812         PR middle-end/100510
6813         * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename...
6814         (pass_walloca::xlimit_certain_p): ...to this.
6815         (pass_walloca::gate): Execute for any kind of handled warning.
6816         (pass_walloca::execute): Avoid issuing "maybe" and "unbounded"
6817         warnings when xlimit_certain_p is set.
6818
6819 2021-05-10  Pat Haugen  <pthaugen@linux.ibm.com>
6820
6821         * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class):
6822         Return ALTIVEC_REGS if that is best_class.
6823         (rs6000_compute_pressure_classes): Add ALTIVEC_REGS.
6824
6825 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
6826
6827         * config/arm/arm.h (CPP_SPEC): Remove error message about
6828         -mfloat-abi.
6829
6830 2021-05-10  Martin Jambor  <mjambor@suse.cz>
6831
6832         * ipa-prop.h (IPA_NODE_REF): Removed.
6833         (IPA_NODE_REF_GET_CREATE): Likewise.
6834         (IPA_EDGE_REF): Likewise.
6835         (IPA_EDGE_REF_GET_CREATE): Likewise.
6836         (IS_VALID_JUMP_FUNC_INDEX): Likewise.
6837         * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct
6838         use of ipa_node_params_sum.
6839         (ipcp_versionable_function_p): Likewise.
6840         (push_node_to_stack): Likewise.
6841         (pop_node_from_stack): Likewise.
6842         (set_single_call_flag): Replaced two IPA_NODE_REF with one single
6843         direct use of ipa_node_params_sum.
6844         (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of
6845         ipa_node_params_sum.
6846         (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of
6847         ipa_edge_args_sum.
6848         (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct
6849         use of ipa_node_params_sum.
6850         (self_recursively_generated_p): Likewise.
6851         (propagate_scalar_across_jump_function): Likewise.
6852         (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a
6853         direct use of ipa_edge_args_sum, moved the lookup after the early
6854         exit.  Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum.
6855         (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with
6856         direct uses of ipa_node_params_sum.
6857         (propagate_vr_across_jump_function): Likewise.
6858         (propagate_aggregate_lattice): Likewise.
6859         (propagate_aggs_across_jump_function): Likewise.
6860         (propagate_constants_across_call): Likewise, also replaced
6861         IPA_EDGE_REF with a direct use of ipa_edge_args_sum.
6862         (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use
6863         of ipa_node_params_sum.
6864         (estimate_local_effects): Likewise.
6865         (add_all_node_vals_to_toposort): Likewise.
6866         (propagate_constants_topo): Likewise.
6867         (ipcp_propagate_stage): Likewise.
6868         (ipcp_discover_new_direct_edges): Likewise.
6869         (calls_same_node_or_its_all_contexts_clone_p): Likewise.
6870         (cgraph_edge_brings_value_p): Likewise (in both overloaded functions).
6871         (get_info_about_necessary_edges): Likewise.
6872         (want_remove_some_param_p): Likewise.
6873         (create_specialized_node): Likewise.
6874         (self_recursive_pass_through_p): Likewise.
6875         (self_recursive_agg_pass_through_p): Likewise.
6876         (find_more_scalar_values_for_callers_subset): Likewise and also
6877         replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one
6878         case replacing two of those with a single query.
6879         (find_more_contexts_for_caller_subset): Likewise for the
6880         ipa_polymorphic_call_context overload.
6881         (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct
6882         use of ipa_edge_args_sum.  Replaced IPA_NODE_REF with direct uses of
6883         ipa_node_params_sum.
6884         (find_aggregate_values_for_callers_subset): Likewise, also reusing
6885         results of ipa_edge_args_sum->get.
6886         (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with
6887         direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a
6888         direct use of ipa_edge_args_sum.
6889         (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node
6890         summary query after the early exit and reused the result later.
6891         (decide_about_value): Replaced IPA_NODE_REF with a direct use of
6892         ipa_node_params_sum.
6893         (decide_whether_version_node): Likewise.  Removed re-querying for
6894         summaries after cloning.
6895         (spread_undeadness): Replaced IPA_NODE_REF with a direct use of
6896         ipa_node_params_sum.
6897         (has_undead_caller_from_outside_scc_p): Likewise, reusing results of
6898         some queries.
6899         (identify_dead_nodes): Likewise.
6900         (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of
6901         ipa_node_params_sum.
6902         (ipcp_store_vr_results): Likewise.
6903         * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
6904         (ipa_fn_summary_t::duplicate): Likewise.
6905         (analyze_function_body): Likewise.
6906         (estimate_calls_size_and_time): Likewise.
6907         (ipa_cached_call_context::duplicate_from): Likewise.
6908         (ipa_call_context::equal_to): Likewise.
6909         (remap_edge_params): Likewise.
6910         (ipa_merge_fn_summary_after_inlining): Likewise.
6911         (inline_read_section): Likewise.
6912         * ipa-icf.c (sem_function::param_used_p): Likewise.
6913         * ipa-modref.c (compute_parm_map): Likewise.
6914         (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of
6915         ipa_edge_args_sum.
6916         (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of
6917         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
6918         ipa_edge_args_sum.
6919         * ipa-profile.c (check_argument_count): Likewise.
6920         * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE
6921         with a direct use of ipa_node_params_sum.
6922         (ipa_initialize_node_params): Likewise.
6923         (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a
6924         direct use of ipa_edge_args_sum and reused the query result.
6925         (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a
6926         direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a
6927         direct use of ipa_edge_args_sum.
6928         (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of
6929         ipa_node_params_sum and reused the result of the query.
6930         (ipa_analyze_node): Likewise.
6931         (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use
6932         of ipa_node_params_sum.
6933         (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with
6934         direct uses of ipa_edge_args_sum.
6935         (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with
6936         direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a
6937         direct use of ipa_edge_args_sum.  Removed superficial re-querying the
6938         top edge summary.
6939         (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of
6940         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
6941         ipa_edge_args_sum.
6942         (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a
6943         direct use of ipa_edge_args_sum.
6944         (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct
6945         use of ipa_node_params_sum.
6946         (ipa_print_node_params): Likewise.
6947         (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with
6948         direct uses of ipa_edge_args_sum.
6949         (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of
6950         ipa_edge_args_sum.
6951         (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of
6952         ipa_node_params_sum.
6953         (ipa_prop_write_jump_functions): Likewise.  Move variable node to the
6954         scopes where it is used.
6955
6956 2021-05-10  Uroš Bizjak  <ubizjak@gmail.com>
6957
6958         * config/i386/i386-expand.c (ix86_expand_sse_movcc)
6959         <case E_V2SImode>: Force op_true to register.
6960
6961 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
6962
6963         * config/arm/iterators.md (MVE_FP_COMPARISONS): New.
6964         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>)
6965         (mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f*
6966         patterns.
6967         (mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>)
6968         (mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>)
6969         (mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>)
6970         (mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>)
6971         (mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>)
6972         (mve_vcmpneq_n_f<mode>): Remove.
6973         * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F)
6974         (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F)
6975         (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove.
6976
6977 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
6978
6979         * config/arm/iterators.md (MVE_COMPARISONS): New.
6980         (mve_cmp_op): New.
6981         (mve_cmp_type): New.
6982         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
6983         mve_vcmp patterns.
6984         (mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>)
6985         (mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>)
6986         (mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>)
6987         (mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>)
6988         (mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
6989         (mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
6990         (mve_vcmpneq_n_<mode>): Remove.
6991
6992 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
6993
6994         * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix.
6995         * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix.
6996         * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern
6997         names.
6998
6999 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7000
7001         * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove.
7002         (vcmpneq_n_u): Likewise.
7003         (vcmpeqq_u,): Likewise.
7004         (vcmpeqq_n_u): Likewise.
7005         * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U,
7006         VCMPEQQ_N_U and VCMPNEQ_N_U.
7007         * config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration.
7008         (mve_vcmpeqq_n): Likewise.
7009         (mve_vcmpeqq): Likewise.
7010         (mve_vcmpneq_n): Likewise.
7011
7012 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7013
7014         * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call
7015         the 's' version of the builtin.
7016
7017 2021-05-10  Richard Biener  <rguenther@suse.de>
7018
7019         PR tree-optimization/100492
7020         * tree-loop-distribution.c (find_seed_stmts_for_distribution):
7021         Find nothing when the loop contains an irreducible region.
7022
7023 2021-05-10  Richard Biener  <rguenther@suse.de>
7024
7025         PR middle-end/100464
7026         PR c++/100468
7027         * gimple-fold.c (canonicalize_constructor_val): Do not set
7028         TREE_ADDRESSABLE.
7029
7030 2021-05-10  Richard Biener  <rguenther@suse.de>
7031
7032         PR tree-optimization/100434
7033         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
7034         call LHS.
7035         (dse_optimize_stmt): Handle call LHS by dropping the
7036         LHS or the whole call if it doesn't have other
7037         side-effects.
7038         (pass_dse::execute): Adjust.
7039
7040 2021-05-10  Martin Liska  <mliska@suse.cz>
7041
7042         * Makefile.in: Add missing genversion rule.
7043
7044 2021-05-10  Alex Coplan  <alex.coplan@arm.com>
7045
7046         PR target/99960
7047         * config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use
7048         vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.
7049
7050 2021-05-10  Martin Liska  <mliska@suse.cz>
7051
7052         * builtins.c (is_builtin_name): Use startswith
7053         function instead of strncmp.
7054         * collect2.c (main): Likewise.
7055         (has_lto_section): Likewise.
7056         (scan_libraries): Likewise.
7057         * coverage.c (coverage_checksum_string): Likewise.
7058         (coverage_init): Likewise.
7059         * dwarf2out.c (is_cxx): Likewise.
7060         (gen_compile_unit_die): Likewise.
7061         * gcc-ar.c (main): Likewise.
7062         * gcc.c (init_spec): Likewise.
7063         (read_specs): Likewise.
7064         (execute): Likewise.
7065         (check_live_switch): Likewise.
7066         * genattrtab.c (write_attr_case): Likewise.
7067         (IS_ATTR_GROUP): Likewise.
7068         * gencfn-macros.c (main): Likewise.
7069         * gengtype.c (type_for_name): Likewise.
7070         (gen_rtx_next): Likewise.
7071         (get_file_langdir): Likewise.
7072         (write_local): Likewise.
7073         * genmatch.c (get_operator): Likewise.
7074         (get_operand_type): Likewise.
7075         (expr::gen_transform): Likewise.
7076         * genoutput.c (validate_optab_operands): Likewise.
7077         * incpath.c (add_sysroot_to_chain): Likewise.
7078         * langhooks.c (lang_GNU_C): Likewise.
7079         (lang_GNU_CXX): Likewise.
7080         (lang_GNU_Fortran): Likewise.
7081         (lang_GNU_OBJC): Likewise.
7082         * lto-wrapper.c (run_gcc): Likewise.
7083         * omp-general.c (omp_max_simt_vf): Likewise.
7084         * omp-low.c (omp_runtime_api_call): Likewise.
7085         * opts-common.c (parse_options_from_collect_gcc_options): Likewise.
7086         * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise.
7087         * real.c (real_from_string): Likewise.
7088         * selftest.c (assert_str_startswith): Likewise.
7089         * timevar.c (timer::validate_phases): Likewise.
7090         * tree.c (get_file_function_name): Likewise.
7091         * ubsan.c (ubsan_use_new_style_p): Likewise.
7092         * varasm.c (default_function_rodata_section): Likewise.
7093         (incorporeal_function_p): Likewise.
7094         (default_section_type_flags): Likewise.
7095         * system.h (startswith): Define startswith.
7096
7097 2021-05-10  Martin Liska  <mliska@suse.cz>
7098
7099         * bitmap.h (class auto_bitmap): Remove
7100         __cplusplus >= 201103.
7101         * config/aarch64/aarch64.c: Likewise.
7102         * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info):
7103         Likewise.
7104         * sbitmap.h: Likewise.
7105
7106 2021-05-10  Martin Liska  <mliska@suse.cz>
7107
7108         * Makefile.in: Rename gcov-iov to genversion and depend
7109         on version.h (instead of gcov-iov.h).
7110         * gcov-io.h: Include version.h instread of gcov-iov.h.
7111         * gengtype-state.c (read_state_version): Likewise.
7112         * gcov-iov.c: Moved to...
7113         * genversion.c: ...here.
7114         * lto-streamer.h (LTO_major_version): Define it with
7115         GCC_major_version.
7116         * version.c: Removed.
7117         * version.h: Removed.
7118
7119 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7120
7121         * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
7122         * config/arc/simdext.md (VCT): Add predicates for iterator
7123         elements.
7124         (EMUVEC): Define.
7125         (voptab): Likewise.
7126         (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
7127         (<voptab>v2si3): New patterns.
7128         (neg): Likewise.
7129         (reduc_plus_scal_v4hi): Likewise.
7130         (reduc_plus_scal_v2si): Likewise.
7131         (vec_duplicatev2si): Likewise.
7132         (vec_duplicatev4hi): Likewise.
7133
7134 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7135
7136         * config/arc/simdext.md: Format and cleanup file.
7137
7138 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7139
7140         * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access
7141         only when munaligned-access option is on.
7142         (movmisalign<mode>): Likewise.
7143
7144 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7145
7146         * common/config/arc/arc-common.c (arc_handle_option): Remove dot
7147         from string.
7148         * config/arc/arc.c (arc_reorg): Remove underscore from string.
7149
7150 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7151
7152         * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
7153         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
7154         * config/arc/arc.md (clrsbsi2): Cleanup pattern.
7155         (norm_f): Likewise.
7156         (ffs): Likewise.
7157         (ffs_f): Likewise.
7158         (clzsi2): Use fls instruction when available.
7159         (arc_clzsi2): Likewise.
7160
7161 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7162
7163         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27.
7164
7165 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7166
7167         * doc/extend.texi (__builtin_arc_sr): Swap arguments.
7168
7169 2021-05-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7170
7171         PR middle-end/100467
7172         * toplev.c (compile_file): Call insn_locations_init before
7173         targetm.asm_out.code_end.
7174
7175 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
7176
7177         Revert:
7178         2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
7179
7180         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
7181
7182 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
7183             Andrew Stubbs  <amd@codesourcery.com>
7184
7185         PR target/100418
7186         * builtins.c (try_store_by_multiple_pieces): Use force_operand for
7187         emit_move_insn operands.
7188
7189 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
7190
7191         * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current
7192         location for the outgoing edges of an empty block.
7193         * dwarf2out.c (add_subscript_info): Retrieve the bounds and index
7194         type by means of the get_array_descr_info langhook, if it is set and
7195         returns true.  Remove obsolete code dealing with unnamed subtypes.
7196
7197 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7198
7199         * gimple-range-cache.cc (ssa_block_ranges): Virtualize.
7200         (sbr_vector): Renamed from ssa_block_cache.
7201         (sbr_vector::sbr_vector): Allocate from obstack abd initialize.
7202         (ssa_block_ranges::~ssa_block_ranges): Remove.
7203         (sbr_vector::set_bb_range): Use varying and undefined cached values.
7204         (ssa_block_ranges::set_bb_varying): Remove.
7205         (sbr_vector::get_bb_range): Adjust assert.
7206         (sbr_vector::bb_range_p): Adjust assert.
7207         (~block_range_cache): No freeing loop required.
7208         (block_range_cache::get_block_ranges): Remove.
7209         (block_range_cache::set_bb_range): Inline get_block_ranges.
7210         (block_range_cache::set_bb_varying): Remove.
7211         * gimple-range-cache.h (set_bb_varying): Remove prototype.
7212         * value-range.h (irange_allocator::get_memory): New.
7213
7214 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7215
7216         * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search
7217         dominator tree is available and requested.
7218         (ranger_cache::ssa_range_in_bb): Don't search dom tree here.
7219         (ranger_cache::fill_block_cache): Don't search dom tree here either.
7220         * gimple-range-cache.h (non_null_deref_p): Add dom_search param.
7221
7222 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7223
7224         * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with
7225         only PHI nodes better.
7226
7227 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7228
7229         * gimple-range-edge.h (gimple_outgoing_range): Rename from
7230         outgoing_range.
7231         (gcond_edge_range): Export prototype.
7232         * gimple-range-edge.cc (gcond_edge_range): New.
7233         (gimple_outgoing_range::edge_range_p): Use gcond_edge_range.
7234         * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range.
7235
7236 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7237
7238         * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute
7239         default range into a temp and allocate only what is needed.
7240
7241 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7242
7243         * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED.
7244
7245 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7246
7247         * gimple-range.h (gimple_range_global): Pick up parameter initial
7248         values, and use-before defined locals are UNDEFINED.
7249
7250 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
7251
7252         * doc/extend.texi (scalar_storage_order): Mention effect on pointer
7253         and vector fields.
7254         * tree.h (reverse_storage_order_for_component_p): Return false if
7255         the type is a pointer.
7256
7257 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
7258
7259         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
7260
7261 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
7262
7263         PR target/98218
7264         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
7265         Handle V8QI, V4HI and V2SI modes.
7266         * config/i386/mmx.md (mmx_pblendvb): New insn pattern.
7267         * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ...
7268         * config/i386/i386.md (unspec): ... here.
7269
7270 2021-05-07  Tobias Burnus  <tobias@codesourcery.com>
7271             Tom de Vries  <tdevries@suse.de>
7272
7273         * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
7274         a truth_value_p reduction variable is nonintegral.
7275
7276 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
7277
7278         PR target/100445
7279         * config/i386/i386-expand.c (ix86_use_mask_cmp_p):
7280         Return false for mode sizes < 16.
7281
7282 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
7283
7284         PR target/100445
7285         * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.
7286
7287 2021-05-06  Martin Jambor  <mjambor@suse.cz>
7288
7289         * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even
7290         when there is no function summary.
7291         (ipa_sra_summarize_function): produce edge summaries even when
7292         bailing out early.
7293
7294 2021-05-06  Tom Tromey  <tom@tromey.com>
7295
7296         * godump.c (string_hash_eq): Remove.
7297         (go_finish): Use htab_eq_string.
7298
7299 2021-05-06  Tom Tromey  <tom@tromey.com>
7300
7301         * gengtype-state.c (read_state): Use htab_eq_string.
7302         (string_eq): Remove.
7303
7304 2021-05-06  Tom Tromey  <tom@tromey.com>
7305
7306         * gensupport.c (htab_eq_string): Remove.
7307
7308 2021-05-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7309
7310         PR ipa/97937
7311         * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer.
7312         * dwarf2out.h (dw_fde_node::ignored_debug): New data item.
7313         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy
7314         set_ignored_loc callbacks.
7315         * debug.c (do_nothing_debug_hooks): Likewise.
7316         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7317         * dwarf2out.c (text_section_used, cold_text_section_used): Remove.
7318         (in_text_section_p, last_text_label, last_cold_label,
7319         switch_text_ranges, switch_cold_ranges): New data items.
7320         (dwarf2out_note_section_used): Remove.
7321         (dwarf2out_begin_prologue): Set fde->ignored_debug and
7322         in_text_section_p.
7323         (mark_ignored_debug_section): New helper function.
7324         (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call
7325         mark_ignored_debug_section.
7326         (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc.
7327         (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc.
7328         (size_of_aranges): Adjust formula for multi-part text ranges size.
7329         (output_aranges): Output multi-part text ranges.
7330         (dwarf2out_set_ignored_loc): New callback function.
7331         (dwarf2out_finish): Output multi-part text ranges.
7332         (dwarf2out_c_finalize): Clear new data items.
7333         * final.c (final_start_function_1): Call set_ignored_loc callback.
7334         (final_scan_insn_1): Likewise.
7335         * ggc-page.c (gt_ggc_mx): New helper function.
7336         * stringpool.c (gt_pch_nx): Likewise.
7337
7338 2021-05-06  Richard Biener  <rguenther@suse.de>
7339
7340         * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove.
7341         (TV_TREE_SSA_REWRITE_BLOCKS): Likewise.
7342         (TV_TREE_INTO_SSA): New.
7343         * tree-into-ssa.c (insert_phi_nodes): Do not account separately.
7344         (rewrite_blocks): Likewise.
7345         (pass_data_build_ssa): Account to TV_TREE_INTO_SSA.
7346
7347 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
7348
7349         * tree-ssa-phiopt.c (value_replacement, minmax_replacement,
7350         abs_replacement, xor_replacement,
7351         cond_removal_in_popcount_clz_ctz_pattern,
7352         replace_phi_edge_with_variable): Change type of phi argument from
7353         gimple * to gphi *.
7354
7355 2021-05-06  Richard Biener  <rguenther@suse.de>
7356
7357         * tree-ssa-loop-split.c (split_loop): Delay updating SSA form.
7358         Output an opt-info message.
7359         (do_split_loop_on_cond): Likewise.
7360         (tree_ssa_split_loops): Update SSA form here.
7361
7362 2021-05-06  Richard Biener  <rguenther@suse.de>
7363
7364         * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE
7365         return variable removal.
7366
7367 2021-05-06  Marius Hillenbrand  <mhillen@linux.ibm.com>
7368
7369         * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros.
7370         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
7371         (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate
7372         operand.
7373         * config/s390/s390.c (s390_const_operand_ok): Remove unused
7374         values.
7375
7376 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
7377
7378         PR tree-optimization/94589
7379         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
7380         spaceship_replacement.
7381         (cond_only_block_p, spaceship_replacement): New functions.
7382
7383 2021-05-06  Richard Biener  <rguenther@suse.de>
7384
7385         PR ipa/100373
7386         * tree-emutls.c (gen_emutls_addr): Pass in whether we're
7387         dealing with a debug use and only query existing addresses
7388         if so.
7389         (lower_emutls_1): Avoid splitting out addresses for debug
7390         stmts, reset the debug stmt when we fail to find existing
7391         lowered addresses.
7392         (lower_emutls_phi_arg): Set wi.stmt.
7393
7394 2021-05-06  Christoph Muellner  <cmuellner@gcc.gnu.org>
7395
7396         PR target/100266
7397         * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper.
7398         * config/riscv/riscv.md (cbranch<mode>4): Generate helpers.
7399         (stack_protect_test): Use cbranch helper.
7400
7401 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7402
7403         PR target/100402
7404         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
7405         always return the establisher frame for __builtin_frame_address (0).
7406
7407 2021-05-05  Ivan Sorokin  <vanyacpp@gmail.com>
7408
7409         PR target/91400
7410         * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New.
7411         (ix86_cpu_model_var): Likewise.
7412         (ix86_cpu_features2_type_node): Likewise.
7413         (ix86_cpu_features2_var): Likewise.
7414         (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with
7415         their types.
7416
7417 2021-05-05  Martin Sebor  <msebor@redhat.com>
7418
7419         * passes.def (pass_warn_printf): Run after SSA.
7420
7421 2021-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7422
7423         * config/arm/neon.md (neon_vtst_combine<mode>): New pattern.
7424         * config/arm/predicates.md (minus_one_operand): New predicate.
7425
7426 2021-05-05  Jeff Law  <jlaw@tachyum.com>
7427
7428         * config/avr/avr.md: Remove references to CC_STATUS_INIT.
7429
7430 2021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
7431
7432         PR rtl-optimization/100263
7433         * postreload.c (move2add_valid_value_p): Ensure register can
7434         change mode.
7435
7436 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7437
7438         PR rtl-optimization/100411
7439         * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue
7440         and beginning of function markers.
7441
7442 2021-05-05  Jeff Law  <jlaw@tachyum.com>
7443
7444         * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove.
7445         * config/cr16/cr16.c (notice_update_cc): Remove.
7446         * config/cr16/cr16-protos.h (notice_update_cc): Remove.
7447
7448 2021-05-05  Uroš Bizjak  <ubizjak@gmail.com>
7449
7450         PR target/98218
7451         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
7452         Handle V8QI, V4HI and V2SI modes.
7453         * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode.
7454         (ix86_build_signbit_mask): Ditto.
7455         * config/i386/mmx.md (MMXMODE14): New mode iterator.
7456         (<smaxmin:code><MMXMODE14:mode>3): New expander.
7457         (*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern.
7458         (<umaxmin:code><MMXMODE24:mode>3): New expander.
7459         (*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern.
7460         (vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander.
7461         (vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7462         (vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7463         (vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7464         (vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7465
7466 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7467
7468         * dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do
7469         not expand the VALUE_EXPR of variables put in the non-local frame.
7470         * gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not
7471         to be ignored for debug info, ensure its variable offsets are not.
7472
7473 2021-05-05  Richard Biener  <rguenther@suse.de>
7474
7475         PR tree-optimization/79333
7476         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
7477         Fold stmt following SSA edges.
7478
7479 2021-05-05  Richard Biener  <rguenther@suse.de>
7480
7481         PR middle-end/100394
7482         * calls.c (expand_call): Preserve possibly throwing calls.
7483         * cfgexpand.c (expand_call_stmt): When a call can throw signal
7484         RTL expansion there are side-effects.
7485         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify,
7486         mark all possibly throwing stmts necessary unless we can elide
7487         dead EH.
7488         * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless
7489         -fdelete-dead-exceptions.
7490         * tree.h (DECL_PURE_P): Add note about exceptions.
7491
7492 2021-05-05  Alexandre Oliva  <oliva@adacore.com>
7493
7494         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
7495         unconditional.
7496
7497 2021-05-04  David Edelsohn  <dje.gcc@gmail.com>
7498
7499         * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
7500         get_fnname_from_decl for name of thunk.
7501         * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name
7502         and ASM_OUTPUT_LABEL.
7503         (rs6000_xcoff_declare_function_name): Use assemble_name and
7504         ASM_OUTPUT_LABEL.
7505         (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL.
7506         (rs6000_xcoff_encode_section_info): Don't add mapping class
7507         for aliases.  Always add [DS] mapping class to primary
7508         FUNCTION_DECL.
7509         (rs6000_asm_weaken_decl): Don't explicitly add [DS].
7510
7511 2021-05-04  Martin Sebor  <msebor@redhat.com>
7512
7513         PR middle-end/100307
7514         * builtins.c (compute_objsize_r): Clear base0 for pointers.
7515
7516 2021-05-04  Jeff Law  <jlaw@tachyum.com>
7517
7518         * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
7519
7520 2021-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7521
7522         * caller-save.c: Remove CC0.
7523         * cfgcleanup.c: Remove CC0.
7524         * cfgrtl.c: Remove CC0.
7525         * combine.c: Remove CC0.
7526         * compare-elim.c: Remove CC0.
7527         * conditions.h: Remove CC0.
7528         * config/h8300/h8300.h: Remove CC0.
7529         * config/h8300/h8300-protos.h: Remove CC0.
7530         * config/h8300/peepholes.md: Remove CC0.
7531         * config/i386/x86-tune-sched.c: Remove CC0.
7532         * config/m68k/m68k.c: Remove CC0.
7533         * config/rl78/rl78.c: Remove CC0.
7534         * config/sparc/sparc.c: Remove CC0.
7535         * config/xtensa/xtensa.c: Remove CC0.
7536         (gen_conditional_move):  Use pc_rtx instead of cc0_rtx in a piece of
7537         RTL where that is used as a placeholder only.
7538         * cprop.c: Remove CC0.
7539         * cse.c: Remove CC0.
7540         * cselib.c: Remove CC0.
7541         * df-problems.c: Remove CC0.
7542         * df-scan.c: Remove CC0.
7543         * doc/md.texi: Remove CC0.  Adjust an example.
7544         * doc/rtl.texi: Remove CC0.  Adjust an example.
7545         * doc/tm.texi: Regenerate.
7546         * doc/tm.texi.in: Remove CC0.
7547         * emit-rtl.c: Remove CC0.
7548         * final.c: Remove CC0.
7549         * fwprop.c: Remove CC0.
7550         * gcse-common.c: Remove CC0.
7551         * gcse.c: Remove CC0.
7552         * genattrtab.c: Remove CC0.
7553         * genconfig.c: Remove CC0.
7554         * genemit.c: Remove CC0.
7555         * genextract.c: Remove CC0.
7556         * gengenrtl.c: Remove CC0.
7557         * genrecog.c: Remove CC0.
7558         * haifa-sched.c: Remove CC0.
7559         * ifcvt.c: Remove CC0.
7560         * ira-costs.c: Remove CC0.
7561         * ira.c: Remove CC0.
7562         * jump.c: Remove CC0.
7563         * loop-invariant.c: Remove CC0.
7564         * lra-constraints.c: Remove CC0.
7565         * lra-eliminations.c: Remove CC0.
7566         * optabs.c: Remove CC0.
7567         * postreload-gcse.c: Remove CC0.
7568         * postreload.c: Remove CC0.
7569         * print-rtl.c: Remove CC0.
7570         * read-rtl-function.c: Remove CC0.
7571         * reg-notes.def: Remove CC0.
7572         * reg-stack.c: Remove CC0.
7573         * reginfo.c: Remove CC0.
7574         * regrename.c: Remove CC0.
7575         * reload.c: Remove CC0.
7576         * reload1.c: Remove CC0.
7577         * reorg.c: Remove CC0.
7578         * resource.c: Remove CC0.
7579         * rtl.c: Remove CC0.
7580         * rtl.def: Remove CC0.
7581         * rtl.h: Remove CC0.
7582         * rtlanal.c: Remove CC0.
7583         * sched-deps.c: Remove CC0.
7584         * sched-rgn.c: Remove CC0.
7585         * shrink-wrap.c: Remove CC0.
7586         * simplify-rtx.c: Remove CC0.
7587         * system.h: Remove CC0.  Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
7588         CC_STATUS_MDEP, and CC_STATUS.
7589         * target.def: Remove CC0.
7590         * valtrack.c: Remove CC0.
7591         * var-tracking.c: Remove CC0.
7592
7593 2021-05-04  Richard Biener  <rguenther@suse.de>
7594
7595         PR tree-optimization/100414
7596         * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
7597         info here.
7598         (tree_ssa_phiopt_worker): But unconditionally here.
7599
7600 2021-05-04  Tobias Burnus  <tobias@codesourcery.com>
7601
7602         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
7603         && and || with floating-point and complex arguments.
7604
7605 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7606
7607         * tree-inline.c (insert_debug_decl_map): Delete.
7608         (copy_debug_stmt): Minor tweak.
7609         (setup_one_parameter): Do not use a variable if the value is either
7610         a read-only DECL or a non-addressable local variable in the caller.
7611         In this case, insert the debug-only variable in the map manually.
7612         (expand_call_inline): Do not generate a CLOBBER for these values.
7613         * tree-inline.h (debug_map): Minor tweak.
7614
7615 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7616
7617         * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
7618         * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.
7619
7620 2021-05-04  Richard Biener  <rguenther@suse.de>
7621
7622         PR tree-optimization/100329
7623         * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
7624         asm goto defs.
7625         (insert_stmt_after): Assert we're not running into asm goto.
7626
7627 2021-05-04  Richard Biener  <rguenther@suse.de>
7628
7629         PR tree-optimization/100398
7630         * tree-ssa-dse.c (pass_dse::execute): Preserve control
7631         altering stmts.
7632
7633 2021-05-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7634
7635         * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.
7636
7637 2021-05-04  Alexandre Oliva  <oliva@adacore.com>
7638
7639         * builtins.c (try_store_by_multiple_pieces): New.
7640         (expand_builtin_memset_args): Use it.  If target_char_cast
7641         fails, proceed as for non-constant val.  Pass len's ctz to...
7642         * expr.c (clear_storage_hints): ... this.  Try store by
7643         multiple pieces after setmem.
7644         (clear_storage): Adjust.
7645         * expr.h (clear_storage_hints): Likewise.
7646         (try_store_by_multiple_pieces): Declare.
7647         * passes.def: Replace the last copy_prop with ccp.
7648
7649 2021-05-03  Tom de Vries  <tdevries@suse.de>
7650
7651         PR target/100321
7652         * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined
7653         reduction.
7654
7655 2021-05-03  Richard Biener  <rguenther@suse.de>
7656
7657         * tree-ssa-dse.c (dse_classify_store): Track two PHI defs.
7658
7659 2021-05-03  Richard Biener  <rguenther@suse.de>
7660
7661         * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h.
7662         (dse_dom_walker): Remove.
7663         (dse_dom_walker::dse_optimize_stmt): Rename...
7664         (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap.
7665         (dse_dom_walker::before_dom_children): Inline ...
7666         (pass_dse::execute): ... here.  Perform a reverse program
7667         order walk.
7668
7669 2021-05-03  H.J. Lu  <hjl.tools@gmail.com>
7670
7671         PR bootstrap/99703
7672         * configure: Regenerated.
7673
7674 2021-05-03  Ilya Leoshkevich  <iii@linux.ibm.com>
7675
7676         PR target/100217
7677         * config/s390/s390.c (s390_hard_fp_reg_p): New function.
7678         (s390_md_asm_adjust): Handle hard registers.
7679
7680 2021-05-03  Jakub Jelinek  <jakub@redhat.com>
7681
7682         PR tree-optimization/100382
7683         * tree-ssa-dse.c: Include tree-eh.h.
7684         (dse_dom_walker::before_dom_children): Don't remove stmts if
7685         stmt_unremovable_because_of_non_call_eh_p is true.
7686
7687 2021-05-02  David Edelsohn  <dje.gcc@gmail.com>
7688
7689         * varasm.c (compute_reloc_for_var): Split out from...
7690         (get_variable_section): Use it.
7691         * output.h (compute_reloc_for_var): Declare.
7692         * config/rs6000/rs6000-protos.h
7693         (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to
7694         unsigned int.
7695         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix):
7696         Don't append storage mapping class to symbol.
7697         (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes.
7698         Don't convert TLS BSS to common.
7699         (rs6000_xcoff_unique_section): Don't fall back to select_secton.
7700         (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is
7701         bss_initializer.
7702         (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage
7703         mapping class.
7704         (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int.
7705         If align is 0 from TLS class, use the same rules as varasm.c
7706         If not common, switch to BSS section manually.
7707         If common, emit appropriate comm or lcomm directive.
7708         (rs6000_xcoff_encode_section_info): Add logic to append all
7709         storage mapping classes.
7710         (rs6000_asm_weaken_decl): Adjust for qualname symbols.
7711         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
7712         rs6000_xcoff_asm_output_aligned_decl_common.
7713         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
7714         rs6000_xcoff_asm_output_aligned_decl_common.
7715         (ASM_OUTPUT_TLS_COMMON): Use
7716         rs6000_xcoff_asm_output_aligned_decl_common.
7717
7718 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
7719
7720         PR target/100375
7721         * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0
7722         as first argument of pseudo_node_t constructors.
7723
7724 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
7725
7726         PR target/100336
7727         * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def.
7728
7729 2021-05-01  Aldy Hernandez  <aldyh@redhat.com>
7730
7731         * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove.
7732         (gt_pch_nx (int_range<1> *&)): New.
7733         (gt_ggc_mx (int_range<1> *&)): New.
7734         * value-range.h (class irange): Add GTY support for
7735         the base class.
7736
7737 2021-05-01  Geng Qi  <gengqi@linux.alibaba.com>
7738
7739         * doc/options.texi (Negative): Change either or to both and.
7740
7741 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
7742
7743         * config/aarch64/aarch64-simd-builtins.def: Add
7744         float_ml[as][q]_laneq builtin generator macros.
7745         * config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define.
7746         (aarch64_float_mla_laneq<mode>): Define.
7747         (aarch64_float_mls_laneq<mode>): Define.
7748         * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin
7749         instead of GCC vector extensions.
7750         (vmlaq_laneq_f32): Likewise.
7751         (vmls_laneq_f32): Likewise.
7752         (vmlsq_laneq_f32): Likewise.
7753
7754 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
7755
7756         * config/aarch64/aarch64-simd-builtins.def: Add
7757         float_ml[as]_lane builtin generator macros.
7758         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>):
7759         Rename to...
7760         (mul_lane<mode>3): This, and re-order arguments.
7761         (aarch64_float_mla_lane<mode>): Define.
7762         (aarch64_float_mls_lane<mode>): Define.
7763         * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin
7764         instead of GCC vector extensions.
7765         (vmlaq_lane_f32): Likewise.
7766         (vmls_lane_f32): Likewise.
7767         (vmlsq_lane_f32): Likewise.
7768
7769 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
7770
7771         * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as]
7772         builtin generator macros.
7773         * config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>):
7774         Define.
7775         (aarch64_float_mls<mode>): Define.
7776         * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin
7777         instead of relying on GCC vector extensions.
7778         (vmla_f64): Likewise.
7779         (vmlaq_f32): Likewise.
7780         (vmlaq_f64): Likewise.
7781         (vmls_f32): Likewise.
7782         (vmls_f64): Likewise.
7783         (vmlsq_f32): Likewise.
7784         (vmlsq_f64): Likewise.
7785         * config/aarch64/iterators.md: Define VDQF_DF mode iterator.
7786
7787 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
7788
7789         * config/aarch64/aarch64-simd-builtins.def: Add
7790         float_ml[as]_n_builtin generator macros.
7791         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>):
7792         Rename to...
7793         (mul_n<mode>3): This, and re-order arguments.
7794         (aarch64_float_mla_n<mode>): Define.
7795         (aarch64_float_mls_n<mode>): Define.
7796         * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin
7797         instead of inline asm.
7798         (vmlaq_n_f32): Likewise.
7799         (vmls_n_f32): Likewise.
7800         (vmlsq_n_f32): Likewise.
7801
7802 2021-04-30  Jonathan Wright  <joanthan.wright@arm.com>
7803
7804         * config/aarch64/aarch64-simd-builtins.def: Add pmull[2]
7805         builtin generator macros.
7806         * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define.
7807         (aarch64_pmull_hiv16qi_insn): Define.
7808         (aarch64_pmull_hiv16qi): Define.
7809         * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin
7810         instead of inline asm.
7811         (vmull_p8): Likewise.
7812
7813 2021-04-30  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
7814
7815         * config/avr/avr.md: Adjust peepholes to match and
7816         generate parallels with clobber of REG_CC.
7817         (mov<mode>_insn): Rename to mov<mode>_insn_split.
7818         (*mov<mode>_insn): Rename to mov<mode>_insn.
7819
7820 2021-04-30  David Edelsohn  <dje.gcc@gmail.com>
7821
7822         * varasm.c (use_blocks_for_decl_p): Don't use section anchors
7823         for VAR_DECLs if -fdata-sections enabled.
7824
7825 2021-04-30  Michael Meissner  <meissner@linux.ibm.com>
7826
7827         PR bootstrap/100327
7828         * config/rs6000/rs6000.c
7829         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
7830         (rs6000_libgcc_floating_mode_supported_p): New target hook.
7831
7832 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
7833
7834         * tree-ssa-threadbackward.c (class thread_jumps): Split out code
7835         from here...
7836         (class back_threader_registry): ...to here...
7837         (class back_threader_profitability): ...and here...
7838         (thread_jumps::thread_through_all_blocks): Remove argument.
7839         (back_threader_registry::back_threader_registry): New.
7840         (back_threader_registry::~back_threader_registry): New.
7841         (back_threader_registry::thread_through_all_blocks): New.
7842         (thread_jumps::profitable_jump_thread_path): Move from here...
7843         (back_threader_profitability::profitable_path_p): ...to here.
7844         (thread_jumps::find_taken_edge): New.
7845         (thread_jumps::convert_and_register_current_path): Move...
7846         (back_threader_registry::register_path): ...to here.
7847         (thread_jumps::register_jump_thread_path_if_profitable): Move...
7848         (thread_jumps::maybe_register_path): ...to here.
7849         (thread_jumps::handle_phi): Call find_taken_edge and
7850         maybe_register_path.
7851         (thread_jumps::handle_assignment): Same.
7852         (thread_jumps::fsm_find_control_statement_thread_paths): Remove
7853         tree argument to handle_phi and handle_assignment.
7854         (thread_jumps::find_jump_threads_backwards): Set m_name.  Remove
7855         set of m_speed_p and m_max_threaded_paths.
7856         (pass_thread_jumps::execute): Remove second argument from
7857         find_jump_threads_backwards.
7858         (pass_early_thread_jumps::execute): Same.
7859
7860 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
7861
7862         * tree-ssa-dom.c (class dom_jump_threader_simplifier): New.
7863         (class dom_opt_dom_walker): Initialize some class variables.
7864         (pass_dominator::execute): Pass evrp_range_analyzer and
7865         dom_jump_threader_simplifier to dom_opt_dom_walker.
7866         Adjust for some functions moving into classes.
7867         (simplify_stmt_for_jump_threading): Adjust and move to...
7868         (jump_threader_simplifier::simplify): ...here.
7869         (dom_opt_dom_walker::before_dom_children): Adjust for
7870         m_evrp_range_analyzer.
7871         (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack.
7872         (test_for_singularity): Place in dom_opt_dom_walker class.
7873         (dom_opt_dom_walker::optimize_stmt): The argument
7874         evrp_range_analyzer is now a class field.
7875         * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry.
7876         (thread_jumps::thread_through_all_blocks): New.
7877         (thread_jumps::convert_and_register_current_path): Use m_registry.
7878         (pass_thread_jumps::execute): Adjust for thread_through_all_blocks
7879         being in the threader class.
7880         (pass_early_thread_jumps::execute): Same.
7881         * tree-ssa-threadedge.c (threadedge_initialize_values): Move...
7882         (jump_threader::jump_threader): ...here.
7883         (threadedge_finalize_values): Move...
7884         (jump_threader::~jump_threader): ...here.
7885         (jump_threader::remove_jump_threads_including): New.
7886         (jump_threader::thread_through_all_blocks): New.
7887         (record_temporary_equivalences_from_phis): Move...
7888         (jump_threader::record_temporary_equivalences_from_phis): ...here.
7889         (record_temporary_equivalences_from_stmts_at_dest): Move...
7890         (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
7891         Here...
7892         (simplify_control_stmt_condition_1): Move to jump_threader class.
7893         (simplify_control_stmt_condition): Move...
7894         (jump_threader::simplify_control_stmt_condition): ...here.
7895         (thread_around_empty_blocks): Move...
7896         (jump_threader::thread_around_empty_blocks): ...here.
7897         (thread_through_normal_block): Move...
7898         (jump_threader::thread_through_normal_block): ...here.
7899         (thread_across_edge): Move...
7900         (jump_threader::thread_across_edge): ...here.
7901         (thread_outgoing_edges): Move...
7902         (jump_threader::thread_outgoing_edges): ...here.
7903         * tree-ssa-threadedge.h: Move externally facing functings...
7904         (class jump_threader): ...here...
7905         (class jump_threader_simplifier): ...and here.
7906         * tree-ssa-threadupdate.c (struct redirection_data): Remove comment.
7907         (jump_thread_path_allocator::jump_thread_path_allocator): New.
7908         (jump_thread_path_allocator::~jump_thread_path_allocator): New.
7909         (jump_thread_path_allocator::allocate_thread_edge): New.
7910         (jump_thread_path_allocator::allocate_thread_path): New.
7911         (jump_thread_path_registry::jump_thread_path_registry): New.
7912         (jump_thread_path_registry::~jump_thread_path_registry): New.
7913         (jump_thread_path_registry::allocate_thread_edge): New.
7914         (jump_thread_path_registry::allocate_thread_path): New.
7915         (dump_jump_thread_path): Make extern.
7916         (debug (const vec<jump_thread_edge *> &path)): New.
7917         (struct removed_edges): Move to tree-ssa-threadupdate.h.
7918         (struct thread_stats_d): Remove.
7919         (remove_ctrl_stmt_and_useless_edges): Make static.
7920         (lookup_redirection_data): Move...
7921         (jump_thread_path_registry::lookup_redirection_data): ...here.
7922         (ssa_redirect_edges): Make static.
7923         (thread_block_1): Move...
7924         (jump_thread_path_registry::thread_block_1): ...here.
7925         (thread_block): Move...
7926         (jump_thread_path_registry::thread_block): ...here.
7927         (thread_through_loop_header):  Move...
7928         (jump_thread_path_registry::thread_through_loop_header): ...here.
7929         (mark_threaded_blocks): Move...
7930         (jump_thread_path_registry::mark_threaded_blocks): ...here.
7931         (debug_path): Move...
7932         (jump_thread_path_registry::debug_path): ...here.
7933         (debug_all_paths): Move...
7934         (jump_thread_path_registry::dump): ..here.
7935         (rewire_first_differing_edge): Move...
7936         (jump_thread_path_registry::rewire_first_differing_edge): ...here.
7937         (adjust_paths_after_duplication): Move...
7938         (jump_thread_path_registry::adjust_paths_after_duplication): ...here.
7939         (duplicate_thread_path): Move...
7940         (jump_thread_path_registry::duplicate_thread_path): ..here.
7941         (remove_jump_threads_including): Move...
7942         (jump_thread_path_registry::remove_jump_threads_including): ...here.
7943         (thread_through_all_blocks): Move to...
7944         (jump_thread_path_registry::thread_through_all_blocks): ...here.
7945         (delete_jump_thread_path): Remove.
7946         (register_jump_thread): Move...
7947         (jump_thread_path_registry::register_jump_thread): ...here.
7948         * tree-ssa-threadupdate.h: Move externally facing functions...
7949         (class jump_thread_path_allocator): ...here...
7950         (class jump_thread_path_registry): ...and here.
7951         (thread_through_all_blocks): Remove.
7952         (struct removed_edges): New.
7953         (register_jump_thread): Remove.
7954         (remove_jump_threads_including): Remove.
7955         (delete_jump_thread_path): Remove.
7956         (remove_ctrl_stmt_and_useless_edges): Remove.
7957         (free_dom_edge_info): New prototype.
7958         * tree-vrp.c: Remove x_vr_values hack.
7959         (class vrp_jump_threader_simplifier): New.
7960         (vrp_jump_threader_simplifier::simplify): New.
7961         (vrp_jump_threader::vrp_jump_threader): Adjust method signature.
7962         Remove m_dummy_cond.
7963         Instantiate m_simplifier and m_threader.
7964         (vrp_jump_threader::thread_through_all_blocks): New.
7965         (vrp_jump_threader::simplify_stmt): Remove.
7966         (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond.
7967         Remove x_vr_values hack.
7968         (execute_vrp): Adjust for thread_through_all_blocks being in a
7969         class.
7970
7971 2021-04-30  Christophe Lyon  <christophe.lyon@linaro.org>
7972
7973         * genflags.c (gen_insn): Print failed expansion string.
7974
7975 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
7976
7977         * expr.c (alignment_for_piecewise_move): Call mode_for_size
7978         without limit to MAX_FIXED_MODE_SIZE.
7979
7980 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
7981
7982         PR middle-end/90773
7983         * builtins.c (builtin_memset_gen_str): Don't use return from
7984         simplify_gen_subreg.
7985
7986 2021-04-30  Uroš Bizjak  <ubizjak@gmail.com>
7987
7988         PR target/98060
7989         * config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern.
7990         (*addsi3_carry_zext_0r): Ditto.
7991         (*sub<mode>3_carry_0): Ditto.
7992         (*subsi3_carry_zext_0r): Ditto.
7993         * config/i386/predicates.md (ix86_carry_flag_unset_operator):
7994         New predicate.
7995         * config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>:
7996         Also consider ix86_carry_flag_unset_operator to calculate
7997         the cost of adc/sbb insn.
7998
7999 2021-04-30  Roman Zhuykov  <zhroma@ispras.ru>
8000
8001         PR rtl-optimization/100225
8002         PR rtl-optimization/84878
8003         * modulo-sched.c (sms_schedule): Use note_stores to skip loops
8004         where we have an instruction which touches (writes) any hard
8005         register from df->regular_block_artificial_uses set.
8006         Allow not-single-set instruction only right before basic block
8007         tail.
8008
8009 2021-04-30  Geng Qi  <gengqi@linux.alibaba.com>
8010
8011         * config/riscv/riscv.opt (march=,mabi=): Negative itself.
8012
8013 2021-04-30  LevyHsu  <admin@levyhsu.com>
8014
8015         * config/riscv/riscv.c (riscv_min_arithmetic_precision): New.
8016         * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New.
8017         * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New.
8018         (subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New.
8019
8020 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
8021
8022         * config.gcc: Merged x86 and x86_64 cpu_type-setting cases.
8023
8024 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
8025
8026         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to...
8027         (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this.  Enclose in do/while(0).
8028         * config/i386/i386.c: Adjust.
8029         * config/i386/i386.md: Adjust.
8030         * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop.
8031         * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8032         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8033         * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8034         * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8035         * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8036         * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8037         * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8038         * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8039         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8040         (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
8041
8042 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
8043
8044         * config/i386/i386-expand.c (ix86_expand_int_compare):
8045         Swap operands of GTU and LEU comparison to emit carry flag comparison.
8046         * config/i386/i386.md (*add<mode>3_carry_0): Change insn
8047         predicate to allow more combine opportunities with memory operands.
8048         (*sub<mode>3_carry_0): Ditto.
8049
8050 2021-04-29  Richard Sandiford  <richard.sandiford@arm.com>
8051
8052         PR rtl-optimization/100303
8053         * rtl-ssa/accesses.cc (function_info::make_use_available): Take a
8054         boolean that indicates whether the use will only be used in
8055         debug instructions.  Treat it in the same way that existing
8056         cross-EBB debug references would be handled if so.
8057         (function_info::make_uses_available): Likewise.
8058         * rtl-ssa/functions.h (function_info::make_uses_available): Update
8059         prototype accordingly.
8060         (function_info::make_uses_available): Likewise.
8061         * fwprop.c (try_fwprop_subst): Update call accordingly.
8062
8063 2021-04-29  Jeff Law  <jlaw@tachyum.com>
8064
8065         * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside
8066         of RTX_CODE guard.
8067
8068 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
8069             Richard Biener  <rguenther@suse.de>
8070
8071         PR target/100312
8072         * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD)
8073         (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256)
8074         (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD)
8075         (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256)
8076         (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS
8077         to PURE_ARGS category.
8078         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
8079         Handle PURE_ARGS category.
8080         * config/i386/i386-expand.c (ix86_expand_builtin): Ditto.
8081
8082 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
8083
8084         * configure.ac: Check for the presence of sys/locking.h header and
8085         for whether _LK_LOCK is supported by _locking.
8086         * configure: Regenerate.
8087         * config.in: Likewise.
8088         * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK.
8089         * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING.
8090         * system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H.
8091
8092 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
8093
8094         * config/i386/predicates.md (fcmov_comparison_operator):
8095         Do not check for trivial FP comparison operator.
8096         <case GEU, case LTU>: Allow CCGZmode.
8097         <case GTU, case LEU>: Do not allow CCCmode.
8098         (ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode.
8099         (ix86_carry_flag_operator): Match only LTU and UNLT code.
8100         Do not check for trivial FP comparison operator.  Allow CCGZmode.
8101
8102 2021-04-29  Tom de Vries  <tdevries@suse.de>
8103
8104         * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of
8105         fd->loop.step by either step or orig_step.
8106
8107 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
8108
8109         * config/sparc/sparc.c (gen_load_pcrel_sym): Delete.
8110         (load_got_register): Do the PIC dance here.
8111         (sparc_legitimize_tls_address): Simplify.
8112         (sparc_emit_probe_stack_range): Likewise.
8113         (sparc32_initialize_trampoline): Likewise.
8114         (sparc64_initialize_trampoline): Likewise.
8115         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker.
8116         (probe_stack_range<P:mode>): Likewise.
8117         (flush<P:mode>): Likewise.
8118         (tgd_hi22<P:mode>): Likewise.
8119         (tgd_lo10<P:mode>): Likewise.
8120         (tgd_add<P:mode>): Likewise.
8121         (tgd_call<P:mode>): Likewise.
8122         (tldm_hi22<P:mode>): Likewise.
8123         (tldm_lo10<P:mode>): Likewise.
8124         (tldm_add<P:mode>): Likewise.
8125         (tldm_call<P:mode>): Likewise.
8126         (tldo_hix22<P:mode>): Likewise.
8127         (tldo_lox10<P:mode>): Likewise.
8128         (tldo_add<P:mode>): Likewise.
8129         (tie_hi22<P:mode>): Likewise.
8130         (tie_lo10<P:mode>): Likewise.
8131         (tie_add<P:mode>): Likewise.
8132         (tle_hix22<P:mode>): Likewise.
8133         (tle_lox10<P:mode>): Likewise.
8134         (stack_protect_setsi): Rename to...
8135         (stack_protect_set32): ...this.
8136         (stack_protect_setdi): Rename to...
8137         (stack_protect_set64): ...this.
8138         (stack_protect_set): Adjust calls to above.
8139         (stack_protect_testsi): Rename to...
8140         (stack_protect_test32): ...this.
8141         (stack_protect_testdi): Rename to...
8142         (stack_protect_test64): ...this.
8143         (stack_protect_test): Adjust calls to above.
8144
8145 2021-04-29  H.J. Lu  <hjl.tools@gmail.com>
8146
8147         PR middle-end/90773
8148         * builtins.c (builtin_memcpy_read_str): Add a dummy argument.
8149         (builtin_strncpy_read_str): Likewise.
8150         (builtin_memset_read_str): Add an argument for the previous RTL
8151         information and generate the new RTL from the previous RTL info.
8152         (builtin_memset_gen_str): Likewise.
8153         * builtins.h (builtin_strncpy_read_str): Update the prototype.
8154         (builtin_memset_read_str): Likewise.
8155         * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p()
8156         returns true, round up size and alignment to the widest integer
8157         mode for maximum size.
8158         (pieces_addr::adjust): Add a pointer to by_pieces_prev argument
8159         and pass it to m_constfn.
8160         (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces.
8161         (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
8162         initialize m_push.  Initialize m_overlap_op_by_pieces with
8163         targetm.overlap_op_by_pieces_p ().
8164         (op_by_pieces_d::run): Pass the previous RTL information to
8165         pieces_addr::adjust and generate overlapping operations if
8166         m_overlap_op_by_pieces is true.
8167         (PUSHG_P): New.
8168         (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d
8169         change.
8170         (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d
8171         change.
8172         (can_store_by_pieces): Use by_pieces_constfn on constfun.
8173         (store_by_pieces): Use by_pieces_constfn on constfun.  Updated
8174         for op_by_pieces_d change.
8175         (clear_by_pieces_1): Add a dummy argument.
8176         (clear_by_pieces): Updated for op_by_pieces_d change.
8177         (compare_by_pieces_d::compare_by_pieces_d): Likewise.
8178         (string_cst_read_str): Add a dummy argument.
8179         * expr.h (by_pieces_constfn): Add a dummy argument.
8180         (by_pieces_prev): New.
8181         * target.def (overlap_op_by_pieces_p): New target hook.
8182         * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New.
8183         * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P.
8184         * doc/tm.texi: Regenerated.
8185
8186 2021-04-29  Richard Biener  <rguenther@suse.de>
8187
8188         PR tree-optimization/100253
8189         * tree-vect-stmts.c (vectorizable_load): Do not assume
8190         element alignment when DR_MISALIGNMENT is -1.
8191         (vectorizable_store): Likewise.
8192
8193 2021-04-29  Jakub Jelinek  <jakub@redhat.com>
8194
8195         PR target/100302
8196         * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
8197         absu_hwi instead of abs_hwi.
8198
8199 2021-04-29  Richard Biener  <rguenther@suse.de>
8200
8201         PR middle-end/38474
8202         * tree-ssa-structalias.c (add_graph_edge): Avoid direct
8203         forwarding when indirect forwarding through ESCAPED
8204         alread happens.
8205
8206 2021-04-29  Tom de Vries  <tdevries@suse.de>
8207
8208         PR target/100232
8209         * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC)
8210         (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED)
8211         (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY)
8212         (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to.
8213
8214 2021-04-29  Richard Biener  <rguenther@suse.de>
8215
8216         PR tree-optimization/99912
8217         * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New.
8218         (dse_dom_walker::todo): Likewise.
8219         (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the
8220         caller.
8221         (dse_dom_walker::before_dom_children): Remove trivially
8222         dead SSA defs and schedule CFG cleanup if we removed all
8223         PHIs in a block.
8224         (pass_dse::execute): Get TODO as computed by the DOM walker
8225         and return it.  Wipe dominator info earlier.
8226
8227 2021-04-29  Richard Biener  <rguenther@suse.de>
8228
8229         PR ipa/100308
8230         * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children):
8231         Track blocks to cleanup EH in new m_need_eh_cleanup.
8232         (ipcp_modif_dom_walker::cleanup_eh): New.
8233         (ipcp_transform_function): Release dominator info before
8234         doing EH cleanup.
8235
8236 2021-04-29  Martin Sebor  <msebor@redhat.com>
8237
8238         PR middle-end/100250
8239         * attribs.c (attr_access::array_as_string): Avoid dereferencing
8240         a pointer when it's null.
8241
8242 2021-04-29  Martin Sebor  <msebor@redhat.com>
8243
8244         * Makefile.in (OBJS): Add ipa-free-lang-data.o.
8245         * ipa-free-lang-data.cc: New file.
8246         * tree.c: Move pass free_lang_data to file above.
8247          (build_array_type_1): Declare extern.
8248         * tree.h (build_array_type_1): Declare.
8249
8250 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8251
8252         * config/aarch64/aarch64-simd-builtins.def: Modify comment to
8253         make consistent with updated RTL pattern.
8254         * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>):
8255         Implement using ss_truncate and us_truncate rather than
8256         unspecs.
8257         * config/aarch64/iterators.md: Remove redundant unspecs and
8258         iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.
8259
8260 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8261
8262         * config/aarch64/arm_acle.h (__attribute__): Make intrinsic
8263         attributes consistent with those defined in arm_neon.h.
8264
8265 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8266
8267         * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic
8268         attributes consistent with those defined in arm_neon.h.
8269
8270 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8271
8272         * config/aarch64/aarch64-simd-builtins.def: Add
8273         float_trunc_rodd builtin generator macros.
8274         * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df):
8275         Define.
8276         (aarch64_float_trunc_rodd_lo_v2sf): Define.
8277         (aarch64_float_trunc_rodd_hi_v4sf_le): Define.
8278         (aarch64_float_trunc_rodd_hi_v4sf_be): Define.
8279         (aarch64_float_trunc_rodd_hi_v4sf): Define.
8280         * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin
8281         instead of inline asm.
8282         (vcvtx_high_f32_f64): Likewise.
8283         (vcvtxd_f32_f64): Likewise.
8284         * config/aarch64/iterators.md: Add FCVTXN unspec.
8285
8286 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8287
8288         * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin
8289         generator macros.
8290         * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>):
8291         Define.
8292         * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin
8293         instead of inline asm.
8294         (vqtbx1_u8): Likewise.
8295         (vqtbx1_p8): Likewise.
8296         (vqtbx1q_s8): Likewise.
8297         (vqtbx1q_u8): Likewise.
8298         (vqtbx1q_p8): Likewise.
8299         (vtbx2_s8): Likewise.
8300         (vtbx2_u8): Likewise.
8301         (vtbx2_p8): Likewise.
8302
8303 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8304
8305         * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin
8306         generator macros.
8307         * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin
8308         instead of inline asm.
8309         (vqtbl1_s8): Likewise.
8310         (vqtbl1_u8): Likewise.
8311         (vqtbl1q_p8): Likewise.
8312         (vqtbl1q_s8): Likewise.
8313         (vqtbl1q_u8): Likewise.
8314         (vtbl1_s8): Likewise.
8315         (vtbl1_u8): Likewise.
8316         (vtbl1_p8): Likewise.
8317         (vtbl2_s8): Likewise.
8318         (vtbl2_u8): Likewise.
8319         (vtbl2_p8): Likewise.
8320
8321 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8322
8323         * config/aarch64/aarch64-simd-builtins.def: Add polynomial
8324         ssri_n buitin generator macro.
8325         * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin
8326         instead of inline asm.
8327         (vsri_n_p16): Likewise.
8328         (vsri_n_p64): Likewise.
8329         (vsriq_n_p8): Likewise.
8330         (vsriq_n_p16): Likewise.
8331         (vsriq_n_p64): Likewise.
8332
8333 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8334
8335         * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode
8336         iterator for polynomial ssli_n builtin generator macro.
8337         * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin
8338         instead of inline asm.
8339         (vsli_n_p16): Likewise.
8340         (vsliq_n_p8): Likewise.
8341         (vsliq_n_p16): Likewise.
8342         * config/aarch64/iterators.md: Define VALLP mode iterator.
8343
8344 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8345
8346         * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L
8347         iterator to generate [su]adalp RTL builtins.
8348         * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in
8349         [su]adalp RTL pattern.
8350         * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin
8351         instead of inline asm.
8352         (vpadal_u32): Likewise.
8353
8354 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8355
8356         * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp
8357         builtin generator macros.
8358         * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>):
8359         Define.
8360         * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin
8361         instead of inline asm.
8362         (vpaddl_s16): Likewise.
8363         (vpaddl_s32): Likewise.
8364         (vpaddl_u8): Likewise.
8365         (vpaddl_u16): Likewise.
8366         (vpaddl_u32): Likewise.
8367         (vpaddlq_s8): Likewise.
8368         (vpaddlq_s16): Likewise.
8369         (vpaddlq_s32): Likewise.
8370         (vpaddlq_u8): Likewise.
8371         (vpaddlq_u16): Likewise.
8372         (vpaddlq_u32): Liwewise.
8373         * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with
8374         appropriate attributes.
8375
8376 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8377
8378         * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator
8379         for aarch64_addp<mode> builtin macro generator.
8380         * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in
8381         aarch64_addp<mode> RTL pattern.
8382         * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin
8383         instead of inline asm.
8384         (vpaddq_s16): Likewise.
8385         (vpaddq_s32): Likewise.
8386         (vpaddq_s64): Likewise.
8387         (vpaddq_u8): Likewise.
8388         (vpaddq_u16): Likewise.
8389         (vpaddq_u32): Likewise.
8390         (vpaddq_u64): Likewise.
8391
8392 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8393
8394         * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n
8395         builtin generator macros.
8396         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>):
8397         Define.
8398         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin
8399         instead of inline asm.
8400         (vqdmulh_n_s32): Likewise.
8401         (vqdmulhq_n_s16): Likewise.
8402         (vqdmulhq_n_s32): Likewise.
8403         (vqrdmulh_n_s16): Likewise.
8404         (vqrdmulh_n_s32): Likewise.
8405         (vqrdmulhq_n_s16): Likewise.
8406         (vqrdmulhq_n_s32): Likewise.
8407
8408 2021-04-28  Tobias Burnus  <tobias@codesourcery.com>
8409
8410         * doc/install.texi (--enable-offload-defaulted): Document.
8411
8412 2021-04-28  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
8413
8414         * config/avr/avr-dimode.md: Turn existing patterns into
8415         define_insn_and_split style patterns where the splitter
8416         adds a clobber of the condition code register.  Drop "cc"
8417         attribute.  Add new patterns to match output of
8418         the splitters.
8419         * config/avr/avr-fixed.md: Likewise.
8420         * config/avr/avr.c (cc_reg_rtx): New.
8421         (avr_parallel_insn_from_insns): Adjust insn count
8422         for removal of set of cc0.
8423         (avr_is_casesi_sequence): Likewise.
8424         (avr_casei_sequence_check_operands): Likewise.
8425         (avr_optimize_casesi): Likewise. Also insert
8426         new insns after jump_insn.
8427         (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust
8428         for removal of set of cc0.
8429         (avr_init_expanders): Initialize cc_reg_rtx.
8430         (avr_regno_reg_class): Handle REG_CC.
8431         (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE.
8432         (avr_notice_update_cc): Remove function.
8433         (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE.
8434         (compare_condition): Adjust for PARALLEL with
8435         REG_CC clobber.
8436         (out_shift_with_cnt): Likewise.
8437         (ashlhi3_out): Likewise.
8438         (ashrhi3_out): Likewise.
8439         (lshrhi3_out): Likewise.
8440         (avr_class_max_nregs): Return single reg for REG_CC.
8441         (avr_compare_pattern): Check for REG_CC instead
8442         of cc0_rtx.
8443         (avr_reorg_remove_redundant_compare): Likewise.
8444         (avr_reorg):Adjust for PARALLEL with REG_CC clobber.
8445         (avr_hard_regno_nregs): Return single reg for REG_CC.
8446         (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC.
8447         (avr_md_asm_adjust): Clobber REG_CC.
8448         (TARGET_HARD_REGNO_NREGS): Define.
8449         (TARGET_CLASS_MAX_NREGS): Define.
8450         (TARGET_MD_ASM_ADJUST): Define.
8451         * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust
8452         for REG_CC.
8453         (enum reg_class): Add CC_REG class.
8454         (NOTICE_UPDATE_CC): Remove.
8455         (CC_OVERFLOW_UNUSABLE): Remove.
8456         (CC_NO_CARRY): Remove.
8457         * config/avr/avr.md: Turn existing patterns into
8458         define_insn_and_split style patterns where the splitter
8459         adds a clobber of the condition code register.  Drop "cc"
8460         attribute.  Add new patterns to match output of
8461         the splitters.
8462         (sez): Remove unused pattern.
8463
8464 2021-04-28  Richard Earnshaw  <rearnsha@arm.com>
8465
8466         PR target/100311
8467         * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
8468         used in HImode.
8469
8470 2021-04-28  Richard Sandiford  <richard.sandiford@arm.com>
8471
8472         PR target/100305
8473         * config/aarch64/constraints.md (Utq): Require the address to
8474         be valid for both the element mode and for V2DImode.
8475
8476 2021-04-28  Jakub Jelinek  <jakub@redhat.com>
8477             Tobias Burnus  <tobias@codesourcery.com>
8478
8479         * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
8480         * gcc.c (process_command): New variable.
8481         (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED,
8482         set it if -foffload is defaulted.
8483         * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
8484         (compile_offload_image): If OFFLOAD_DEFAULTED and
8485         OFFLOAD_TARGET_DEFAULT is in the environment, don't fail
8486         if corresponding mkoffload can't be found.
8487         (compile_images_for_offload_targets): Likewise.  Free and clear
8488         offload_names if no valid offload is found.
8489         * config.in: Regenerate.
8490         * configure: Regenerate.
8491
8492 2021-04-28  Richard Biener  <rguenther@suse.de>
8493
8494         PR tree-optimization/100292
8495         * tree-vect-generic.c (expand_vector_condition): Do not fold
8496         the comparisons.
8497
8498 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
8499
8500         * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
8501         * config/rs6000/aix64.opt (m64): New.
8502         (m32): New.
8503
8504 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
8505
8506         * config/vax/vax.c (print_operand_address, vax_address_cost_1)
8507         (index_term_p): Handle ASHIFT too.
8508
8509 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
8510
8511         * config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3.
8512         (sync_lock_test_and_set<mode>): Adjust accordingly.
8513         (sync_lock_release<mode>): Likewise.
8514
8515 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
8516
8517         * config/vax/vax-protos.h (adjacent_operands_p): Remove
8518         prototype.
8519         * config/vax/vax.c (adjacent_operands_p): Remove.
8520
8521 2021-04-27  Maciej W. Rozycki  <macro@linux-mips.org>
8522
8523         * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall
8524         through to the non-conditional execution case if getting the
8525         condition for conditional execution has failed.
8526
8527 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
8528
8529         PR middle-end/100284
8530         * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test.
8531         * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather
8532         than asserting on it.
8533
8534 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
8535
8536         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect
8537         with TARGET_AIX_OS.
8538
8539 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
8540
8541         PR target/94177
8542         * calls.c (precompute_register_parameters): Additionally test
8543         targetm.precompute_tls_p to pre-compute argument.
8544         * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define.
8545         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New.
8546         * target.def (precompute_tls_p): New.
8547         * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation.
8548         * doc/tm.texi: Regenerated.
8549
8550 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8551
8552         PR target/100200
8553         * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL
8554         back to HOST_WIDE_INT.
8555
8556 2021-04-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8557
8558         PR target/100106
8559         * simplify-rtx.c (simplify_context::simplify_subreg): Check the
8560         memory alignment for the outer mode.
8561
8562 2021-04-27  H.J. Lu  <hjl.tools@gmail.com>
8563
8564         PR middle-end/90773
8565         * expr.c (op_by_pieces_d::get_usable_mode): New member function.
8566         (op_by_pieces_d::run): Cange a while loop to a do-while loop.
8567
8568 2021-04-27  Alex Coplan  <alex.coplan@arm.com>
8569
8570         PR target/99977
8571         * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen
8572         with negative immediates: ensure we expand cbranchsi4_scratch
8573         correctly and ensure we satisfy its constraints.
8574         * config/arm/sync.md
8575         (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't
8576         attempt to tie two output operands together with constraints;
8577         collapse two alternatives.
8578         (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
8579         * config/arm/thumb1.md (cbranchsi4_neg_late): New.
8580
8581 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8582
8583         PR target/100200
8584         * config/aarch64/predicates.md (aarch64_sub_immediate,
8585         aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL.
8586         * config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise.
8587         * config/aarch64/aarch64.c (aarch64_print_operand,
8588         aarch64_split_atomic_op, aarch64_expand_subvti): Likewise.
8589
8590 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8591
8592         PR tree-optimization/100239
8593         * tree-vect-generic.c (lower_vec_perm): Don't accept constant
8594         permutations with all indices from the first zero element as vec_shl.
8595
8596 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8597
8598         PR rtl-optimization/100254
8599         * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
8600         last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.
8601
8602 2021-04-27  Richard Biener  <rguenther@suse.de>
8603
8604         PR tree-optimization/99912
8605         * passes.def: Add comment about new TODO_remove_unused_locals.
8606         * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals
8607         at start.
8608
8609 2021-04-27  Richard Biener  <rguenther@suse.de>
8610
8611         PR tree-optimization/99912
8612         * passes.def (pass_all_optimizations): Add pass_dse before
8613         the first pass_dce, move the first pass_dse before the
8614         pass_dce following pass_pre.
8615
8616 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8617
8618         PR tree-optimization/95527
8619         * generic-match-head.c: Include tm.h.
8620         * gimple-match-head.c: Include tm.h.
8621         * match.pd (CLZ == INTEGER_CST): Don't use
8622         #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO
8623         if clz == CFN_CLZ.  Add missing val declaration.
8624         (CTZ cmp CST): New simplifications.
8625
8626 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8627
8628         PR tree-optimization/96696
8629         * expr.c (expand_expr_divmod): New function.
8630         (expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and
8631         divisions.  Formatting fixes.
8632         <case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is
8633         cheaper.
8634
8635 2021-04-27  Martin Jambor  <mjambor@suse.cz>
8636
8637         PR ipa/99951
8638         * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
8639         If removing a call statement LHS SSA name, release it.
8640
8641 2021-04-27  Richard Earnshaw  <rearnsha@arm.com>
8642
8643         PR target/100236
8644         * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM
8645         is valid before including it in the mask.
8646
8647 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
8648
8649         PR target/100270
8650         * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle
8651         SVE attributes.
8652
8653 2021-04-27  Richard Biener  <rguenther@suse.de>
8654
8655         PR tree-optimization/100051
8656         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add
8657         disambiguator based on access size vs. decl size.
8658
8659 2021-04-27  Richard Biener  <rguenther@suse.de>
8660
8661         PR tree-optimization/100278
8662         * tree-ssa-pre.c (compute_avail): Give up when we cannot
8663         adjust TBAA beacuse of mismatching bases.
8664
8665 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8666
8667         PR target/99405
8668         * config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1):
8669         For any_rotate define_insn_split and following splitters, use
8670         SWI iterator instead of SWI48.
8671
8672 2021-04-27  Richard Biener  <rguenther@suse.de>
8673
8674         PR tree-optimization/99776
8675         * match.pd (bit_field_ref (ctor)): Relax element extract
8676         type compatibility checks.
8677
8678 2021-04-27  Cui,Lili  <lili.cui@intel.com>
8679
8680         * common/config/i386/i386-common.c (processor_names):
8681         Sync processor_names with processor_type.
8682         * config/i386/i386-options.c (processor_cost_table):
8683         Sync processor_cost_table with processor_type.
8684
8685 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8686
8687         * value-range.cc (irange::irange_set_1bit_anti_range): Add assert.
8688         (irange::set): Call irange_set_1bit_anti_range for handling all
8689         1-bit ranges.  Fall through on ~[MIN,MAX].
8690
8691 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8692
8693         * value-range.cc (irange::legacy_num_pairs): Remove.
8694         (irange::invert): Change gcc_assert to gcc_checking_assert.
8695         * value-range.h (irange::num_pairs): Adjust for a cached
8696         num_pairs().  Also, rename all gcc_assert's to
8697         gcc_checking_assert's.
8698
8699 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8700
8701         * value-range.cc (irange::operator=): Set m_kind.
8702         (irange::copy_to_legacy): Handle varying and undefined sources
8703         as a legacy copy since they can be easily copied.
8704         (irange::irange_set): Set m_kind.
8705         (irange::irange_set_anti_range): Same.
8706         (irange::set): Rename normalize_min_max to normalize_kind.
8707         (irange::verify_range): Adjust for multi-ranges having the
8708         m_kind field set.
8709         (irange::irange_union): Set m_kind.
8710         (irange::irange_intersect): Same.
8711         (irange::invert): Same.
8712         * value-range.h (irange::kind): Always return m_kind.
8713         (irange::varying_p): Rename to...
8714         (irange::varying_comptaible_p): ...this.
8715         (irange::undefined_p): Only look at m_kind.
8716         (irange::irange): Always set VR_UNDEFINED if applicable.
8717         (irange::set_undefined): Always set VR_UNDEFINED.
8718         (irange::set_varying): Always set m_kind to VR_VARYING.
8719         (irange::normalize_min_max): Rename to...
8720         (irange::normalize_kind): ...this.
8721
8722 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8723
8724         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
8725         Adjust for constant_p including varying_p.
8726         * tree-vrp.c (vrp_prop::finalize): Same.
8727         (determine_value_range): Same.
8728         * vr-values.c (vr_values::range_of_expr): Same.
8729         * value-range.cc (irange::symbolic_p): Do not check varying_p.
8730         (irange::constant_p): Same.
8731
8732 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8733
8734         * value-range.cc (irange::legacy_lower_bound): Replace
8735           !undefined_p check with num_ranges > 0.
8736         (irange::legacy_upper_bound): Same.
8737         * value-range.h (irange::type): Same.
8738         (irange::lower_bound): Same.
8739         (irange::upper_bound): Same.
8740
8741 2021-04-26  Richard Biener  <rguenther@suse.de>
8742
8743         PR tree-optimization/99956
8744         * gimple-loop-interchange.cc (compute_access_stride):
8745         Try instantiating the access in a shallower loop nest
8746         if instantiating failed.
8747         (compute_access_strides): Pass adjustable loop_nest
8748         to compute_access_stride.
8749
8750 2021-04-26  Christophe Lyon  <christophe.lyon@linaro.org>
8751
8752         * doc/sourcebuild.texi (arm_cmse_hw): Document.
8753
8754 2021-04-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8755
8756         * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF.
8757
8758 2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
8759             Nathan Sidwell  <nathan@codesourcery.com>
8760             Tom de Vries  <vries@codesourcery.com>
8761             Julian Brown  <julian@codesourcery.com>
8762             Kwok Cheung Yeung  <kcy@codesourcery.com>
8763
8764         * omp-offload.c (oacc_validate_dims): Implement
8765         '-Wopenacc-parallelism'.
8766         * doc/invoke.texi (-Wopenacc-parallelism): Document.
8767
8768 2021-04-26  Richard Biener  <rguenther@suse.de>
8769
8770         * tree-cfg.h (gimplify_build1): Remove.
8771         (gimplify_build2): Likewise.
8772         (gimplify_build3): Likewise.
8773         * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c.
8774         (gimplify_build2): Likewise.
8775         (gimplify_build3): Likewise.
8776         * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c.
8777         Modernize.
8778         (gimplify_build2): Likewise.
8779         (gimplify_build3): Likewise.
8780         (tree_vec_extract): Use resimplify with following SSA edges.
8781         (expand_vector_parallel): Avoid passing NULL size/bitpos
8782         to tree_vec_extract.
8783         * expr.c (store_constructor): Deal with zero-element CTORs.
8784         * match.pd (bit_field_ref <vector CTOR>): Make sure to
8785         produce vector constants when possible.
8786
8787 2021-04-26  Richard Biener  <rguenther@suse.de>
8788
8789         * tree-complex.c: Include gimple-fold.h.
8790         (expand_complex_addition): Use gimple_build.
8791         (expand_complex_multiplication_components): Likewise.
8792         (expand_complex_multiplication): Likewise.
8793         (expand_complex_div_straight): Likewise.
8794         (expand_complex_div_wide): Likewise.
8795         (expand_complex_division): Likewise.
8796         (expand_complex_conjugate): Likewise.
8797         (expand_complex_comparison): Likewise.
8798
8799 2021-04-26  Richard Biener  <rguenther@suse.de>
8800
8801         * tree-ssa-phiopt.c (two_value_replacement): Remove use
8802         of legacy gimplify_buildN API.
8803
8804 2021-04-26  Richard Biener  <rguenther@suse.de>
8805
8806         PR tree-optimization/99473
8807         * tree-ssa-phiopt.c (cond_store_replacement): Handle all
8808         stores.
8809
8810 2021-04-26  Richard Biener  <rguenther@suse.de>
8811
8812         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin):
8813         Use replace_call_with_value.
8814
8815 2021-04-26  Richard Biener  <rguenther@suse.de>
8816
8817         * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove.
8818         (update_gimple_call): Likewise.
8819         (update_call_from_tree): Likewise.
8820         * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove.
8821         (valid_gimple_call_p): Likewise.
8822         (move_ssa_defining_stmt_for_defs): Likewise.
8823         (finish_update_gimple_call): Likewise.
8824         (update_gimple_call): Likewise.
8825         (update_call_from_tree): Likewise.
8826         (propagate_tree_value_into_stmt): Use replace_call_with_value.
8827         * gimple-fold.h (update_gimple_call): Declare.
8828         * gimple-fold.c (valid_gimple_rhs_p): Move here from
8829         tree-ssa-propagate.c.
8830         (update_gimple_call): Likewise.
8831         (valid_gimple_call_p): Likewise.
8832         (finish_update_gimple_call): Likewise, and simplify.
8833         (gimplify_and_update_call_from_tree): Implement
8834         update_call_from_tree functionality, avoid excessive
8835         push/pop_gimplify_context.
8836         (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree.
8837         (gimple_fold_call): Likewise.
8838         * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise.
8839         * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise.
8840         (pass_fold_builtins::execute): Likewise.
8841         (optimize_stack_restore): Use replace_call_with_value.
8842         * tree-cfg.c (fold_loop_internal_call): Likewise.
8843         * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use
8844         only gimplify_and_update_call_from_tree.
8845         * tree-ssa-strlen.c (handle_builtin_strlen): Likewise.
8846         (handle_builtin_strchr): Likewise.
8847         * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h.
8848
8849 2021-04-26  Jakub Jelinek  <jakub@redhat.com>
8850
8851         PR debug/100255
8852         * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
8853         vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
8854         register keywords.
8855
8856 2021-04-25  liuhongt  <hongtao.liu@intel.com>
8857
8858         PR target/98911
8859         * config/i386/i386-builtin.def (BDESC): Change the icode of
8860         the following builtins to CODE_FOR_nothing.
8861         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold
8862         IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128,
8863         IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ,
8864         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
8865         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
8866         IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128,
8867         IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ,
8868         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
8869         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256.
8870         * config/i386/sse.md (avx2_eq<mode>3): Deleted.
8871         (sse2_eq<mode>3): Ditto.
8872         (sse4_1_eqv2di3): Ditto.
8873         (sse2_gt<mode>3): Rename to ..
8874         (*sse2_gt<mode>3): .. this.
8875
8876 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
8877
8878         Revert:
8879         2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
8880
8881         PR target/100152
8882         * config/darwin.c (darwin_binds_local_p): Assume that any
8883         public symbol might be interposed for PIC code. Update function
8884         header comment to reflect current Darwin capability.
8885
8886 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
8887
8888         PR target/100152
8889         * config/darwin.c (darwin_binds_local_p): Assume that any
8890         public symbol might be interposed for PIC code. Update function
8891         header comment to reflect current Darwin capability.
8892
8893 2021-04-24  Richard Sandiford  <richard.sandiford@arm.com>
8894
8895         * doc/sourcebuild.texi: Document no-opts and any-opts target
8896         selectors.
8897
8898 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
8899
8900         * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.
8901
8902 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
8903
8904         * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.
8905
8906 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
8907
8908         PR target/100041
8909         * config/i386/i386-options.c (ix86_option_override_internal):
8910         Error out when -m96bit-long-double is used with 64bit targets.
8911         * config/i386/i386.md (*pushxf_rounded): Remove pattern.
8912
8913 2021-04-23  Martin Liska  <mliska@suse.cz>
8914
8915         * lto-wrapper.c: Remove FIXME about usage of
8916         hardware_concurrency. The function is not on par with
8917         what we have now.
8918
8919 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
8920
8921         PR target/100182
8922         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
8923         Copy operand 3 to operand 4.  Use sse_reg_operand
8924         as operand 3 predicate.
8925         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
8926         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
8927         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
8928         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
8929         Copy operand 1 to operand 0.
8930         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
8931         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
8932         (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.
8933
8934 2021-04-23  Alex Coplan  <alex.coplan@arm.com>
8935
8936         PR rtl-optimization/100230
8937         * early-remat.c (early_remat::sort_candidates): Use delete[]
8938         instead of delete for array allocated with new[].
8939
8940 2021-04-23  Richard Biener  <rguenther@suse.de>
8941
8942         * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing.
8943         (capture_info::capture_info): Likewise.
8944         (capture_info::walk_match): Likewise.
8945         (expr::gen_transform): Likewise.
8946         (dt_simplify::gen_1): Likewise.
8947         * gimple-match-head.c (maybe_resimplify_conditional_op):
8948         Remove VEC_COND_EXPR special-casing.
8949         (gimple_simplify): Likewise.
8950         * gimple.c (gimple_could_trap_p_1): Adjust.
8951         * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR
8952         to participate in PRE.
8953
8954 2021-04-23  Richard Biener  <rguenther@suse.de>
8955
8956         * cfganal.c (connect_infinite_loops_to_exit): First call
8957         add_noreturn_fake_exit_edges.
8958         * ipa-sra.c (process_scan_results): Do not call the now redundant
8959         add_noreturn_fake_exit_edges.
8960         * predict.c (tree_estimate_probability): Likewise.
8961         (rebuild_frequencies): Likewise.
8962         * store-motion.c (one_store_motion_pass): Likewise.
8963
8964 2021-04-23  Richard Biener  <rguenther@suse.de>
8965
8966         PR tree-optimization/100222
8967         * predict.c (pass_profile::execute): Remove redundant call to
8968         mark_irreducible_loops.
8969         (report_predictor_hitrates): Likewise.
8970
8971 2021-04-23  Richard Biener  <rguenther@suse.de>
8972
8973         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
8974         valid_gimple_rhs_p by instead gimplifying to one.
8975
8976 2021-04-23  Richard Biener  <rguenther@suse.de>
8977
8978         PR tree-optimization/99971
8979         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
8980         Always use TBAA for loads.
8981
8982 2021-04-23  liuhongt  <hongtao.liu@intel.com>
8983
8984         PR target/100093
8985         * config/i386/i386-options.c (ix86_option_override_internal):
8986         Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags
8987         when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled
8988         by target attribute.
8989
8990 2021-04-23  David Edelsohn  <dje.gcc@gmail.com>
8991
8992         * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to
8993         DWARF2_DEBUG.
8994         * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same.
8995
8996 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
8997
8998         * config.gcc (powerpc-ibm-aix6.*): Remove.
8999         * config/rs6000/aix61.h: Delete.
9000
9001 2021-04-22  Martin Liska  <mliska@suse.cz>
9002
9003         PR testsuite/100159
9004         PR testsuite/100192
9005         * builtins.c (expand_builtin): Fix typos and missing comments.
9006         * dwarf2out.c (gen_subprogram_die): Likewise.
9007         (gen_struct_or_union_type_die): Likewise.
9008
9009 2021-04-22  Uroš Bizjak  <ubizjak@gmail.com>
9010
9011         PR target/100119
9012         * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse):
9013         Remove the sign with FE_DOWNWARD, where x - x = -0.0.
9014
9015 2021-04-21  Iain Sandoe  <iain@sandoe.co.uk>
9016
9017         * config/i386/darwin.h (TARGET_64BIT): Remove definition
9018         based on TARGET_ISA_64BIT.
9019         (TARGET_64BIT_P): Remove definition based on
9020         TARGET_ISA_64BIT_P().
9021
9022 2021-04-21  Martin Liska  <mliska@suse.cz>
9023
9024         Revert:
9025         2021-04-21  Martin Liska  <mliska@suse.cz>
9026
9027         * lto-wrapper.c (cpuset_popcount): Remove.
9028         (init_num_threads): Remove and use hardware_concurrency.
9029
9030 2021-04-21  Martin Liska  <mliska@suse.cz>
9031
9032         PR jit/98615
9033         * main.c (main): Call toplev::finalize in CHECKING_P mode.
9034         * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL
9035         when incremental LTO linking happens.
9036
9037 2021-04-21  Martin Liska  <mliska@suse.cz>
9038
9039         * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the
9040         makeserver cannot be detected, then use -flto=N fallback.
9041
9042 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
9043
9044         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling,
9045         default to yes for aarch64-linux-gnu.
9046         * configure: Regenerate.
9047
9048 2021-04-21  Martin Liska  <mliska@suse.cz>
9049
9050         * lto-wrapper.c (cpuset_popcount): Remove.
9051         (init_num_threads): Remove and use hardware_concurrency.
9052
9053 2021-04-21  Martin Liska  <mliska@suse.cz>
9054
9055         * config/i386/i386.c: Remove superfluous || TARGET_MACHO
9056         which remains to be '(... || 0)' and clang complains about it.
9057         * dwarf2out.c (AT_vms_delta): Declare conditionally.
9058         (add_AT_vms_delta): Likewise.
9059         * tree.c (fld_simplified_type): Use rather more common pattern
9060         for disabling of something (#if 0).
9061         (get_tree_code_name): Likewise.
9062         (verify_type_variant): Likewise.
9063
9064 2021-04-21  Martin Liska  <mliska@suse.cz>
9065
9066         * config/i386/i386-expand.c (decide_alignment): Use newly named
9067         macro TARGET_CPU_P.
9068         * config/i386/i386.c (ix86_decompose_address): Likewise.
9069         (ix86_address_cost): Likewise.
9070         (ix86_lea_outperforms): Likewise.
9071         (ix86_avoid_lea_for_addr): Likewise.
9072         (ix86_add_stmt_cost): Likewise.
9073         * config/i386/i386.h (TARGET_*): Remove.
9074         (TARGET_CPU_P): New macro.
9075         * config/i386/i386.md: Use newly named macro TARGET_CPU_P.
9076         * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise.
9077         (swap_top_of_ready_list): Likewise.
9078         (ix86_atom_sched_reorder): Likewise.
9079         * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise.
9080         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise.
9081
9082 2021-04-21  Martin Liska  <mliska@suse.cz>
9083
9084         * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P):
9085         Define.
9086         (SET_TARGET_NO_SAHF): Likewise.
9087         (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise.
9088         (SET_TARGET_PREFETCH_SSE): Likewise.
9089         (TARGET_EXPLICIT_NO_TUNE_P): Likewise.
9090         (SET_TARGET_NO_TUNE): Likewise.
9091         (TARGET_EXPLICIT_NO_80387_P): Likewise.
9092         (SET_TARGET_NO_80387): Likewise.
9093         (DEF_PTA): New.
9094         * config/i386/i386.h (TARGET_*): Remove.
9095         * opth-gen.awk: Generate new used macros.
9096
9097 2021-04-21  Martin Liska  <mliska@suse.cz>
9098
9099         * config/i386/i386.h (PTA_*): Remove.
9100         (enum pta_flag): New.
9101         (DEF_PTA): Generate PTA_* values from i386-isa.def.
9102         * config/i386/i386-isa.def: New file.
9103
9104 2021-04-21  Alex Coplan  <alex.coplan@arm.com>
9105
9106         PR target/99988
9107         * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
9108         (rest_of_insert_bti): Avoid inserting duplicate bti j insns for
9109         jump table targets.
9110
9111 2021-04-21  H.J. Lu  <hjl.tools@gmail.com>
9112
9113         * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and
9114         x86_64-*-* targets.
9115         * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET):
9116         New.
9117         (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise.
9118         (ix86_handle_option): Handle -mmwait.
9119         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
9120         Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on
9121         __builtin_ia32_monitor and __builtin_ia32_mwait.
9122         * config/i386/i386-options.c (isa2_opts): Add -mmwait.
9123         (ix86_valid_target_attribute_inner_p): Likewise.
9124         (ix86_option_override_internal): Enable mwait/monitor
9125         instructions for -msse3.
9126         * config/i386/i386.h (TARGET_MWAIT): New.
9127         (TARGET_MWAIT_P): Likewise.
9128         * config/i386/i386.opt: Add -mmwait.
9129         * config/i386/mwaitintrin.h: New file.
9130         * config/i386/pmmintrin.h: Include <mwaitintrin.h>.
9131         * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with
9132         TARGET_MWAIT.
9133         (@sse3_monitor_<mode>): Likewise.
9134         * config/i386/x86gprintrin.h: Include <mwaitintrin.h>.
9135         * doc/extend.texi: Document mwait target attribute.
9136         * doc/invoke.texi: Document -mmwait.
9137
9138 2021-04-21  Martin Liska  <mliska@suse.cz>
9139
9140         * config/i386/i386-options.c (DEF_ENUM): Remove it.
9141         * config/i386/i386-opts.h (DEF_ENUM): Likewise.
9142         * config/i386/stringop.def (DEF_ENUM): Likewise.
9143
9144 2021-04-21  Martin Liska  <mliska@suse.cz>
9145
9146         * tree-cfg.c (gimple_verify_flow_info): Use qD instead
9147         of print_generic_expr.
9148
9149 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
9150
9151         PR rtl-optimization/100148
9152         * cprop.c (constprop_register): Use next_nondebug_insn instead of
9153         NEXT_INSN.
9154
9155 2021-04-21  Martin Liska  <mliska@suse.cz>
9156
9157         PR ipa/98815
9158         * cgraphunit.c (cgraph_node::analyze): Remove duplicate
9159         free_dominance_info calls.
9160
9161 2021-04-21  Richard Biener  <rguenther@suse.de>
9162
9163         * gimple-fold.c (maybe_fold_reference): Remove is_lhs
9164         parameter (and assume it to be false).
9165         (fold_gimple_assign): Adjust, remove all callers of
9166         maybe_fold_reference calling it with is_lhs true.
9167         (gimple_fold_call): Likewise.
9168         (fold_stmt_1): Likewise.
9169
9170 2021-04-21  Richard Biener  <rguenther@suse.de>
9171
9172         * fold-const.c (pedantic_non_lvalue_loc): Remove.
9173         (fold_binary_loc): Adjust.
9174         (fold_ternary_loc): Likewise.
9175
9176 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
9177
9178         PR middle-end/100130
9179         * varasm.c (get_block_for_decl): Make sure that any use of the
9180         retain attribute matches the section's retain flag.
9181         (switch_to_section): Check for retain mismatches even when
9182         changing sections, but do not warn if the given decl is the
9183         section's named.decl.
9184         (output_object_block): Pass the first decl in the block (if any)
9185         to switch_to_section.
9186
9187 2021-04-20  H.J. Lu  <hjl.tools@gmail.com>
9188
9189         * config/i386/i386-c.c (ix86_target_macros_internal): Define
9190         __CRC32__ for -mcrc32.
9191         * config/i386/i386-options.c (ix86_option_override_internal):
9192         Enable crc32 instruction for -msse4.2.
9193         * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2
9194         check.
9195         (sse4_2_crc32di): Likewise.
9196         * config/i386/ia32intrin.h: Use crc32 target option for CRC32
9197         intrinsics.
9198
9199 2021-04-20  Segher Boessenkool  <segher@kernel.crashing.org>
9200
9201         PR target/100108
9202         * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
9203         OPTION_MASK_ISEL.
9204
9205 2021-04-20  Martin Liska  <mliska@suse.cz>
9206
9207         * doc/invoke.texi: Fix typo.
9208         * params.opt: Likewise.
9209
9210 2021-04-20  Martin Liska  <mliska@suse.cz>
9211
9212         * doc/invoke.texi: Document new param.
9213
9214 2021-04-19  Andrew MacLeod  <amacleod@redhat.com>
9215
9216         PR tree-optimization/100081
9217         * gimple-range-cache.h (ranger_cache): Inherit from gori_compute
9218         rather than gori_compute_cache.
9219         * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
9220         (range_def_chain::m_logical_depth): New member.
9221         (range_def_chain::range_def_chain): Initialize m_logical_depth.
9222         (range_def_chain::get_def_chain): Don't build defchains through more
9223         than LOGICAL_LIMIT logical expressions.
9224         * params.opt (param_ranger_logical_depth): New.
9225
9226 2021-04-19  Richard Earnshaw  <rearnsha@arm.com>
9227
9228         PR target/100067
9229         * config/arm/arm.c (arm_configure_build_target): Do not strip
9230         extended FPU/SIMD feature bits from the target ISA when -mfpu
9231         is specified (partial revert of r11-8168).
9232
9233 2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>
9234
9235         * params.opt (-param=openacc-kernels=): Add.
9236         * omp-oacc-kernels-decompose.cc
9237         (pass_omp_oacc_kernels_decompose::gate): Use it.
9238         * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
9239         (--param): ... here, 'openacc-kernels'.
9240
9241 2021-04-19  Martin Liska  <mliska@suse.cz>
9242
9243         PR c/100143
9244         * gengtype.c (finish_root_table): Align function arguments
9245         in between declaration and definition.
9246
9247 2021-04-19  Eric Botcazou  <ebotcazou@adacore.com>
9248
9249         * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
9250         frames larger than the SEH maximum frame size.
9251
9252 2021-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
9253
9254         PR rtl-optimization/99927
9255         * combine.c (distribute_notes) [REG_UNUSED]: If the register already
9256         is dead, just drop it.
9257
9258 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
9259
9260         PR d/99914
9261         * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
9262         * doc/tm.texi: Regenerate.
9263         * doc/tm.texi.in (D language and ABI): Add @hook for
9264         TARGET_D_TEMPLATES_ALWAYS_COMDAT.
9265
9266 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
9267
9268         * config/darwin-d.c (darwin_d_handle_target_object_format): New
9269         function.
9270         (darwin_d_register_target_info): New function.
9271         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9272         * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
9273         function.
9274         (dragonfly_d_register_target_info): New function.
9275         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9276         * config/freebsd-d.c (freebsd_d_handle_target_object_format): New
9277         function.
9278         (freebsd_d_register_target_info): New function.
9279         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9280         * config/glibc-d.c (glibc_d_handle_target_object_format): New
9281         function.
9282         (glibc_d_register_target_info): New function.
9283         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9284         * config/i386/i386-d.c (ix86_d_handle_target_object_format): New
9285         function.
9286         (ix86_d_register_target_info): Add ix86_d_handle_target_object_format
9287         as handler for objectFormat key.
9288         * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
9289         function.
9290         (winnt_d_register_target_info): New function.
9291         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9292         * config/netbsd-d.c (netbsd_d_handle_target_object_format): New
9293         function.
9294         (netbsd_d_register_target_info): New function.
9295         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9296         * config/openbsd-d.c (openbsd_d_handle_target_object_format): New
9297         function.
9298         (openbsd_d_register_target_info): New function.
9299         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9300         * config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
9301         (pa_d_register_target_info): Add pa_d_handle_target_object_format as
9302         handler for objectFormat key.
9303         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
9304         function.
9305         (rs6000_d_register_target_info): Add
9306         rs6000_d_handle_target_object_format as handler for objectFormat key.
9307         * config/sol2-d.c (solaris_d_handle_target_object_format): New
9308         function.
9309         (solaris_d_register_target_info): New function.
9310         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9311
9312 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
9313
9314         PR target/91710
9315         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
9316         abi_break argument from bool * to unsigned *, store there the pre-GCC 9
9317         alignment.
9318         (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
9319         (aarch64_function_arg_regno_p): Likewise.  Only emit -Wpsabi note if
9320         the old and new alignment after applying MIN/MAX to it is different.
9321
9322 2021-04-16  Tamar Christina  <tamar.christina@arm.com>
9323
9324         PR target/100048
9325         * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
9326         * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
9327         TRN optab.
9328         * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
9329
9330 2021-04-16  Bill Schmidt  <wschmidt@linux.ibm.com>
9331
9332         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
9333         this section and its subsections.
9334
9335 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
9336
9337         PR target/100075
9338         * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
9339         define_insn patterns.
9340
9341 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
9342
9343         PR rtl-optimization/98689
9344         * reg-notes.def (UNTYPED_CALL): New note.
9345         * combine.c (distribute_notes): Handle it.
9346         * emit-rtl.c (try_split): Likewise.
9347         * rtlanal.c (rtx_properties::try_to_add_insn): Likewise.  Assume
9348         that calls with the note implicitly set all return value registers.
9349         * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL
9350         to untyped_calls.
9351
9352 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
9353
9354         PR rtl-optimization/99596
9355         * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global
9356         register accesses for const calls.  Assume that pure functions
9357         can only read from global registers.  Ignore cases in which
9358         the stack pointer has been marked global.
9359
9360 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
9361
9362         PR target/99767
9363         * tree-vect-loop.c (vect_transform_loop): Don't remove just
9364         dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
9365         them by their last argument.
9366
9367 2021-04-15  Martin Liska  <mliska@suse.cz>
9368
9369         * doc/invoke.texi: Other params don't use it, remove it.
9370
9371 2021-04-15  Richard Biener  <rguenther@suse.de>
9372
9373         * gimple-builder.h: Add deprecation note.
9374
9375 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
9376
9377         PR c++/98852
9378         * attribs.h (restrict_type_identity_attributes_to): Declare.
9379         * attribs.c (restrict_type_identity_attributes_to): New function.
9380
9381 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
9382
9383         PR c/98852
9384         * attribs.h (affects_type_identity_attributes): Declare.
9385         * attribs.c (remove_attributes_matching): New function.
9386         (affects_type_identity_attributes): Likewise.
9387
9388 2021-04-15  Jakub Jelinek  <jakub@redhat.com>
9389
9390         PR target/100056
9391         * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3):
9392         Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with
9393         ZERO_EXTEND, SIGN_EXTEND or AND.
9394
9395 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
9396
9397         PR rtl-optimization/99929
9398         * rtl.h (same_vector_encodings_p): New function.
9399         * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
9400         * cselib.c (rtx_equal_for_cselib_1): Likewise.
9401         * jump.c (rtx_renumbered_equal_p): Likewise.
9402         * lra-constraints.c (operands_match_p): Likewise.
9403         * reload.c (operands_match_p): Likewise.
9404         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
9405
9406 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
9407
9408         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
9409         more information about variable-length CONST_VECTORs.
9410
9411 2021-04-14  Vladimir N. Makarov  <vmakarov@redhat.com>
9412
9413         PR rtl-optimization/100066
9414         * lra-constraints.c (split_reg): Check paradoxical_subreg_p for
9415         ordered modes when choosing splitting mode for hard reg.
9416
9417 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
9418
9419         PR target/99246
9420         * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
9421         New function.
9422         (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
9423
9424 2021-04-14  Andreas Krebbel  <krebbel@linux.ibm.com>
9425
9426         * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros
9427         for mask operand types.
9428         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
9429         (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate
9430         operand.
9431         (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
9432         immediate operand.
9433         * config/s390/s390.c (s390_const_operand_ok): Check the new
9434         operand types and generate a list of valid values.
9435
9436 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
9437
9438         * doc/tm.texi: Regenerate.
9439         * doc/tm.texi.in (D language and ABI): Add @hook for
9440         TARGET_D_REGISTER_OS_TARGET_INFO.
9441
9442 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
9443
9444         * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
9445         function.
9446         (aarch64_d_register_target_info): New function.
9447         * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
9448         Declare.
9449         * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
9450         Define.
9451         * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function.
9452         (arm_d_register_target_info): New function.
9453         * config/arm/arm-protos.h (arm_d_register_target_info): Declare.
9454         * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9455         * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function.
9456         (ix86_d_register_target_info): New function.
9457         * config/i386/i386-protos.h (ix86_d_register_target_info): Declare.
9458         * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9459         * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function.
9460         (mips_d_register_target_info): New function.
9461         * config/mips/mips-protos.h (mips_d_register_target_info): Declare.
9462         * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9463         * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function.
9464         (pa_d_register_target_info): New function.
9465         * config/pa/pa-protos.h (pa_d_register_target_info): Declare.
9466         * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9467         * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New
9468         function.
9469         (riscv_d_register_target_info): New function.
9470         * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare.
9471         * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9472         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New
9473         function.
9474         (rs6000_d_register_target_info): New function.
9475         * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
9476         Declare.
9477         * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9478         * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function.
9479         (s390_d_register_target_info): New function.
9480         * config/s390/s390-protos.h (s390_d_register_target_info): Declare.
9481         * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9482         * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New
9483         function.
9484         (sparc_d_register_target_info): New function.
9485         * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare.
9486         * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9487         * doc/tm.texi: Regenerate.
9488         * doc/tm.texi.in (D language and ABI): Add @hook for
9489         TARGET_D_REGISTER_CPU_TARGET_INFO.
9490
9491 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
9492
9493         * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function.
9494         * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare.
9495         * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define.
9496         * doc/tm.texi: Regenerate.
9497         * doc/tm.texi.in (D language and ABI): Add @hook for
9498         TARGET_D_HAS_STDCALL_CONVENTION.
9499
9500 2021-04-14  Richard Biener  <rguenther@suse.de>
9501
9502         * tree-cfg.c (verify_gimple_assign_ternary): Verify that
9503         VEC_COND_EXPRs have a gimple_val condition.
9504         * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR
9505         can no longer have a GENERIC condition.
9506
9507 2021-04-14  Richard Earnshaw  <rearnsha@arm.com>
9508
9509         PR target/100067
9510         * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits
9511         from the isa_delta when -mfpu has been used.
9512         (arm_options_perform_arch_sanity_checks): It's the architecture that
9513         lacks an FPU not the processor.
9514
9515 2021-04-13  Richard Biener  <rguenther@suse.de>
9516
9517         PR tree-optimization/100053
9518         * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
9519         not use optimistic dominance queries for backedges to validate
9520         predicated values.
9521         (dominated_by_p_w_unex): Add parameter to ignore executable
9522         state on backedges.
9523         (rpo_elim::eliminate_avail): Adjust.
9524
9525 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
9526
9527         PR target/100028
9528         * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
9529         *aarch64_bfxilsi_extrdi): New define_insn patterns.
9530
9531 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
9532
9533         PR target/99648
9534         * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P
9535         outermode, return NULL if the result doesn't encode back to the
9536         original byte sequence.
9537         (simplify_gen_subreg): Don't create SUBREGs from constants to
9538         MODE_COMPOSITE_P outermode.
9539
9540 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
9541
9542         PR rtl-optimization/99905
9543         * combine.c (expand_compound_operation): If pos + len > modewidth,
9544         perform the right shift by pos in inner_mode and then convert to mode,
9545         instead of trying to simplify a shift of rtx with inner_mode by pos
9546         as if it was a shift in mode.
9547
9548 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
9549
9550         PR debug/99830
9551         * combine.c (simplify_and_const_int_1): Don't optimize varop
9552         away if it has side-effects.
9553
9554 2021-04-12  Martin Liska  <mliska@suse.cz>
9555
9556         * doc/extend.texi: Escape @smallexample content.
9557
9558 2021-04-12  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
9559
9560         * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
9561           alternative in order to load a DFP zero.
9562
9563 2021-04-12  Martin Liska  <mliska@suse.cz>
9564
9565         * doc/extend.texi: Be more precise in documentation
9566         of symver attribute.
9567
9568 2021-04-12  Martin Liska  <mliska@suse.cz>
9569
9570         PR sanitizer/99877
9571         * gimplify.c (gimplify_expr): Right now, we unpoison all
9572         variables before a goto <dest>. We should not do it if we are
9573         in a omp context.
9574
9575 2021-04-12  Cui,Lili  <lili.cui@intel.com>
9576
9577         * common/config/i386/cpuinfo.h (get_intel_cpu): Handle
9578         rocketlake.
9579         * common/config/i386/i386-common.c (processor_names): Add
9580         rocketlake.
9581         (processor_alias_table): Add rocketlake.
9582         * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add
9583         INTEL_COREI7_ROCKETLAKE.
9584         * config.gcc: Add -march=rocketlake.
9585         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
9586         rocketlake.
9587         * config/i386/i386-options.c (m_ROCKETLAKE)  : Define.
9588         (processor_cost_table): Add rocketlake cost.
9589         * config/i386/i386.h (ix86_size_cost) : Define
9590         TARGET_ROCKETLAKE.
9591         (processor_type) : Add PROCESSOR_ROCKETLAKE.
9592         (PTA_ROCKETLAKE): Ditto.
9593         * doc/extend.texi: Add rocketlake.
9594         * doc/invoke.texi: Add rocketlake.
9595
9596 2021-04-12  Cui,Lili  <lili.cui@intel.com>
9597
9598         * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list.
9599         * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE.
9600         * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model.
9601         * doc/invoke.texi: Change alderlake ISA list.
9602
9603 2021-04-11  Hafiz Abid Qadeer  <abidh@codesourcery.com>
9604
9605         PR middle-end/98088
9606         * omp-expand.c (expand_oacc_collapse_init): Update condition in
9607         a gcc_assert.
9608
9609 2021-04-10  H.J. Lu  <hjl.tools@gmail.com>
9610
9611         PR target/99744
9612         * config/i386/serializeintrin.h (_serialize): Defined as macro.
9613
9614 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
9615
9616         PR lto/99849
9617         * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
9618         just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
9619
9620 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
9621
9622         PR middle-end/99989
9623         * gimple-ssa-warn-alloca.c
9624         (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to
9625         0 with integer precision unconditionally.
9626
9627 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
9628
9629         PR rtl-optimization/98601
9630         * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
9631         not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
9632         unaligned_mems handle VOIDmode like BLKmode.
9633
9634 2021-04-10  Jan Hubicka  <hubicka@ucw.cz>
9635
9636         PR lto/99857
9637         * tree.c (free_lang_data_in_decl): Do not release body of
9638         declare_variant_alt.
9639
9640 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
9641
9642         * config/aarch64/aarch64.c (aarch64_option_restore): If the
9643         architecture was specified explicitly and the tuning wasn't,
9644         tune for the architecture rather than the configured default CPU.
9645
9646 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
9647
9648         * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
9649         as the temporary register.
9650
9651 2021-04-09  Martin Liska  <mliska@suse.cz>
9652
9653         * doc/extend.texi: Move non-target attributes on the top level.
9654
9655 2021-04-09  Martin Liska  <mliska@suse.cz>
9656
9657         * doc/invoke.texi: Document minimum and maximum value of the
9658         argument for both supported compression algorithms.
9659
9660 2021-04-08  David Edelsohn  <dje.gcc@gmail.com>
9661
9662         * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select
9663         TLS BSS before TLS data.
9664         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm.
9665
9666 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
9667
9668         * doc/sourcebuild.texi (stdint_types_mbig_endian): Document.
9669
9670 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
9671
9672         * match.pd: Extend vec_cond folds to handle shifts.
9673
9674 2021-04-08  Maciej W. Rozycki  <macro@orcam.me.uk>
9675
9676         * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
9677         peephole.
9678
9679 2021-04-08  Alex Coplan  <alex.coplan@arm.com>
9680
9681         PR target/99647
9682         * config/arm/iterators.md (MVE_vecs): New.
9683         (V_elem): Also handle V2DF.
9684         * config/arm/mve.md (*mve_mov<mode>): Rename to ...
9685         (*mve_vdup<mode>): ... this. Remove second alternative since
9686         vec_duplicate of const_int is not canonical RTL, and we don't
9687         want to match symbol_refs.
9688         (*mve_vec_duplicate<mode>): Delete (pattern is redundant).
9689
9690 2021-04-08  Xionghu Luo  <luoxhu@linux.ibm.com>
9691
9692         * fold-const.c (fold_single_bit_test): Fix typo.
9693         * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
9694         instead.
9695
9696 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
9697
9698         PR tree-optimization/97513
9699         * tree-vect-slp.c (vect_add_slp_permutation): New function,
9700         split out from...
9701         (vectorizable_slp_permutation): ...here.  Detect cases in which
9702         all VEC_PERM_EXPRs are guaranteed to have the same stepped
9703         permute vector and only generate one permute vector for that case.
9704         Extend that case to handle variable-length vectors.
9705
9706 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
9707
9708         PR tree-optimization/99873
9709         * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function.
9710         (vect_build_slp_instance): Don't split store groups that could
9711         use IFN_STORE_LANES.
9712
9713 2021-04-07  Jakub Jelinek  <jakub@redhat.com>
9714
9715         PR target/99872
9716         * varasm.c (output_constant_pool_contents): Don't strip name encoding
9717         from XSTR (desc->sym, 0) or from label before passing those to
9718         ASM_OUTPUT_DEF.
9719
9720 2021-04-07  Richard Biener  <rguenther@suse.de>
9721
9722         PR tree-optimization/99954
9723         * tree-loop-distribution.c: Include tree-affine.h.
9724         (generate_memcpy_builtin): Try using tree-affine to prove
9725         non-overlap.
9726         (loop_distribution::classify_builtin_ldst): Always classify
9727         as PKIND_MEMMOVE.
9728
9729 2021-04-07  Richard Biener  <rguenther@suse.de>
9730
9731         PR tree-optimization/99947
9732         * tree-vect-loop.c (vectorizable_induction): Pre-allocate
9733         steps vector to avoid pushing elements from the reallocated
9734         vector.
9735
9736 2021-04-07  Richard Biener  <rguenther@suse.de>
9737
9738         * tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
9739         * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
9740         printing...
9741         * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
9742         function.
9743         (debug_vn_reference_ops): New.
9744
9745 2021-04-07  Bin Cheng  <bin.cheng@linux.alibaba.com>
9746
9747         PR tree-optimization/98736
9748         * tree-loop-distribution.c
9749         * (loop_distribution::bb_top_order_init):
9750         Compute RPO with programing order preserved by calling function
9751         rev_post_order_and_mark_dfs_back_seme.
9752
9753 2021-04-06  Vladimir N. Makarov  <vmakarov@redhat.com>
9754
9755         PR target/99781
9756         * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
9757         * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
9758         functions.
9759         (process_bb_lives): Don't update biggest mode of hard reg for
9760         implicit in multi-register group.  Use the new functions for
9761         updating dead_set and unused_set by register notes.
9762
9763 2021-04-06  Xianmiao Qu  <xianmiao_qu@c-sky.com>
9764
9765         * config/csky/csky_pipeline_ck802.md : Use insn reservation name
9766         instead of *.
9767
9768 2021-04-06  H.J. Lu  <hjl.tools@gmail.com>
9769
9770         * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
9771         (skylake_memset): Likewise.
9772         (skylake_cost): Change CLEAR_RATIO to 17.
9773         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
9774         Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
9775         m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
9776
9777 2021-04-06  Richard Biener  <rguenther@suse.de>
9778
9779         PR tree-optimization/99880
9780         * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
9781         set vectorized defs of relevant PHIs.
9782
9783 2021-04-06  Richard Biener  <rguenther@suse.de>
9784
9785         PR tree-optimization/99924
9786         * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
9787         nodes w/o scalar stmts as visited.
9788
9789 2021-04-06  Alex Coplan  <alex.coplan@arm.com>
9790
9791         PR target/99748
9792         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
9793         PCS for [su]fix_optab.
9794
9795 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
9796
9797         * config/darwin.c (machopic_legitimize_pic_address): Check
9798         that the current pic register is one of the hard reg set
9799         before setting liveness.
9800
9801 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
9802
9803         * config/darwin.c (machopic_legitimize_pic_address): Fix
9804         whitespace, remove unused code.
9805
9806 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
9807
9808         PR tree-optimization/99882
9809         * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
9810         pointer type.
9811
9812 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
9813
9814         PR rtl-optimization/99863
9815         * dse.c (replace_read): Drop regs_live argument.  Instead of
9816         regs_live, use store_insn->fixed_regs_live if non-NULL,
9817         otherwise punt if insns sequence clobbers or sets any hard
9818         registers.
9819
9820 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
9821
9822         PR testsuite/98125
9823         * targhooks.h (default_print_patchable_function_entry_1): Declare.
9824         * targhooks.c (default_print_patchable_function_entry_1): New function,
9825         copied from default_print_patchable_function_entry with an added flags
9826         argument.
9827         (default_print_patchable_function_entry): Rewritten into a small
9828         wrapper around default_print_patchable_function_entry_1.
9829         * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
9830         Redefine.
9831         (rs6000_print_patchable_function_entry): New function.
9832
9833 2021-04-02  Eric Botcazou  <ebotcazou@adacore.com>
9834
9835         * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
9836
9837 2021-04-01  Jason Merrill  <jason@redhat.com>
9838
9839         PR c++/98481
9840         * common.opt: Document v15 and v16.
9841
9842 2021-04-01  Richard Biener  <rguenther@suse.de>
9843
9844         PR tree-optimization/99863
9845         * gimplify.c (gimplify_init_constructor): Recompute vector
9846         constructor flags.
9847
9848 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
9849
9850         * doc/extend.texi (symver attribute): Fix up syntax errors
9851         in the examples.
9852
9853 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
9854
9855         PR tree-optimization/96573
9856         * gimple-ssa-store-merging.c (init_symbolic_number): Handle
9857         also pointer types.
9858
9859 2021-04-01  Richard Biener  <rguenther@suse.de>
9860
9861         PR tree-optimization/99856
9862         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
9863         precision to vector element precision.
9864
9865 2021-04-01  Martin Jambor  <mjambor@suse.cz>
9866
9867         PR tree-optimization/97009
9868         * tree-sra.c (access_or_its_child_written): New function.
9869         (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
9870         test.
9871
9872 2021-03-31  Jan Hubicka  <hubicka@ucw.cz>
9873
9874         PR ipa/98265
9875         * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
9876
9877 2021-03-31  Pat Haugen  <pthaugen@linux.ibm.com>
9878
9879         PR target/99133
9880         * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
9881         xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
9882         xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
9883         * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
9884         mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
9885         mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
9886         Likewise.
9887         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
9888         * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
9889         (define_attr "prefixed"): Update initializer.
9890
9891 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
9892
9893         PR debug/99490
9894         * dwarf2out.c (debug_ranges_dwo_section): New variable.
9895         (DW_RANGES_IDX_SKELETON): Define.
9896         (struct dw_ranges): Add begin_entry and end_entry members.
9897         (DEBUG_DWO_RNGLISTS_SECTION): Define.
9898         (add_ranges_num): Adjust r initializer for addition of *_entry
9899         members.
9900         (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
9901         set idx to DW_RANGES_IDX_SKELETON.
9902         (use_distinct_base_address_for_range): New function.
9903         (index_rnglists): Don't set r->idx if it is equal to
9904         DW_RANGES_IDX_SKELETON.  Initialize r->begin_entry and
9905         r->end_entry for -gsplit-dwarf if those will be needed by
9906         output_rnglists.
9907         (output_rnglists): Add DWO argument.  If true, switch to
9908         debug_ranges_dwo_section rather than debug_ranges_section.
9909         Adjust l1/l2 label indexes.  Only output the offset table when
9910         dwo is true and don't include in there the skeleton range
9911         entry if present.  For -gsplit-dwarf, skip ranges that belong
9912         to the other rnglists section.  Change return type from void
9913         to bool and return true if there are any range entries for
9914         the other section.  For dwarf_split_debug_info use
9915         DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
9916         entries instead of DW_RLE_start_end, DW_RLE_start_length and
9917         DW_RLE_base_address.  Use use_distinct_base_address_for_range.
9918         (init_sections_and_labels): Initialize debug_ranges_dwo_section
9919         if -gsplit-dwarf and DWARF >= 5.  Adjust ranges_section_label
9920         and range_base_label indexes.
9921         (dwarf2out_finish): Call index_rnglists earlier before finalizing
9922         .debug_addr.  Never emit DW_AT_rnglists_base attribute.  For
9923         -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
9924         with different dwo arguments.
9925         (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
9926
9927 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
9928
9929         PR tree-optimization/98268
9930         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
9931         recompute_tree_invariant_for_addr_expr after successfully
9932         folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
9933
9934 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
9935
9936         PR tree-optimization/99726
9937         * tree-data-ref.c (create_intersect_range_checks_index): Bail
9938         out if there is more than one access function SCEV for the loop
9939         being versioned.
9940
9941 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
9942
9943         PR rtl-optimization/97141
9944         PR rtl-optimization/98726
9945         * emit-rtl.c (valid_for_const_vector_p): Return true for
9946         CONST_POLY_INT_P.
9947         * rtx-vector-builder.h (rtx_vector_builder::step): Return a
9948         poly_wide_int instead of a wide_int.
9949         (rtx_vector_builder::apply_set): Take a poly_wide_int instead
9950         of a wide_int.
9951         * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
9952         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
9953         false for CONST_VECTORs that cannot be forced to memory.
9954         * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
9955         is too complex to force to memory, build it up from individual
9956         elements instead.
9957
9958 2021-03-31  Jan Hubicka  <jh@suse.cz>
9959
9960         PR lto/99447
9961         * cgraph.c (cgraph_node::release_body): Fix overactive check.
9962
9963 2021-03-31  Christophe Lyon  <christophe.lyon@linaro.org>
9964
9965         PR target/99786
9966         * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
9967         for V4HI and V2SI.
9968
9969 2021-03-31  H.J. Lu  <hjl.tools@gmail.com>
9970
9971         * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
9972         For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
9973         to SImode.
9974         (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
9975         "rep movsb/stosb" only for known sizes.
9976         * config/i386/i386-options.c (processor_cost_table): Use Ice
9977         Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
9978         Rapids and Alder Lake.
9979         * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
9980         * config/i386/x86-tune-costs.h (icelake_memcpy): New.
9981         (icelake_memset): Likewise.
9982         (icelake_cost): Likewise.
9983         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
9984         New.
9985
9986 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
9987
9988         PR target/98119
9989         * config/aarch64/aarch64.c
9990         (aarch64_vectorize_preferred_vector_alignment): Query the size
9991         of the provided SVE vector; do not assume that all SVE vectors
9992         have the same size.
9993
9994 2021-03-31  Jan Hubicka  <jh@suse.cz>
9995
9996         PR lto/99447
9997         * cgraph.c (cgraph_node::release_body): Remove all callers and
9998         references.
9999         * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
10000         * cgraphunit.c (cgraph_node::expand): And here.
10001
10002 2021-03-31  Martin Liska  <mliska@suse.cz>
10003
10004         * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
10005         and one negated condition.
10006
10007 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
10008             Richard Sandiford  <richard.sandiford@arm.com>
10009
10010         PR target/99813
10011         * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
10012         constraints on operands[2] and similarly 0 and rk constraints
10013         on operands[1] corresponding to that.
10014
10015 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
10016
10017         PR bootstrap/98860
10018         * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
10019         linker doesn't support DWARF sections new in DWARF5.
10020         * config/i386/i386-options.c (ix86_option_override_internal): Default
10021         to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
10022         targets.
10023         * config.in: Regenerated.
10024         * configure: Regenerated.
10025
10026 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10027
10028         PR target/99820
10029         * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
10030         available issue_info before using it.
10031
10032 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10033
10034         PR target/99822
10035         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
10036         in operand 1.
10037
10038 2021-03-30  Xionghu Luo  <luoxhu@linux.ibm.com>
10039
10040         PR target/99718
10041         * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
10042         (altivec_lvsl_reg_<mode>): ... this.
10043         (altivec_lvsr_reg): Change to ...
10044         (altivec_lvsr_reg_<mode>): ... this.
10045         * config/rs6000/predicates.md (vec_set_index_operand): New.
10046         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10047         Enable 32bit variable vec_insert for all TARGET_VSX.
10048         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
10049         Enable 32bit variable vec_insert for p9 and above.
10050         (rs6000_expand_vector_set_var_p8): Rename to ...
10051         (rs6000_expand_vector_set_var_p7): ... this.
10052         (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
10053         position.
10054         * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
10055         * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
10056         gen_altivec_lvsr_reg_di.
10057
10058 2021-03-30  H.J. Lu  <hjl.tools@gmail.com>
10059
10060         PR target/99744
10061         * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
10062         (__rdtscp): Likewise.
10063
10064 2021-03-30  Tamar Christina  <tamar.christina@arm.com>
10065
10066         PR tree-optimization/99825
10067         * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
10068         Reject non-mult 2 lanes.
10069
10070 2021-03-30  Richard Earnshaw  <rearnsha@arm.com>
10071
10072         PR target/99773
10073         * config/arm/arm.c (arm_file_start): Fix emission of
10074         Tag_ABI_VFP_args attribute.
10075
10076 2021-03-30  Richard Biener  <rguenther@suse.de>
10077
10078         PR tree-optimization/99824
10079         * stor-layout.c (set_min_and_max_values_for_integral_type):
10080         Assert the precision is within the bounds of
10081         WIDE_INT_MAX_PRECISION.
10082         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
10083         the outermost component ref only to lower the access size
10084         and initialize that from the access type.
10085
10086 2021-03-30  Richard Sandiford  <richard.sandiford@arm.com>
10087
10088         PR target/98136
10089         * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
10090         CONST_INTs to aarch64_expand_mov_immediate when called after RA.
10091
10092 2021-03-30  Mihailo Stojanovic  <mihailo.stojanovic@typhoon-hil.com>
10093
10094         * config/aarch64/aarch64.md
10095         (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
10096         attribute to disambiguate between SIMD and FP variants of the
10097         instruction.
10098
10099 2021-03-29  Jan Hubicka  <hubicka@ucw.cz>
10100
10101         * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
10102         (analyze_ssa_name_flags): Fix typo in comment.
10103
10104 2021-03-29  Alex Coplan  <alex.coplan@arm.com>
10105
10106         PR target/99216
10107         * config/aarch64/aarch64-sve-builtins.cc
10108         (function_builder::add_function): Add placeholder_p argument, use
10109         placeholder decls if this is set.
10110         (function_builder::add_unique_function): Instead of conditionally adding
10111         direct overloads, unconditionally add either a direct overload or a
10112         placeholder.
10113         (function_builder::add_overloaded_function): Set placeholder_p if we're
10114         using C++ overloads. Use the obstack for string storage instead
10115         of relying on the tree nodes.
10116         (function_builder::add_overloaded_functions): Don't return early for
10117         m_direct_overloads: we need to add placeholders.
10118         * config/aarch64/aarch64-sve-builtins.h
10119         (function_builder::add_function): Add placeholder_p argument.
10120
10121 2021-03-29  Richard Biener  <rguenther@suse.de>
10122
10123         PR tree-optimization/99807
10124         * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
10125         assert below VEC_PERM handling.
10126
10127 2021-03-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10128
10129         PR target/99037
10130         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
10131         aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
10132         matching const_int 0.
10133         (move_lo_quad_internal_be_<mode>): Likewise.
10134         (move_lo_quad_<mode>): Update for the above.
10135         * config/aarch64/iterators.md (VQ_2E): Delete.
10136
10137 2021-03-29  Jakub Jelinek  <jakub@redhat.com>
10138
10139         PR tree-optimization/99777
10140         * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
10141         types other than scalar integral types.
10142
10143 2021-03-28  David Edelsohn  <dje.gcc@gmail.com>
10144
10145         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
10146         XCOFF TLS reloc decorations.
10147
10148 2021-03-28  Gerald Pfeifer  <gerald@pfeifer.com>
10149
10150         * doc/analyzer.texi (Analyzer Internals): Update link to
10151         "A Memory Model for Static Analysis of C Programs".
10152
10153 2021-03-26  David Edelsohn  <dje.gcc@gmail.com>
10154
10155         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
10156         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
10157         Declare.
10158         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
10159         (rs6000_special_round_type_align): Recursively check innermost first
10160         field.
10161
10162 2021-03-26  Jakub Jelinek  <jakub@redhat.com>
10163
10164         PR debug/99334
10165         * dwarf2out.h (struct dw_fde_node): Add rule18 member.
10166         * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
10167         assignment with drap_reg active, queue reg save for hfp with offset 0
10168         and flush queued reg saves.  When handling a push with rule18,
10169         defer queueing reg save for hfp and just assert the offset is 0.
10170         (scan_trace): Assert that fde->rule18 is false.
10171
10172 2021-03-26  Vladimir Makarov  <vmakarov@redhat.com>
10173
10174         PR target/99766
10175         * ira-costs.c (record_reg_classes): Put case with
10176         CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
10177         * ira.c (ira_setup_alts): Ditto.
10178         * lra-constraints.c (process_alt_operands): Ditto.
10179         * recog.c (asm_operand_ok): Ditto.
10180         * reload.c (find_reloads): Ditto.
10181
10182 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10183
10184         * config/aarch64/aarch64-protos.h
10185         (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
10186         (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
10187         * config/aarch64/aarch64.c (generic_addrcost_table): Update
10188         accordingly, using the same costs as for post_modify.
10189         (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
10190         (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
10191         (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
10192         (a64fx_addrcost_table): Likewise.
10193         (neoversev1_addrcost_table): New.
10194         (neoversev1_tunings): Use neoversev1_addrcost_table.
10195         (aarch64_address_cost): Use the new post_modify costs for CImode
10196         and XImode.
10197
10198 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10199
10200         * config/aarch64/aarch64.opt
10201         (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
10202         * doc/invoke.texi: Document it.
10203         * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
10204         (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
10205         (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
10206         (aarch64_vec_issue_info): New structures.
10207         (cpu_vector_cost): Write comments above the variables rather
10208         than to the side.
10209         (cpu_vector_cost::issue_info): New member variable.
10210         * config/aarch64/aarch64.c: Include gimple-pretty-print.h
10211         and tree-ssa-loop-niter.h.
10212         (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
10213         (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
10214         (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
10215         (thunderx3t110_vector_cost): Initialize issue_info to null.
10216         (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
10217         (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
10218         (neoversev1_vector_cost): Use them.
10219         (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
10220         (aarch64_vector_costs::saw_sve_only_op): New member variable.
10221         (aarch64_vector_costs::num_vector_iterations): Likewise.
10222         (aarch64_vector_costs::scalar_ops): Likewise.
10223         (aarch64_vector_costs::advsimd_ops): Likewise.
10224         (aarch64_vector_costs::sve_ops): Likewise.
10225         (aarch64_vector_costs::seen_loads): Likewise.
10226         (aarch64_simd_vec_costs_for_flags): New function.
10227         (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
10228         Count the number of predicate operations required by SVE WHILE
10229         instructions.
10230         (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
10231         (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
10232         (aarch64_count_ops): Likewise.
10233         (aarch64_add_stmt_cost): Record whether see an SVE operation
10234         that cannot currently be implementing using Advanced SIMD.
10235         Record issue information about the scalar, Advanced SIMD
10236         and (where relevant) SVE versions of a loop.
10237         (aarch64_vec_op_count::dump): New function.
10238         (aarch64_sve_op_count::dump): Likewise.
10239         (aarch64_estimate_min_cycles_per_iter): Likewise.
10240         (aarch64_adjust_body_cost): If issue information is available,
10241         try to compare the issue rates of the various loop implementations
10242         and increase or decrease the vector body cost accordingly.
10243
10244 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10245
10246         * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
10247         Assume a zero cost for induction phis.
10248
10249 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10250
10251         * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
10252         function.
10253         (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
10254         vector comparisons.
10255
10256 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10257
10258         * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
10259         New function.
10260         (aarch64_add_stmt_cost): Call it.
10261
10262 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10263
10264         * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
10265         New tuning parameter.
10266         * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
10267         (aarch64_estimated_sve_vq): New function.
10268         (aarch64_vector_costs::analyzed_vinfo): New member variable.
10269         (aarch64_vector_costs::is_loop): Likewise.
10270         (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
10271         (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
10272         (aarch64_record_potential_advsimd_unrolling): New function.
10273         (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
10274         (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
10275         aarch64_analyze_bb_vinfo on the first use of a costs structure.
10276         Detect whether we're vectorizing a loop for SVE that might be
10277         completely unrolled if it used Advanced SIMD instead.
10278         (aarch64_adjust_body_cost_for_latency): New function.
10279         (aarch64_finish_cost): Call it.
10280
10281 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10282
10283         * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
10284         (aarch64_init_cost): New function.
10285         (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
10286         the default unsigned[3].
10287         (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
10288         (TARGET_VECTORIZE_INIT_COST): Override.
10289         (TARGET_VECTORIZE_FINISH_COST): Likewise.
10290         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
10291
10292 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10293
10294         * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
10295         (neoversev1_sve_vector_cost): New cost structures.
10296         (neoversev1_vector_cost): Likewise.
10297         (neoversev1_tunings): Use them.  Enable use_new_vector_costs.
10298
10299 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10300
10301         * config/aarch64/aarch64-protos.h
10302         (sve_vec_cost::scatter_store_elt_cost): New member variable.
10303         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
10304         accordingly, taking the cost from the cost of a scalar_store.
10305         (a64fx_sve_vector_cost): Likewise.
10306         (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
10307
10308 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10309
10310         * config/aarch64/aarch64-protos.h
10311         (simd_vec_cost::store_elt_extra_cost): New member variable.
10312         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
10313         accordingly, using the vec_to_scalar cost for the new field.
10314         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
10315         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
10316         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
10317         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
10318         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
10319         (thunderx3t110_advsimd_vector_cost): Likewise.
10320         (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
10321
10322 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10323
10324         * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
10325         (simd_vec_cost::ld3_st3_permute_cost): New member variables.
10326         (simd_vec_cost::ld4_st4_permute_cost): Likewise.
10327         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
10328         accordingly, using zero for the new costs.
10329         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
10330         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
10331         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
10332         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
10333         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
10334         (thunderx3t110_advsimd_vector_cost): Likewise.
10335         (aarch64_ld234_st234_vectors): New function.
10336         (aarch64_adjust_stmt_cost): Likewise.
10337         (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
10338         the new vector costs.
10339
10340 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10341
10342         * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
10343         derived class of simd_vec_cost.  Add information about CLAST[AB]
10344         and FADDA instructions.
10345         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
10346         accordingly, using the vec_to_scalar costs for the new fields.
10347         (a64fx_sve_vector_cost): Likewise.
10348         (aarch64_reduc_type): New function.
10349         (aarch64_sve_in_loop_reduction_latency): Likewise.
10350         (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
10351         Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
10352         that occur in the loop body.
10353         (aarch64_add_stmt_cost): Update call accordingly.
10354
10355 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10356
10357         * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
10358         New tuning flag.
10359         * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
10360         above the fields rather than to the right.
10361         (simd_vec_cost::reduc_i8_cost): New member variable.
10362         (simd_vec_cost::reduc_i16_cost): Likewise.
10363         (simd_vec_cost::reduc_i32_cost): Likewise.
10364         (simd_vec_cost::reduc_i64_cost): Likewise.
10365         (simd_vec_cost::reduc_f16_cost): Likewise.
10366         (simd_vec_cost::reduc_f32_cost): Likewise.
10367         (simd_vec_cost::reduc_f64_cost): Likewise.
10368         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
10369         accordingly, using the vec_to_scalar_cost for the new fields.
10370         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
10371         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
10372         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
10373         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
10374         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
10375         (thunderx3t110_advsimd_vector_cost): Likewise.
10376         (aarch64_use_new_vector_costs_p): New function.
10377         (aarch64_simd_vec_costs): New function, split out from...
10378         (aarch64_builtin_vectorization_cost): ...here.
10379         (aarch64_is_reduction): New function.
10380         (aarch64_detect_vector_stmt_subtype): Likewise.
10381         (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
10382         using the new vector costs.
10383
10384 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10385
10386         PR ipa/99466
10387         * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
10388         TLS declarations as public.
10389
10390 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10391
10392         * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
10393         * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
10394         * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
10395         * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
10396         * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
10397         * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
10398         * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
10399         * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
10400         * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
10401
10402 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10403
10404         PR d/91595
10405         * config.gcc (*-*-cygwin*): Add winnt-d.o
10406         (*-*-mingw*): Likewise.
10407         * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
10408         * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
10409         * config/i386/t-cygming: Add winnt-d.o.
10410         * config/i386/winnt-d.c: New file.
10411
10412 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10413
10414         * config/freebsd-d.c: Include memmodel.h.
10415
10416 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10417
10418         PR d/99691
10419         * config.gcc (*-*-openbsd*): Add openbsd-d.o.
10420         * config/t-openbsd: Add openbsd-d.o.
10421         * config/openbsd-d.c: New file.
10422
10423 2021-03-25  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
10424
10425         PR tree-optimization/96974
10426         * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
10427         with graceful exit.
10428
10429 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
10430
10431         Revert:
10432         2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
10433
10434         PR target/98209
10435         PR target/99744
10436         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
10437         always_inline in system headers.
10438
10439 2021-03-25  Kewen Lin  <linkw@linux.ibm.com>
10440
10441         * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
10442
10443 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
10444
10445         PR c++/99565
10446         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
10447         * fold-const.c (operand_compare::operand_equal_p): Don't compare
10448         field offsets if OEP_ADDRESS_OF_SAME_FIELD.
10449
10450 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
10451
10452         PR target/98209
10453         PR target/99744
10454         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
10455         always_inline in system headers.
10456
10457 2021-03-25  Richard Biener  <rguenther@suse.de>
10458
10459         PR tree-optimization/99746
10460         * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
10461         the scalar stmt as patterned.  Instead set up required things
10462         manually.
10463
10464 2021-03-25  Xionghu Luo  <luoxhu@linux.ibm.com>
10465
10466         * config/rs6000/rs6000.c (power8_costs): Change l2 cache
10467         from 256 to 512.
10468
10469 2021-03-24  Martin Liska  <mliska@suse.cz>
10470
10471         PR target/99753
10472         * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
10473         error.
10474         * config/i386/i386-options.c (ix86_option_override_internal):
10475         Add run-time assert.
10476
10477 2021-03-24  Martin Jambor  <mjambor@suse.cz>
10478
10479         PR ipa/99122
10480         * ipa-cp.c (initialize_node_lattices): Mark as bottom all
10481         parameters with unknown type.
10482         (ipacp_value_safe_for_type): New function.
10483         (propagate_vals_across_arith_jfunc): Verify that the constant type
10484         can be used for a type of the formal parameter.
10485         (propagate_vals_across_ancestor): Likewise.
10486         (propagate_scalar_across_jump_function): Likewise.  Pass the type
10487         also to propagate_vals_across_ancestor.
10488
10489 2021-03-24  Christophe Lyon  <christophe.lyon@linaro.org>
10490
10491         PR target/99727
10492         * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
10493         constraint.
10494         (movmisalign<mode>_mve_load): Likewise.
10495
10496 2021-03-24  Jakub Jelinek  <jakub@redhat.com>
10497
10498         PR target/99724
10499         * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
10500         movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
10501
10502 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
10503
10504         * doc/sourcebuild.texi (sysconf): New effective target.
10505
10506 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
10507
10508         * config/i386/predicates.md (reg_or_const_vec_operand): New.
10509         * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
10510         the now *-prefixed insn_and_split, turn the splitter const vec
10511         into an input for the insn, making it an ignored immediate for
10512         non-split cases, and loaded into the scratch register
10513         otherwise.
10514
10515 2021-03-23  Vladimir N. Makarov  <vmakarov@redhat.com>
10516
10517         PR target/99581
10518         * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
10519         Use define_relaxed_memory_constraint for them.
10520
10521 2021-03-23  Iain Sandoe  <iain@sandoe.co.uk>
10522
10523         PR target/99733
10524         * config/host-darwin.c (darwin_gt_pch_use_address): Add a
10525         colon to the diagnostic message.
10526
10527 2021-03-23  Ilya Leoshkevich  <iii@linux.ibm.com>
10528
10529         * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
10530         set_info's uses.
10531         (try_fwprop_subst_note): Use set_info instead of insn_info.
10532         (try_fwprop_subst_pattern): Likewise.
10533         (try_fwprop_subst_notes): Likewise.
10534         (try_fwprop_subst): Likewise.
10535         (forward_propagate_subreg): Likewise.
10536         (forward_propagate_and_simplify): Likewise.
10537         (forward_propagate_into): Likewise.
10538         * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
10539         method.
10540         (set_info::single_nondebug_insn_use): Likewise.
10541         (set_info::single_phi_use): Likewise.
10542         * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
10543         method.
10544         (set_info::single_nondebug_insn_use): Likewise.
10545         (set_info::single_phi_use): Likewise.
10546
10547 2021-03-23  Christophe Lyon  <christophe.lyon@linaro.org>
10548
10549         * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
10550
10551 2021-03-23  Jakub Jelinek  <jakub@redhat.com>
10552
10553         PR target/99540
10554         * config/aarch64/aarch64.c (aarch64_add_offset): Tell
10555         expand_mult to perform an unsigned rather than a signed
10556         multiplication.
10557
10558 2021-03-23  H.J. Lu  <hjl.tools@gmail.com>
10559
10560         PR target/99704
10561         * config/i386/cpuid.h (__cpuid): Add __volatile__.
10562         (__cpuid_count): Likewise.
10563
10564 2021-03-23  Richard Biener  <rguenther@suse.de>
10565
10566         PR tree-optimization/99721
10567         * tree-vect-slp.c (vect_slp_analyze_node_operations):
10568         Make sure we can schedule the node.
10569
10570 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10571
10572         * config/riscv/riscv.c (riscv_subword): Take endianness into
10573         account when calculating the byte offset.
10574
10575 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10576
10577         * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
10578         * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
10579         (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
10580         (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
10581         (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
10582         new predicate "subreg_lowpart_operator"
10583
10584 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10585
10586         * config/riscv/riscv.c (riscv_swap_instruction): New function
10587         to byteswap an SImode rtx containing an instruction.
10588         (riscv_trampoline_init): Byteswap the generated instructions
10589         when needed.
10590
10591 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10592
10593         * common/config/riscv/riscv-common.c
10594         (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
10595         * config.gcc (riscv32be-*, riscv64be-*): Set
10596         TARGET_BIG_ENDIAN_DEFAULT to 1.
10597         * config/riscv/elf.h (LINK_SPEC): Change -melf* value
10598         depending on default endianness.
10599         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
10600         * config/riscv/linux.h (LINK_SPEC): Likewise.
10601         * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
10602         default endianness.
10603         * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
10604
10605 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10606
10607         * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
10608         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
10609         * config/riscv/linux.h (LINK_SPEC): Likewise.
10610         * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
10611         -mlittle-endian.
10612         (BYTES_BIG_ENDIAN): Handle big endian.
10613         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
10614         * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
10615         options.
10616         * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
10617
10618 2021-03-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
10619
10620         * regcprop.c (find_oldest_value_reg): Ask target whether
10621           different mode is fine for replacement register.
10622
10623 2021-03-23  Aldy Hernandez  <aldyh@redhat.com>
10624
10625         PR tree-optimization/99296
10626         * value-range.cc (irange::irange_set_1bit_anti_range): New.
10627         (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
10628         * value-range.h (irange::irange_set_1bit_anti_range): New.
10629
10630 2021-03-22  Vladimir N. Makarov  <vmakarov@redhat.com>
10631
10632         PR target/99581
10633         * config/aarch64/constraints.md (UtQ): Use
10634         define_relaxed_memory_constraint for it.
10635         * doc/md.texi (define_relaxed_memory_constraint): Describe it.
10636         * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
10637         * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
10638         (have_relaxed_memory_constraints): New static var.
10639         (relaxed_memory_start, relaxed_memory_end): Ditto.
10640         (add_constraint): Add arg is_relaxed_memory.  Check name for
10641         relaxed memory.  Set up is_relaxed_memory in constraint_data and
10642         have_relaxed_memory_constraints.  Adjust calls.
10643         (choose_enum_order): Process relaxed memory.
10644         (write_tm_preds_h): Ditto.
10645         (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
10646         * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
10647         * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
10648         * ira-lives.c (single_reg_class): Use
10649         insn_extra_relaxed_memory_constraint.
10650         * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
10651         * lra-constraints.c (valid_address_p): Use
10652         insn_extra_relaxed_memory_constraint instead of other memory
10653         constraints.
10654         (process_alt_operands): Process CT_RELAXED_MEMORY.
10655         (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
10656         * recog.c (asm_operand_ok, preprocess_constraints): Process
10657         CT_RELAXED_MEMORY.
10658         * reload.c (find_reloads): Ditto.
10659         * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
10660         * stmt.c (parse_input_constraint): Use
10661         insn_extra_relaxed_memory_constraint.
10662
10663 2021-03-22  Segher Boessenkool  <segher@kernel.crashing.org>
10664
10665         PR target/97926
10666         * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
10667         there are no NaNs.
10668
10669 2021-03-22  Alex Coplan  <alex.coplan@arm.com>
10670
10671         PR target/97252
10672         * config/arm/arm-protos.h (neon_make_constant): Add generate
10673         argument to guard emitting insns, default to true.
10674         * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
10675         CONST_VECTORs which neon_make_constant can't handle.
10676         (neon_vdup_constant): Add generate argument, avoid emitting
10677         insns if it's not set.
10678         (neon_make_constant): Plumb new generate argument through.
10679         * config/arm/constraints.md (Ui): New. Use it...
10680         * config/arm/mve.md (*mve_mov<mode>): ... here.
10681         * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
10682         synthesize constants.
10683
10684 2021-03-22  Richard Biener  <rguenther@suse.de>
10685
10686         * debug.h: Add deprecation warning.
10687
10688 2021-03-22  Richard Biener  <rguenther@suse.de>
10689
10690         PR tree-optimization/99694
10691         * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
10692         PHI result.
10693
10694 2021-03-22  Kito Cheng  <kito.cheng@sifive.com>
10695
10696         PR target/99702
10697         * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
10698         after type checking.
10699
10700 2021-03-22  Jakub Jelinek  <jakub@redhat.com>
10701
10702         PR debug/99562
10703         PR debug/66728
10704         * dwarf2out.c (get_full_len): Use get_precision rather than
10705         min_precision.
10706         (add_const_value_attribute): Make sure add_AT_wide argument has
10707         precision prec rather than some very wide one.
10708
10709 2021-03-22  Kewen Lin  <linkw@linux.ibm.com>
10710
10711         * config/rs6000/rs6000.md (*rotldi3_insert_sf,
10712         *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
10713         floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
10714         floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
10715         *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
10716         fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
10717         *round32<mode>2_fprs, *roundu32<mode>2_fprs,
10718         *fix_trunc<mode>si2_internal): Fix empty split condition.
10719         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
10720         vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
10721         *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
10722         *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
10723
10724 2021-03-22  Xionghu Luo  <luoxhu@linux.ibm.com>
10725
10726         PR target/98914
10727         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
10728         Convert idx to DImode.
10729         (rs6000_expand_vector_set_var_p8): Likewise.
10730
10731 2021-03-21  Jakub Jelinek  <jakub@redhat.com>
10732
10733         PR debug/99388
10734         * dwarf2out.c (insert_float): Change return type from void to
10735         unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
10736         (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
10737         Adjust callers.
10738
10739 2021-03-20  H.J. Lu  <hjl.tools@gmail.com>
10740
10741         PR target/99679
10742         * config/i386/i386.c (construct_container): Check cfun != NULL
10743         before accessing silent_p.
10744
10745 2021-03-20  Ahamed Husni  <ahamedhusni73@gmail.com>
10746
10747         * asan.c: Fix typos in comments.
10748
10749 2021-03-20  Vladimir N. Makarov  <vmakarov@redhat.com>
10750
10751         PR rtl-optimization/99680
10752         * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
10753         (process_address_1): Check empty constraint before using
10754         CONSTRAINT_LEN.
10755
10756 2021-03-19  Pat Haugen  <pthaugen@linux.ibm.com>
10757
10758         * config/rs6000/rs6000.c (power10_cost): New.
10759         (rs6000_option_override_internal): Set Power10 costs.
10760         (rs6000_issue_rate): Set Power10 issue rate.
10761         * config/rs6000/power10.md: Rewrite for Power10.
10762
10763 2021-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
10764
10765         PR target/99663
10766         * lra-constraints.c (process_address_1): Don't use unknown
10767         constraint for address constraint.
10768
10769 2021-03-19  Iain Sandoe  <iain@sandoe.co.uk>
10770
10771         PR target/99661
10772         * config.gcc (powerpc-*-darwin8): Delete the reference to
10773         the now removed darwin8.h.
10774
10775 2021-03-19  Olivier Hainque  <hainque@adacore.com>
10776
10777         PR target/99660
10778         * config/vxworksae.h (VX_CPU_PREFIX): Define.
10779
10780 2021-03-19  John David Anglin  <danglin@gcc.gnu.org>
10781
10782         * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
10783
10784 2021-03-19  Tamar Christina  <tamar.christina@arm.com>
10785
10786         PR tree-optimization/99656
10787         * tree-vect-slp-patterns.c (linear_loads_p,
10788         complex_add_pattern::matches, is_eq_or_top,
10789         vect_validate_multiplication, complex_mul_pattern::matches,
10790         complex_fms_pattern::matches): Remove complex_perm_kinds_t.
10791         * tree-vectorizer.h: (complex_load_perm_t): Removed.
10792         (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
10793         complex_load_perm_t.
10794
10795 2021-03-19  H.J. Lu  <hjl.tools@gmail.com>
10796
10797         PR target/99652
10798         * config/i386/i386-options.c (ix86_init_machine_status): Set
10799         silent_p to true.
10800         * config/i386/i386.c (init_cumulative_args): Set silent_p to
10801         false.
10802         (construct_container): Return early for return and argument
10803         errors if silent_p is true.
10804         * config/i386/i386.h (machine_function): Add silent_p.
10805
10806 2021-03-19  Jakub Jelinek  <jakub@redhat.com>
10807
10808         PR target/99593
10809         * config/arm/constraints.md (Ds): New constraint.
10810         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
10811         constraint instead of w,Dm.
10812
10813 2021-03-19  Andrew Stubbs  <ams@codesourcery.com>
10814
10815         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
10816         in error message.
10817
10818 2021-03-19  Eric Botcazou  <ebotcazou@adacore.com>
10819
10820         PR middle-end/99641
10821         * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
10822         array type, do the computation of the current position in sizetype.
10823
10824 2021-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
10825
10826         PR target/99422
10827         * lra-constraints.c (process_address_1): Use lookup_constraint
10828         only for a single constraint.
10829
10830 2021-03-18  Martin Sebor  <msebor@redhat.com>
10831
10832         PR middle-end/99502
10833         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
10834         (inbounds_memaccess_p): ...to this.  Check the ending offset of
10835         the accessed member.
10836
10837 2021-03-18  Andrew Stubbs  <ams@codesourcery.com>
10838
10839         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
10840           %> quote markers to error messages.
10841         (gcn_goacc_validate_dims): Likewise.
10842         (gcn_conditional_register_usage): Remove exclaimation mark from error
10843         message.
10844         (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
10845
10846 2021-03-18  Jan Hubicka  <hubicka@ucw.cz>
10847
10848         * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
10849         integer divides1.
10850
10851 2021-03-18  Sinan Lin  <sinan@isrc.iscas.ac.cn>
10852             Kito Cheng  <kito.cheng@sifive.com>
10853
10854         * config/riscv/riscv.c (riscv_block_move_straight): Change type
10855         to unsigned HOST_WIDE_INT for parameter and local variable with
10856         HOST_WIDE_INT type.
10857         (riscv_adjust_block_mem): Ditto.
10858         (riscv_block_move_loop): Ditto.
10859         (riscv_expand_block_move): Ditto.
10860
10861 2021-03-18  Nick Clifton  <nickc@redhat.com>
10862
10863         * config/v850/v850.c (construct_restore_jr): Increase static
10864          buffer size.
10865         (construct_save_jarl): Likewise.
10866         * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
10867
10868 2021-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10869
10870         * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
10871         (aarch64_override_options_internal): Use it.
10872         (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
10873         tune_flags.
10874
10875 2021-03-17  Sandra Loosemore  <sandra@codesourcery.com>
10876
10877         * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
10878         error message format issues.
10879         (nios2_option_override): Likewise.
10880         (nios2_expand_fpu_builtin): Likewise.
10881         (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
10882         truncation warning.
10883         (nios2_expand_custom_builtin): More error message format fixes.
10884         (nios2_expand_rdwrctl_builtin): Likewise.
10885         (nios2_expand_rdprs_builtin): Likewise.
10886         (nios2_expand_eni_builtin): Likewise.
10887         (nios2_expand_builtin): Likewise.
10888         (nios2_register_custom_code): Likewise.
10889         (nios2_valid_target_attribute_rec): Likewise.
10890         (nios2_add_insn_asm): Fix uninitialized variable warning.
10891
10892 2021-03-17  Jan Hubicka  <jh@suse.cz>
10893
10894         * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
10895         of gather to match reality.
10896         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
10897
10898 2021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10899
10900         * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
10901         to compare against CC_REG rather than NE.
10902
10903 2021-03-17  H.J. Lu  <hjl.tools@gmail.com>
10904
10905         PR target/99504
10906         * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
10907         inline assembly statements.
10908         (ix86_print_operand): Update 'P' handling for -fno-plt.
10909
10910 2021-03-17  Tamar Christina  <tamar.christina@arm.com>
10911
10912         PR target/99542
10913         * config/aarch64/aarch64.c
10914         (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
10915
10916 2021-03-16  Segher Boessenkool  <segher@kernel.crashing.org>
10917
10918         PR target/98092
10919         * config/rs6000/predicates.md (branch_comparison_operator): Allow
10920         ordered and unordered for CCFPmode, if flag_finite_math_only.
10921
10922 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
10923
10924         PR target/99600
10925         * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
10926         rather than ASHIFT.
10927         * config/i386/i386.md (mult by 1248 into ashift): New splitter.
10928
10929 2021-03-16  Martin Liska  <mliska@suse.cz>
10930
10931         PR target/99592
10932         * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
10933         cl_optimization_compare function.
10934
10935 2021-03-16  Ilya Leoshkevich  <iii@linux.ibm.com>
10936
10937         * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
10938         as "v".
10939
10940 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
10941
10942         PR target/99563
10943         * config/i386/i386.h (struct machine_function): Add
10944         has_explicit_vzeroupper bitfield.
10945         * config/i386/i386-expand.c (ix86_expand_builtin): Set
10946         cfun->machine->has_explicit_vzeroupper when expanding
10947         IX86_BUILTIN_VZEROUPPER.
10948         * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
10949         Do the mode switching only when TARGET_VZEROUPPER, expensive
10950         optimizations turned on and not optimizing for size.
10951         (pass_insert_vzeroupper::gate): Enable even when
10952         cfun->machine->has_explicit_vzeroupper is set.
10953
10954 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
10955
10956         PR target/99542
10957         * config/aarch64/aarch64.c
10958         (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
10959         definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
10960         instead of DECL_ARGUMENTS.  Ignore types for uniform arguments.
10961
10962 2021-03-15  Richard Biener  <rguenther@suse.de>
10963
10964         PR tree-optimization/98834
10965         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
10966         subsetting by truncating the access size.
10967
10968 2021-03-15  Jan Hubicka  <hubicka@ucw.cz>
10969
10970         * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
10971         * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
10972         of znver2_cost.
10973
10974 2021-03-15  Martin Liska  <mliska@suse.cz>
10975
10976         * spellcheck.c: Add missing comma in initialization.
10977
10978 2021-03-14  Uroš Bizjak  <ubizjak@gmail.com>
10979
10980         * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
10981         alternative 2 and alternative 1 with alternative 3 using
10982         YW register constraint.
10983         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
10984         using YW register constraint.
10985         (*vec_extractv16qi_zext): Ditto.
10986         (*vec_extractv4si): Merge alternatives 4 and 5
10987         using Yw register constraint.
10988         (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
10989
10990 2021-03-13  Martin Sebor  <msebor@redhat.com>
10991
10992         PR tree-optimization/99489
10993         * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
10994         is not a call statement.
10995
10996 2021-03-13  Jakub Jelinek  <jakub@redhat.com>
10997
10998         PR tree-optimization/99544
10999         * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
11000         if for vector types multiplication can't be done in type's mode.
11001
11002 2021-03-12  Eric Botcazou  <ebotcazou@adacore.com>
11003
11004         PR target/99422
11005         * config/sparc/constraints.md (w): Rename to...
11006         (W): ... this and ditch previous implementation.
11007         * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
11008         (*movdf_insn_sp64): Likewise.
11009         (*mov<VM64:mode>_insn_sp64): Likewise.
11010         * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
11011         w with W.
11012         (atomic_compare_and_swap_leon3_1): Likewise.
11013         (*atomic_compare_and_swapdi_v8plus): Likewise.
11014         * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
11015         architecture and add missing address validity check during LRA.
11016
11017 2021-03-12  Tobias Burnus  <tobias@codesourcery.com>
11018
11019         PR fortran/98858
11020         * gimplify.c (omp_add_variable): Handle NULL_TREE as size
11021         occuring for assumed-size arrays in use_device_{ptr,addr}.
11022
11023 2021-03-12  Jakub Jelinek  <jakub@redhat.com>
11024
11025         PR target/99321
11026         * config/i386/constraints.md (YW): New internal constraint.
11027         * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
11028         (*<sse2_avx2>_<insn><mode>3<mask_name>,
11029         *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
11030         *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
11031         constraints.
11032         (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
11033         (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
11034         avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
11035         into one, use Yw instead of former x,v.
11036         (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
11037         the last alternative.
11038         (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
11039         <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
11040         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
11041         <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
11042         into one, use <v_Yw> instead of former x,v.
11043         (avx2_interleave_highv32qi<mask_name>,
11044         vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
11045         constraints.  Add && <mask_avx512bw_condition> to condition.
11046         (avx2_interleave_lowv32qi<mask_name>,
11047         vec_interleave_lowv16qi<mask_name>,
11048         avx2_interleave_highv16hi<mask_name>,
11049         vec_interleave_highv8hi<mask_name>,
11050         avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
11051         avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
11052         avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
11053         avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
11054         *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
11055         Yw instead of v in constraints.
11056         * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
11057         (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
11058         instead of Yv in constraints.
11059         (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
11060         *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
11061         *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
11062         mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
11063         *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
11064         constraints.
11065         (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
11066         *mmx_pextrb_zext): Use YW instead of Yv in constraints.
11067         (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
11068         (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
11069         two, one with just x, another isa avx512vl with v.
11070
11071 2021-03-12  Martin Liska  <mliska@suse.cz>
11072
11073         * doc/invoke.texi: Add missing param documentation.
11074
11075 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
11076
11077         PR analyzer/96374
11078         * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
11079         analyzer/trimmed-graph.o.
11080         * doc/analyzer.texi (Analyzer Paths): Rewrite description of
11081         feasibility checking to reflect new implementation.
11082         * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
11083         option.
11084         * shortest-paths.h (shortest_paths::get_shortest_distance): New.
11085
11086 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
11087
11088         * digraph.cc (selftest::test_shortest_paths): Update
11089         shortest_paths init for new param.  Add test of
11090         SPS_TO_GIVEN_TARGET.
11091         * shortest-paths.h (enum shortest_path_sense): New.
11092         (shortest_paths::shortest_paths): Add "sense" param.
11093         Update for renamings.  Generalize to use "sense" param.
11094         (shortest_paths::get_shortest_path): Rename param.
11095         (shortest_paths::m_sense): New field.
11096         (shortest_paths::m_prev): Rename...
11097         (shortest_paths::m_best_edge): ...to this.
11098         (shortest_paths::get_shortest_path): Update for renamings.
11099         Conditionalize flipping of path on sense of traversal.
11100
11101 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
11102
11103         * digraph.cc (selftest::test_shortest_paths): Add test coverage
11104         for paths from B and C.
11105         * shortest-paths.h (shortest_paths::shortest_paths): Handle
11106         unreachable nodes, rather than asserting.
11107
11108 2021-03-11  David Edelsohn  <dje.gcc@gmail.com>
11109
11110         PR target/99094
11111         * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
11112         xcoff_tbss_section_name.
11113         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
11114         * xcoffout.c (xcoff_tbss_section_name): Delete.
11115         * xcoffout.h (xcoff_tbss_section_name): Delete.
11116
11117 2021-03-11  Richard Biener  <rguenther@suse.de>
11118
11119         PR tree-optimization/99523
11120         * tree-cfg.c (dump_function_to_file): Dump SSA names
11121         w/o identifier to the decls section as well, not only those
11122         without a VAR_DECL.
11123
11124 2021-03-11  Jakub Jelinek  <jakub@redhat.com>
11125
11126         PR ipa/99517
11127         * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
11128         function calls with lhs fail if the lhs don't have compatible types.
11129
11130 2021-03-11  Hans-Peter Nilsson  <hp@axis.com>
11131
11132         * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
11133         Change FRAME_POINTER_REGNUM to correspond to a new faked
11134         register faked_fp, part of GENNONACR_REGS like faked_ap.
11135         (CRIS_FAKED_REGS_CONTENTS): New helper macro.
11136         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
11137         (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
11138         (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
11139         * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
11140         register.
11141         (CRIS_REAL_FP_REGNUM): New constant.
11142         * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
11143         for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
11144         (cris_initial_elimination_offset): Handle elimination changes
11145         to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
11146         and add one from FRAME_POINTER_REGNUM to
11147         HARD_FRAME_POINTER_REGNUM.
11148         (cris_expand_prologue, cris_expand_epilogue): Emit code for
11149         hard_frame_pointer_rtx instead of frame_pointer_rtx.
11150
11151 2021-03-10  David Edelsohn  <dje.gcc@gmail.com>
11152
11153         PR target/99492
11154         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
11155         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
11156
11157 2021-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
11158
11159         PR target/99422
11160         * lra-constraints.c (process_address_1): Don't check unknown
11161         constraint, use X for empty constraint.
11162
11163 2021-03-10  Alex Coplan  <alex.coplan@arm.com>
11164
11165         * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
11166         Fix typo in comment describing "is_ha" argument.
11167
11168 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
11169
11170         * doc/sourcebuild.texi: Document LRA target selector.
11171
11172 2021-03-10  David Malcolm  <dmalcolm@redhat.com>
11173
11174         * doc/ux.texi: Add subsection contrasting interactive versus
11175         batch usage of GCC.
11176
11177 2021-03-10  Joel Hutton  <joel.hutton@arm.com>
11178
11179         PR target/99102
11180         * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
11181         check condition.
11182         (vectorizable_load): Fix gather load mask check condition.
11183
11184 2021-03-10  Richard Biener  <rguenther@suse.de>
11185
11186         PR tree-optimization/99510
11187         * tree.c (check_aligned_type): Check that the candidate
11188         has TYPE_USER_ALIGN set instead of matching with the
11189         original type.
11190
11191 2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
11192
11193         * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
11194         float and vector integer modes only if the mode is not larger.
11195
11196 2021-03-10  Hans-Peter Nilsson  <hp@axis.com>
11197
11198         * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
11199
11200 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
11201
11202         * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
11203         constraints > 9.
11204         * ira-lives.c (single_reg_class): Ditto.
11205
11206 2021-03-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11207
11208         * config.gcc (aarch64-*-rtems*): Include general rtems.h after
11209         the architecture-specific rtems.h.
11210         (aarch64-*-rtems*): Likewise.
11211         (arm*-*-rtems*): Likewise.
11212         (epiphany-*-rtems*): Likewise.
11213         (riscv*-*-rtems*): Likewise.
11214
11215 2021-03-09  Jakub Jelinek  <jakub@redhat.com>
11216
11217         PR tree-optimization/99305
11218         * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
11219         before integer_all_onesp instead of vice versa.
11220
11221 2021-03-09  Richard Earnshaw  <rearnsha@arm.com>
11222
11223         * common/config/arm/arm-common.c (arm_config_default): Change type
11224         of 'i' to unsigned.
11225
11226 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
11227
11228         PR target/99454
11229         * lra-constraints.c (process_address_1): Process constraint 'g'
11230         separately and digital constraints containing more one digit.
11231
11232 2021-03-09  Nick Clifton  <nickc@redhat.com>
11233
11234         * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
11235         (DWARF"_DEBUGGING_INFO): Define.
11236
11237 2021-03-09  Eric Botcazou  <ebotcazou@adacore.com>
11238
11239         PR c++/90448
11240         * calls.c (initialize_argument_information): When the argument
11241         is passed by reference, do not make a copy in a thunk only if
11242         the argument is already in memory.  Remove redundant test for
11243         the case of callee copy.
11244
11245 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
11246
11247         PR target/99454
11248         * lra-constraints.c (process_address_1): Process 0..9 constraints
11249         in process_address_1.
11250
11251 2021-03-09  Andreas Krebbel  <krebbel@linux.ibm.com>
11252
11253         * config/s390/s390.c (struct s390_processor processor_table):
11254         Binutils name string must not be empty.
11255
11256 2021-03-09  Claudiu Zissulescu  <claziss@synopsys.com>
11257
11258         * config/arc/arc.c (arc_attr_type): Remove function.
11259
11260 2021-03-09  Martin Liska  <mliska@suse.cz>
11261
11262         PR target/99464
11263         * config/i386/i386-options.c (ix86_option_override_internal):
11264         Set isa_flags for OPTS argument and not for the global
11265         global_options.
11266
11267 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
11268
11269         * config/rs6000/predicates.md (ds_form_mem_operand): Check
11270         in correct code.
11271
11272 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
11273
11274         PR target/99070
11275         * config/rs6000/predicates.md (ds_form_mem_operand) New
11276         predicate.
11277         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
11278         ds_form_mem_operand in ld/lwa patterns.
11279         * config/rs6000/fusion.md: Regenerate file.
11280
11281 2021-03-08  Martin Sebor  <msebor@redhat.com>
11282
11283         PR middle-end/98266
11284         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
11285         (array_bounds_checker::check_array_bounds): Call it.
11286
11287 2021-03-08  Martin Sebor  <msebor@redhat.com>
11288
11289         PR middle-end/97631
11290         * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
11291         (handle_builtin_stxncpy_strncat): Rename locals.  Determine
11292         destination size from allocation calls.  Issue a more appropriate
11293         kind of warning.
11294         (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
11295         (handle_builtin_memset): Same.
11296
11297 2021-03-08  Peter Bergner  <bergner@linux.ibm.com>
11298
11299         PR target/98959
11300         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
11301         to ensure we do not have an Altivec style address.
11302         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
11303         an Altivec style address.
11304         (*vsx_le_perm_store_<mode>): Likewise.
11305         (splitters after *vsx_le_perm_store_<mode>): Likewise.
11306         (vsx_load_<mode>): Disable special expander if passed an Altivec
11307         style address.
11308         (vsx_store_<mode>): Likewise.
11309
11310 2021-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11311
11312         PR target/99437
11313         * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
11314         (aarch64_simd_shift_imm_vec_hi): Likewise.
11315         (aarch64_simd_shift_imm_vec_si): Likewise.
11316         (aarch64_simd_shift_imm_vec_di): Likewise.
11317         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
11318         predicate from above.
11319         (aarch64_shrn<mode>_insn_be): Likewise.
11320         (aarch64_rshrn<mode>_insn_le): Likewise.
11321         (aarch64_rshrn<mode>_insn_be): Likewise.
11322         (aarch64_shrn2<mode>_insn_le): Likewise.
11323         (aarch64_shrn2<mode>_insn_be): Likewise.
11324         (aarch64_rshrn2<mode>_insn_le): Likewise.
11325         (aarch64_rshrn2<mode>_insn_be): Likewise.
11326
11327 2021-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
11328
11329         PR target/99422
11330         * lra-constraints.c (skip_contraint_modifiers): New function.
11331         (process_address_1): Use it before lookup_constraint call.
11332
11333 2021-03-08  Martin Liska  <mliska@suse.cz>
11334
11335         PR target/99463
11336         * config/i386/i386-options.c (ix86_option_override_internal):
11337         Enable UINTR and HRESET for -march that supports it.
11338
11339 2021-03-08  Ilya Leoshkevich  <iii@linux.ibm.com>
11340
11341         * config/s390/s390.c (f_constraint_p): New function.
11342         (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
11343         (TARGET_MD_ASM_ADJUST): Likewise.
11344
11345 2021-03-08  Tobias Burnus  <tobias@codesourcery.com>
11346
11347         PR fortran/97927
11348         * tree-nested.c (convert_local_reference_stmt): Avoid calling
11349         lookup_field_for_decl for Fortran module (= namespace context).
11350
11351 2021-03-08  Andreas Krebbel  <krebbel@linux.ibm.com>
11352
11353         * config/s390/s390.c (s390_expand_vec_compare): Implement <0
11354         comparison with arithmetic right shift.
11355         (s390_expand_vcond): No need for a force_reg anymore.
11356         s390_vec_compare will do it.
11357         * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
11358         immediate operands.
11359
11360 2021-03-07  Jakub Jelinek  <jakub@redhat.com>
11361
11362         PR target/99321
11363         * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
11364         but TARGET_AVX512BW or TARGET_AVX512VL is not set.  Adjust description
11365         and comment.
11366         * config/i386/sse.md (v_Yw): New define_mode_attr.
11367         (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
11368         *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
11369         in constraints.
11370         * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
11371         xYw in constraints.
11372
11373 2021-03-06  Julian Brown  <julian@codesourcery.com>
11374
11375         * tree-pretty-print.c (dump_generic_node): Emit non-generic
11376         address space info for aggregates.
11377
11378 2021-03-06  Hans-Peter Nilsson  <hp@axis.com>
11379
11380         * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
11381
11382 2021-03-05  Jakub Jelinek  <jakub@redhat.com>
11383
11384         PR middle-end/99322
11385         * tree-cfg.c (bb_to_omp_idx): New variable.
11386         (execute_build_cfg): Release the bb_to_omp_idx vector after
11387         cleanup_tree_cfg returns.
11388         (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
11389         for bb_to_omp_idx being a vec<int> instead of pointer to array
11390         of ints.
11391         (make_edges): Remove bb_to_omp_idx local variable, don't pass
11392         it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
11393         vec<int> instead of pointer to array of ints and don't free/release
11394         it at the end.
11395         (remove_bb): When removing a bb and placing forced label somewhere
11396         else, ensure it is put into the same OpenMP region during cfg
11397         pass if possible or to entry successor as fallback.  Unregister
11398         bb from bb_to_omp_idx.
11399
11400 2021-03-05  Vladimir N. Makarov  <vmakarov@redhat.com>
11401
11402         PR target/99378
11403         * lra-constraints.c (process_address_1): Skip decomposing address
11404         for asm insn operand with unknown constraint.
11405
11406 2021-03-05  Martin Jambor  <mjambor@suse.cz>
11407
11408         PR ipa/98078
11409         * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
11410         corresponding speculative edges if we are about to resolve
11411         sepculation.  Make edge direct (and so resolve speculations) before
11412         removing it from call_site_hash.
11413         (cgraph_edge::make_direct): Relax the initial assert to allow calling
11414         the function on speculative direct edges.
11415
11416 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
11417
11418         PR rtl-optimization/99376
11419         * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
11420         of low-order zero bits is too large, set the result to 0 directly.
11421
11422 2021-03-04  Jakub Jelinek  <jakub@redhat.com>
11423
11424         PR middle-end/93235
11425         * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
11426         SUBREG and a SUBREG to op_mode can't be created.
11427
11428 2021-03-04  Alex Coplan  <alex.coplan@arm.com>
11429
11430         PR target/99381
11431         * config/aarch64/aarch64-sve-builtins.cc
11432         (function_resolver::require_vector_type): Handle error_mark_node.
11433
11434 2021-03-04  Ilya Leoshkevich  <iii@linux.ibm.com>
11435
11436         * cfgexpand.c (expand_asm_loc): Pass new parameter.
11437         (expand_asm_stmt): Likewise.
11438         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
11439         parameter.
11440         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
11441         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
11442         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
11443         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
11444         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
11445         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
11446         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
11447         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
11448         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
11449         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
11450         * doc/tm.texi (md_asm_adjust): Likewise.
11451         * target.def (md_asm_adjust): Likewise.
11452
11453 2021-03-04  Richard Biener  <rguenther@suse.de>
11454
11455         PR middle-end/97855
11456         * tree-pretty-print.c: Poison pp_printf.
11457         (dump_decl_name): Avoid use of pp_printf.
11458         (dump_block_node): Likewise.
11459         (dump_generic_node): Likewise.
11460
11461 2021-03-04  Martin Sebor  <msebor@redhat.com>
11462
11463         PR middle-end/96963
11464         PR middle-end/94655
11465         * builtins.c (handle_array_ref): New helper.
11466         (handle_mem_ref): New helper.
11467         (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
11468         into new helper functions.  Correct a workaround for vectorized
11469         assignments.
11470
11471 2021-03-03  Pat Haugen  <pthaugen@linux.ibm.com>
11472
11473         * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
11474         floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
11475         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
11476         *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
11477         attribute for Power10.
11478         * config/rs6000/mma.md (*movoo): Likewise.
11479         * config/rs6000/rs6000.md (define_attr "size"): Add 256.
11480         (define_mode_attr bits): Add DD/TD modes.
11481         * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
11482         store_conditionalpti): Update size attribute for Power10.
11483
11484 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11485
11486         PR bootstrap/92002
11487         * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
11488         -Wuninitialized, -Wmaybe-uninitialized.
11489         (wide-int.o-warn): Likewise.
11490
11491 2021-03-03  Richard Earnshaw  <rearnsha@arm.com>
11492
11493         * common/config/arm/arm-common.c: Include configargs.h.
11494         (arm_config_default): New function.
11495         (arm_target_mode): Renamed from arm_target_thumb_only.  Handle
11496         processors that do not support Thumb.  Take into account the
11497         --with-mode configuration setting for selecting the default.
11498         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
11499         (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
11500
11501 2021-03-03  Martin Liska  <mliska@suse.cz>
11502
11503         PR gcov-profile/97461
11504         * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
11505
11506 2021-03-03  Eric Botcazou  <ebotcazou@adacore.com>
11507
11508         PR target/99234
11509         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
11510         point back the hard frame pointer to its default location when the
11511         frame is larger than SEH_MAX_FRAME_SIZE.
11512
11513 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
11514
11515         PR target/99321
11516         * config/i386/predicates.md (logic_operator): New define_predicate.
11517         * config/i386/i386.md (mov + mem using comm arith peephole2):
11518         Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
11519         and the inner mode is [QH]Imode.
11520
11521 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
11522
11523         PR debug/99090
11524         * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
11525         (new_loc_list): Clear end_entry.
11526         (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
11527         if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx.  Fix comment
11528         typo.
11529         (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
11530         initialize also end_entry.
11531
11532 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
11533
11534         PR target/99085
11535         * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
11536         partitions, if in non-layout mode after reorder_blocks also move
11537         affected blocks to ensure a single partition transition.
11538
11539 2021-03-03  Jason Merrill  <jason@redhat.com>
11540
11541         PR c++/96078
11542         * cgraphunit.c (process_function_and_variable_attributes): Don't
11543         warn about flatten on an alias if the target also has it.
11544         * cgraph.h (symtab_node::get_alias_target_tree): New.
11545
11546 2021-03-02  David Edelsohn  <dje.gcc@gmail.com>
11547
11548         * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
11549         period to symbol name.
11550         (tls_get_addr_internal<mode>): Same.
11551
11552 2021-03-02  David Malcolm  <dmalcolm@redhat.com>
11553
11554         PR c/99323
11555         * diagnostic-show-locus.c
11556         (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
11557         column 0.
11558
11559 2021-03-02  Martin Sebor  <msebor@redhat.com>
11560
11561         PR middle-end/99276
11562         * builtins.c (warn_for_access): Remove stray warning text.
11563
11564 2021-03-02  Martin Sebor  <msebor@redhat.com>
11565
11566         PR middle-end/99295
11567         * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
11568         property.
11569
11570 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
11571
11572         PR debug/99319
11573         * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
11574         -gdwarf-5 -gstrict-dwarf.  For -gsplit-dwarf -gdwarf-5 use
11575         DW_MACRO_*_strx instead of DW_MACRO_*_strp.  Handle
11576         DW_MACRO_define_strx and DW_MACRO_undef_strx.
11577         (save_macinfo_strings): Use DW_MACRO_*_str* even with
11578         -gdwarf-5 -gstrict-dwarf.  Handle DW_MACRO_define_strx and
11579         DW_MACRO_undef_strx.
11580
11581 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
11582
11583         * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
11584         builtin signature.
11585         (BT_FN_V8HI_V8HI_UINT): Likewise.
11586         (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
11587         * config/s390/s390-builtins.def (B_NNPA): New macro definition.
11588         (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
11589         New builtin definitions.
11590         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
11591         vector extension version.
11592         * config/s390/s390.c (s390_expand_builtin): Check if builtins are
11593         available with current -march level.
11594         * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
11595         (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
11596         (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
11597         * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
11598         (vec_extend_to_fp32_lo): Likewise.
11599         (vec_round_from_fp32): Likewise.
11600         (vec_convert_to_fp16): Likewise.
11601         (vec_convert_from_fp16): Likewise.
11602         * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
11603         (vclfnls_v8hi): Likewise.
11604         (vcrnfs_v8hi): Likewise.
11605         (vcfn_v8hi): Likewise.
11606         (vcnf_v8hi): Likewise.
11607
11608 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
11609
11610         * common/config/s390/s390-common.c (processor_flags_table): New entry.
11611         * config.gcc: Enable arch14 for --with-arch and --with-tune.
11612         * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
11613         arch14 for unknown CPU models.
11614         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
11615         * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
11616         (s390_get_sched_attrmask): Likewise.
11617         (s390_get_unit_mask): Likewise.
11618         * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
11619         (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
11620         (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
11621         (TARGET_NNPA_P): New macro definitions.
11622         * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
11623         * config/s390/s390.opt: Add PROCESSOR_ARCH14.
11624
11625 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
11626
11627         PR middle-end/95757
11628         * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
11629         condition.  Call register_edge_assert_for_1 for == 0, != 0, == 1 and
11630         != 1 comparisons if name is lhs of a comparison.
11631
11632 2021-03-01  Iain Sandoe  <iain@sandoe.co.uk>
11633
11634         PR target/44107
11635         PR target/48097
11636         * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
11637         * config/darwin.c (darwin_should_restore_cfa_state): New.
11638         * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
11639         * doc/tm.texi: Regenerated.
11640         * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
11641         * dwarf2cfi.c (connect_traces): If the target requests, restore
11642         the CFA expression after a DW_CFA_restore.
11643         * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
11644
11645 2021-03-01  Martin Liska  <mliska@suse.cz>
11646
11647         PR target/99313
11648         * optc-save-gen.awk: Add 4 more exceptions.
11649
11650 2021-03-01  Nathan Sidwell  <nathan@acm.org>
11651
11652         PR c++/99294
11653         * tree.h (TYPE_ALIGN_RAW): New accessor.
11654         (TYPE_ALIGN): Use it.
11655
11656 2021-03-01  Jan Hubicka  <jh@suse.cz>
11657
11658         PR ipa/98338
11659         * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
11660
11661 2021-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11662
11663         PR target/99234
11664         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
11665         point the hard frame pointer to the SSE register save area instead
11666         of the general register save area.  Perform only minimal adjustment
11667         for small frames if it is initially not correctly aligned.
11668         (ix86_expand_prologue): Remove early saves for a SEH target.
11669         * config/i386/winnt.c (struct seh_frame_state): Document constraint.
11670
11671 2021-02-28  Jakub Jelinek  <jakub@redhat.com>
11672
11673         PR c/99304
11674         * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
11675         typo - referneced -> referenced.
11676         * tree.c (component_ref_size): Fix comment typo -
11677         refernce -> reference.
11678         * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
11679         traling -> trailing.
11680         (aliasing_component_refs_p): Fix comment typos -
11681         refernce -> reference and refernece -> reference and
11682         traling -> trailing.
11683         (nonoverlapping_refs_since_match_p): Fix comment typo -
11684         referneces -> references.
11685         * doc/invoke.texi (--param modref-max-bases): Fix a typo -
11686         referneces -> references.
11687
11688 2021-02-27  Iain Sandoe  <iain@sandoe.co.uk>
11689
11690         * config/host-darwin.c (darwin_gt_pch_use_address): Modify
11691         diagnostic message to avoid use of a contraction and format
11692         warning.
11693
11694 2021-02-27  Jakub Jelinek  <jakub@redhat.com>
11695
11696         PR other/99288
11697         * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
11698         HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
11699         * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
11700         HOST_WIDE_INT_PRINT_DEC in inform format string.  Fix comment
11701         typos.
11702
11703 2021-02-26  Richard Biener  <rguenther@suse.de>
11704
11705         PR middle-end/99281
11706         * expr.c (store_field): For calls with return-slot optimization
11707         and addressable return type expand the store directly.
11708
11709 2021-02-26  Richard Biener  <rguenther@suse.de>
11710
11711         PR c/99275
11712         * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
11713
11714 2021-02-26  Peter Bergner  <bergner@linux.ibm.com>
11715
11716         PR target/99279
11717         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
11718         with an "if" test.
11719
11720 2021-02-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
11721
11722         * config.gcc: Add rs6000-pcrel-opt.o.
11723         * config/rs6000/rs6000-pcrel-opt.c: New file.
11724         * config/rs6000/pcrel-opt.md: New file.
11725         * config/rs6000/predicates.md: Add d_form_memory predicate.
11726         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
11727         * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
11728         * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
11729         pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
11730         and make_pass_pcrel_opt().
11731         * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
11732         (rs6000_option_override_internal): Add pcrel-opt.
11733         (rs6000_delegitimize_address): Support pcrel-opt.
11734         (rs6000_opt_masks): Add pcrel-opt.
11735         (pcrel_opt_valid_mem_p): New function.
11736         (reg_to_non_prefixed): Make global.
11737         (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
11738         (output_pcrel_opt_reloc): New function.
11739         * config/rs6000/rs6000.md (loads_extern_addr): New attr.
11740         (pcrel_extern_addr): Set loads_extern_addr.
11741         Add include for pcrel-opt.md.
11742         * config/rs6000/rs6000.opt: Add -mpcrel-opt.
11743         * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
11744         pcrel-opt.md.
11745
11746 2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
11747
11748         PR target/98996
11749         * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
11750         If TARGET_64BIT and dest is SUBREG, we check the width, if it
11751         equal to SImode, we use SImode operation, just like what we are
11752         doing for REG one.
11753
11754 2021-02-26  Marek Polacek  <polacek@redhat.com>
11755
11756         * builtins.c (warn_for_access): Fix typos.
11757
11758 2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
11759
11760         * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
11761         mark in front of the immediate quantity.
11762         (<optab>_rolsi3_uxtw): Likewise.
11763
11764 2021-02-25  Richard Earnshaw  <rearnsha@arm.com>
11765
11766         PR target/99271
11767         * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
11768         (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
11769         (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
11770         address and disable when the FPCXT is not available.
11771         (nonsecure_call_value_reg_thumb2): Likewise.
11772
11773 2021-02-25  Nathan Sidwell  <nathan@acm.org>
11774
11775         PR c++/99166
11776         * doc/invoke.texi (flang-info-module-cmi): Renamed option.
11777
11778 2021-02-25  Tamar Christina  <tamar.christina@arm.com>
11779
11780         * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
11781
11782 2021-02-25  Richard Biener  <rguenther@suse.de>
11783
11784         PR tree-optimization/99253
11785         * tree-vect-loop.c (check_reduction_path): First compute
11786         code, then verify out-of-loop uses.
11787
11788 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
11789
11790         PR target/95798
11791         * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
11792
11793 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
11794
11795         PR tree-optimization/80635
11796         * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
11797         VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
11798         has mode precision.
11799
11800 2021-02-25  Richard Biener  <rguenther@suse.de>
11801
11802         * tree-vect-slp.c (optimize_load_redistribution_1): Delay
11803         load_map population.
11804         (vect_match_slp_patterns_2): Revert part of last change.
11805         (vect_analyze_slp): Do not interleave optimize_load_redistribution
11806         with pattern detection but do it afterwards.  Dump the
11807         whole SLP graph after pattern recognition and load
11808         redistribution optimization finished.
11809
11810 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
11811
11812         PR fortran/99226
11813         * omp-low.c (struct omp_context): Add teams_nested_p and
11814         nonteams_nested_p members.
11815         (scan_omp_target): Diagnose teams nested inside of target with other
11816         directives strictly nested inside of the same target.
11817         (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
11818         ctx->nonteams_nested_p as needed.
11819
11820 2021-02-24  Vladimir N. Makarov  <vmakarov@redhat.com>
11821
11822         PR inline-asm/99123
11823         * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
11824
11825 2021-02-24  Hans-Peter Nilsson  <hp@axis.com>
11826
11827         * config/cris/cris.c (cris_expand_prologue): Set
11828         current_function_static_stack_size, if flag_stack_usage_info.
11829
11830 2021-02-24  Pat Haugen  <pthaugen@linux.ibm.com>
11831
11832         * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
11833         (rs6000_final_prescan_insn): Adjust.
11834         (rs6000_asm_output_opcode): Likewise.
11835
11836 2021-02-24  Martin Sebor  <msebor@redhat.com>
11837
11838         PR middle-end/97172
11839         * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
11840         from function arguments.
11841
11842 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
11843
11844         PR tree-optimization/99220
11845         * tree-vect-slp.c (optimize_load_redistribution_1): Remove
11846         node from cache when it's about to be deleted.
11847
11848 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
11849
11850         PR tree-optimization/99225
11851         * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
11852         to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
11853         build_int_cst (..., 1).  Formatting fixes.
11854
11855 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
11856
11857         PR tree-optimization/99149
11858         * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
11859         buffer.
11860         (vect_slp_reset_pattern): Remove.
11861         (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
11862         (complex_mul_pattern::build, complex_fma_pattern::build,
11863         complex_fms_pattern::build): Fix ref counts.
11864         * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
11865         when node is being deleted.
11866         (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
11867         (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
11868         stores.
11869         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
11870
11871 2021-02-24  Matthias Klose  <doko@ubuntu.com>
11872
11873         Revert:
11874         2020-12-07  Matthias Klose  <doko@ubuntu.com>
11875
11876         * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
11877         and ENABLE_RTL_FLAG_CHECKING.
11878
11879 2021-02-24  Richard Biener  <rguenther@suse.de>
11880
11881         PR c/99224
11882         * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
11883
11884 2021-02-23  Peter Bergner  <bergner@linux.ibm.com>
11885
11886         * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
11887         (vsx_assemble_pair): ...to this.
11888         (*mma_assemble_pair): Rename from this...
11889         (*vsx_assemble_pair): ...to this.
11890         (mma_disassemble_pair): Rename from this...
11891         (vsx_disassemble_pair): ...to this.
11892         (*mma_disassemble_pair): Rename from this...
11893         (*vsx_disassemble_pair): ...to this.
11894         * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
11895         BU_COMPAT): New macros.
11896         (mma_assemble_pair): Rename from this...
11897         (vsx_assemble_pair): ...to this.
11898         (mma_disassemble_pair): Rename from this...
11899         (vsx_disassemble_pair): ...to this.
11900         (mma_assemble_pair): New compatibility built-in.
11901         (mma_disassemble_pair): Likewise.
11902         * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
11903         (RS6000_BUILTIN_COMPAT): Define.
11904         (bdesc_compat): New.
11905         (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
11906         (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
11907         and VSX_BUILTIN_ASSEMBLE_PAIR.
11908         (rs6000_init_builtins): Register compatibility built-ins.
11909         (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
11910         VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
11911         VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
11912         * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
11913         (__builtin_vsx_assemble_pair): ...to this.
11914         (__builtin_mma_disassemble_pair): Rename from this...
11915         (__builtin_vsx_disassemble_pair): ...to this.
11916
11917 2021-02-23  Martin Liska  <mliska@suse.cz>
11918
11919         PR sanitizer/99168
11920         * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
11921         with different alignment. That leads to an invalid red zone
11922         size allocated in runtime.
11923
11924 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
11925
11926         PR tree-optimization/99204
11927         * fold-const.c (fold_read_from_constant_string): Check that
11928         tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
11929
11930 2021-02-23  Segher Boessenkool  <segher@kernel.crashing.org>
11931             Kewen Lin  <linkw@gcc.gnu.org>
11932
11933         * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
11934         (rotl<mode>3_insert_3): ...this.
11935         (plus_ior_xor): New code_iterator.
11936         (define_split for GPR rl*imi): New splitter.
11937         * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
11938         for integer merging.
11939
11940 2021-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11941
11942         * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
11943         Define.
11944         * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
11945         into a register when the above is enabled.
11946         * config/aarch64/aarch64.c (neoversev1_tunings):
11947         AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
11948         (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
11949
11950 2021-02-22  Hans-Peter Nilsson  <hp@axis.com>
11951
11952         * config/cris/cris.c (cris_print_operand) <'T'>: Change
11953         valid operand from is now an addi mult-value to shift-value.
11954         * config/cris/cris.md (*addi): Change expression of scaled
11955         operand from mult to ashift.
11956         * config/cris/cris.md (*addi_reload): New insn_and_split.
11957
11958 2021-02-22  John David Anglin  <danglin@gcc.gnu.org>
11959
11960         PR target/85074
11961         * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
11962         hook_bool_const_tree_hwi_hwi_const_tree_true.
11963         (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
11964
11965 2021-02-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11966
11967         PR rtl-optimization/98791
11968         * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
11969         for unordered modes.
11970
11971 2021-02-22  Martin Liska  <mliska@suse.cz>
11972
11973         * tree-inline.c (inline_forbidden_p): Set
11974         inline_forbidden_reason.
11975
11976 2021-02-22  Richard Biener  <rguenther@suse.de>
11977
11978         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
11979         costed subgraph.
11980
11981 2021-02-22  Richard Biener  <rguenther@suse.de>
11982
11983         PR tree-optimization/99165
11984         * gimple-ssa-store-merging.c (pass_store_merging::process_store):
11985         Accumulate changed to ret.
11986
11987 2021-02-21  Uros Bizjak  <ubizjak@gmail.com>
11988
11989         Revert:
11990         2020-12-09  Uroš Bizjak  <ubizjak@gmail.com>
11991
11992         * config/i386/i386.h (REG_ALLOC_ORDER): Remove
11993
11994 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
11995
11996         PR target/99134
11997         * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
11998         pattern.
11999         (trunctf<DFP_ALL:mode>2): Likewise.
12000         (trunctdtf2_vr): Likewise.
12001         (trunctdtf2): Likewise.
12002         (extend<DFP_ALL:mode>tf2_vr): Likewise.
12003         (extend<DFP_ALL:mode>tf2): Likewise.
12004         (extendtftd2_vr): Likewise.
12005         (extendtftd2): Likewise.
12006
12007 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
12008
12009         * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
12010         add memory alternative.
12011         (tf_to_fprx2): New pattern.
12012
12013 2021-02-19  Martin Sebor  <msebor@redhat.com>
12014
12015         PR c/97172
12016         * attribs.c (init_attr_rdwr_indices): Guard vblist use.
12017         (attr_access::free_lang_data): Remove a spurious test.
12018
12019 2021-02-19  Nathan Sidwell  <nathan@acm.org>
12020
12021         * doc/invoke.texi (flang-info-module-read): Document.
12022
12023 2021-02-19  Martin Liska  <mliska@suse.cz>
12024
12025         PR translation/99167
12026         * params.opt: Fix typo.
12027
12028 2021-02-19  Richard Biener  <rguenther@suse.de>
12029
12030         PR middle-end/99122
12031         * tree-inline.c (inline_forbidden_p): Do not inline functions
12032         with VLA arguments or return value.
12033
12034 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
12035
12036         PR target/98998
12037         * config/arm/arm.md (*stack_protect_combined_set_insn,
12038         *stack_protect_combined_test_insn): If force_const_mem result
12039         is not valid general operand, force its address into the destination
12040         register first.
12041
12042 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
12043
12044         PR ipa/99034
12045         * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
12046         pad or non-local label, put FORCED_LABELs from bb b after that label
12047         rather than before it.
12048
12049 2021-02-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12050
12051         PR target/98657
12052         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
12053         expand_vector_broadcast' to emit the vec_duplicate operand.
12054
12055 2021-02-18  Vladimir N. Makarov  <vmakarov@redhat.com>
12056
12057         PR rtl-optimization/96264
12058         * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
12059         hard regs.
12060
12061 2021-02-18  H.J. Lu  <hjl.tools@gmail.com>
12062
12063         PR target/99113
12064         * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
12065         looking up the retain attribute.
12066         (resolve_unique_section): Likewise.
12067         (get_variable_section): Likewise.
12068         (switch_to_section): Likewise.  Warn when a symbol without the
12069         retain attribute and a symbol with the retain attribute are
12070         placed in the section with the same name, instead of the used
12071         attribute.
12072         * doc/extend.texi: Document the "retain" attribute.
12073
12074 2021-02-18  Nathan Sidwell  <nathan@acm.org>
12075
12076         PR c++/99023
12077         * doc/invoke.texi (flang-info-include-translate): Document header
12078         lookup behaviour.
12079
12080 2021-02-18  Richard Biener  <rguenther@suse.de>
12081
12082         PR middle-end/99122
12083         * ipa-fnsummary.c (analyze_function_body): Set
12084         CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
12085         * tree-inline.c (insert_init_debug_bind): Pass NULL for
12086         error_mark_node values.
12087         (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
12088         values.
12089         (setup_one_parameter): Delay force_value_to_type until when
12090         it's needed.
12091
12092 2021-02-18  Hans-Peter Nilsson  <hp@axis.com>
12093
12094         PR tree-optimization/99142
12095         * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
12096
12097 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
12098
12099         * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
12100         wide_int_bitmask::wide_int_bitmask (uint64_t),
12101         wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
12102         wide_int_bitmask::operator ~ () const,
12103         wide_int_bitmask::operator | (wide_int_bitmask) const,
12104         wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
12105         instead of inline.
12106         * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
12107         PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
12108         PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
12109         PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
12110         PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
12111         PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
12112         PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
12113         PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
12114         PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
12115         PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
12116         PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
12117         PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
12118         PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
12119         PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
12120         PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
12121         PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
12122         PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
12123         PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
12124         PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
12125         PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
12126         PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
12127         PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
12128         PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
12129         PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
12130
12131 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
12132
12133         PR middle-end/99109
12134         * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
12135         (build_printable_array_type): ... this.  Add nelts argument.  For
12136         overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead.  If
12137         nelts, call build_array_type_nelts.
12138         (array_bounds_checker::check_mem_ref): Use build_printable_array_type
12139         instead of build_zero_elt_array_type and build_array_type_nelts.
12140
12141 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
12142
12143         PR target/99104
12144         * config/i386/i386.c (distance_non_agu_define): Don't call
12145         extract_insn_cached here.
12146         (ix86_lea_outperforms): Save and restore recog_data around call
12147         to distance_non_agu_define and distance_agu_use.
12148         (ix86_ok_to_clobber_flags): Remove.
12149         (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
12150         (ix86_avoid_lea_for_addr): Likewise.  Adjust function comment.
12151         * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
12152         into define_insn.  Move the splitting to define_peephole2 and
12153         check there using peep2_regno_dead_p if FLAGS_REG is dead.
12154
12155 2021-02-17  Julian Brown  <julian@codesourcery.com>
12156
12157         * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
12158         for non-decls.
12159
12160 2021-02-17  Xi Ruoyao  <xry111@mengyan1223.wang>
12161
12162         PR target/98491
12163         * config/mips/mips.c (mips_symbol_insns): Do not use
12164         MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
12165
12166 2021-02-16  Vladimir N. Makarov  <vmakarov@redhat.com>
12167
12168         PR inline-asm/98096
12169         * stmt.c (resolve_operand_name_1): Take inout operands into account
12170         for access to labels by names.
12171         * doc/extend.texi: Describe counting operands for accessing labels.
12172
12173 2021-02-16  Richard Biener  <rguenther@suse.de>
12174
12175         PR tree-optimization/38474
12176         * tree-ssa-structalias.c (variable_info::address_taken): New.
12177         (new_var_info): Initialize address_taken.
12178         (process_constraint): Set address_taken.
12179         (solve_constraints): Use the new address_taken flag rather
12180         than is_reg_var for sorting variables.
12181         (dump_constraint): Dump the variable number if the name
12182         is just NULL.
12183
12184 2021-02-16  Jakub Jelinek  <jakub@redhat.com>
12185
12186         PR target/99100
12187         * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
12188         multiply by 4096 and for inbranch by 8192.
12189         * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
12190         return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
12191
12192 2021-02-15  Maya Rashish  <coypu@sdf.org>
12193
12194         * config/aarch64/aarch64.c (aarch64_init_builtins):
12195         Call SUBTARGET_INIT_BUILTINS.
12196
12197 2021-02-15  Peter Bergner  <bergner@linux.ibm.com>
12198
12199         PR rtl-optimization/98872
12200         * init-regs.c (initialize_uninitialized_regs): Skip initialization
12201         if CONST0_RTX is NULL.
12202
12203 2021-02-15  Richard Sandiford  <richard.sandiford@arm.com>
12204
12205         PR rtl-optimization/98863
12206         * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
12207         (function_info::build_info): Turn into a declaration, moving the
12208         definition to internals.h.
12209         (function_info::bb_walker): Declare.
12210         (function_info::create_reg_use): Likewise.
12211         (function_info::calculate_potential_phi_regs): Take a build_info
12212         parameter.
12213         (function_info::place_phis, function_info::create_ebbs): Declare.
12214         (function_info::calculate_ebb_live_in_for_debug): Likewise.
12215         (function_info::populate_backedge_phis): Delete.
12216         (function_info::start_block, function_info::end_block): Declare.
12217         (function_info::populate_phi_inputs): Delete.
12218         (function_info::m_potential_phi_regs): Move information to build_info.
12219         * rtl-ssa/internals.h: New file.
12220         (function_info::bb_phi_info): New class.
12221         (function_info::build_info): Moved from functions.h.
12222         Add a constructor and destructor.
12223         (function_info::build_info::ebb_use): Delete.
12224         (function_info::build_info::ebb_def): Likewise.
12225         (function_info::build_info::bb_live_out): Likewise.
12226         (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
12227         (function_info::build_info::potential_phi_regs): Likewise.
12228         (function_info::build_info::potential_phi_regs_for_debug): Likewise.
12229         (function_info::build_info::ebb_def_regs): Likewise.
12230         (function_info::build_info::bb_phis): Likewise.
12231         (function_info::build_info::bb_mem_live_out): Likewise.
12232         (function_info::build_info::bb_to_rpo): Likewise.
12233         (function_info::build_info::def_stack): Likewise.
12234         (function_info::build_info::old_def_stack_limit): Likewise.
12235         * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
12236         Remove the regno argument.  Push the previous definition onto the
12237         definition stack where necessary.
12238         * rtl-ssa/accesses.cc: Include internals.h.
12239         * rtl-ssa/changes.cc: Likewise.
12240         * rtl-ssa/blocks.cc: Likewise.
12241         (function_info::build_info::build_info): Define.
12242         (function_info::build_info::~build_info): Likewise.
12243         (function_info::bb_walker): New class.
12244         (function_info::bb_walker::bb_walker): Define.
12245         (function_info::add_live_out_use): Convert a logarithmic-complexity
12246         test into a linear one.  Allow the same definition to be passed
12247         multiple times.
12248         (function_info::calculate_potential_phi_regs): Moved from
12249         functions.cc.  Take a build_info parameter and store the
12250         information there instead.
12251         (function_info::place_phis): New function.
12252         (function_info::add_entry_block_defs): Update call to record_reg_def.
12253         (function_info::calculate_ebb_live_in_for_debug): New function.
12254         (function_info::add_phi_nodes): Use bb_phis to decide which
12255         registers need phi nodes and initialize ebb_def_regs accordingly.
12256         Do not add degenerate phis here.
12257         (function_info::add_artificial_accesses): Use create_reg_use.
12258         Assert that all definitions are listed in the DF LR sets.
12259         Update call to record_reg_def.
12260         (function_info::record_block_live_out): Record live-out register
12261         values in the phis of successor blocks.  Use the live-out set
12262         when processing the last block in an EBB, instead of always
12263         using the live-in sets of successor blocks.  AND the live sets
12264         with the set of registers that have been defined in the EBB,
12265         rather than with all potential phi registers.  Cope correctly
12266         with branches back to the start of the current EBB.
12267         (function_info::start_block): New function.
12268         (function_info::end_block): Likewise.
12269         (function_info::populate_phi_inputs): Likewise.
12270         (function_info::create_ebbs): Likewise.
12271         (function_info::process_all_blocks): Rewrite into a multi-phase
12272         process.
12273         * rtl-ssa/functions.cc: Include internals.h.
12274         (function_info::calculate_potential_phi_regs): Move to blocks.cc.
12275         (function_info::init_function_data): Remove caller.
12276         * rtl-ssa/insns.cc: Include internals.h
12277         (function_info::create_reg_use): New function.  Lazily any
12278         degenerate phis needed by the linear RPO view.
12279         (function_info::record_use): Use create_reg_use.  When processing
12280         debug uses, use potential_phi_regs and test it before checking
12281         whether the register is live on entry to the current EBB.  Lazily
12282         calculate ebb_live_in_for_debug.
12283         (function_info::record_call_clobbers): Update call to record_reg_def.
12284         (function_info::record_def): Likewise.
12285
12286 2021-02-15  Martin Liska  <mliska@suse.cz>
12287
12288         * toplev.c (init_asm_output): Free output of
12289         gen_command_line_string function.
12290         (process_options): Likewise.
12291
12292 2021-02-15  Martin Liska  <mliska@suse.cz>
12293
12294         * params.opt: Add 2 missing Param keywords.
12295
12296 2021-02-15  Eric Botcazou  <ebotcazou@adacore.com>
12297
12298         * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
12299
12300 2021-02-15  Jakub Jelinek  <jakub@redhat.com>
12301
12302         PR tree-optimization/99079
12303         * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
12304         useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
12305         require both type and TREE_TYPE (@1) to be integral types and either
12306         type having smaller or equal precision, or TREE_TYPE (@1) being
12307         unsigned type, or type being signed type.  If TREE_TYPE (@1)
12308         doesn't have wrapping overflow, perform the subtraction of one in
12309         unsigned type.
12310
12311 2021-02-14  Jan Hubicka  <hubicka@ucw.cz>
12312             Richard Biener  <rguether@suse.de>
12313
12314         PR ipa/97346
12315         * ipa-reference.c (ipa_init): Only conditinally initialize
12316         reference_vars_to_consider.
12317         (propagate): Conditionally deninitialize reference_vars_to_consider.
12318         (ipa_reference_write_optimization_summary): Sanity check that
12319         reference_vars_to_consider is not allocated.
12320
12321 2021-02-13  Levy Hsu  <admin@levyhsu.com>
12322
12323         PR target/97417
12324         * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
12325         extend parameter to get_si_mem_base_reg declaration.
12326         (get_si_mem_base_reg): Add extend parameter.  Set it.
12327         (analyze): Pass extend arg to get_si_mem_base_reg.
12328         (transform): Likewise.  Use it when rewriting mems.
12329         * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
12330         loads and emit sign/zero extending load followed by subreg move.
12331
12332 2021-02-13  Jim Wilson  <jimw@sifive.com>
12333
12334         PR target/97417
12335         * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
12336         exit when !reload_completed.  Only perform check for compressed reg
12337         if reload_completed.
12338         (riscv_rtx_costs): In MEM case, when optimizing for size and
12339         shorten memrefs, if not compressible, then increase cost.
12340
12341 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
12342
12343         PR rtl-optimization/98439
12344         * recog.c (pass_split_before_regstack::gate): Enable even when
12345         pass_split_before_sched2 is enabled if -fselective-scheduling2 is
12346         on.
12347
12348 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
12349
12350         PR target/96166
12351         * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
12352         swap of V2SImode elements in memory into DImode memory rotate by 32.
12353
12354 2021-02-12  Martin Sebor  <msebor@redhat.com>
12355
12356         * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
12357
12358 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
12359
12360         * rtl-ssa/accesses.cc (function_info::make_use_available): Use
12361         m_temp_obstack rather than m_obstack to allocate the temporary use.
12362
12363 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
12364
12365         * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
12366         as read-modify operations.
12367
12368 2021-02-12  Richard Biener  <rguenther@suse.de>
12369
12370         PR middle-end/38474
12371         * ipa-fnsummary.c (unmodified_parm_1): Only walk when
12372         fbi->aa_walk_budget is bigger than zero.  Update
12373         fbi->aa_walk_budget.
12374         (param_change_prob): Likewise.
12375         * ipa-prop.c (detect_type_change_from_memory_writes):
12376         Properly account walk_aliased_vdefs.
12377         (parm_preserved_before_stmt_p): Canonicalize updates.
12378         (parm_ref_data_preserved_p): Likewise.
12379         (parm_ref_data_pass_through_p): Likewise.
12380         (determine_known_aggregate_parts): Account own alias queries.
12381
12382 2021-02-12  Martin Liska  <mliska@suse.cz>
12383
12384         * opts-common.c (decode_cmdline_option): Release werror_arg.
12385         * opts.c (gen_producer_string): Release output of
12386         gen_command_line_string.
12387
12388 2021-02-12  Richard Biener  <rguenther@suse.de>
12389
12390         PR tree-optimization/38474
12391         * params.opt (-param=max-store-chains-to-track=): New param.
12392         (-param=max-stores-to-track=): Likewise.
12393         * doc/invoke.texi (max-store-chains-to-track): Document.
12394         (max-stores-to-track): Likewise.
12395         * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
12396         New.
12397         (pass_store_merging::m_n_stores): Likewise.
12398         (pass_store_merging::terminate_and_process_chain): Update
12399         m_n_stores and m_n_chains.
12400         (pass_store_merging::process_store): Likewise.   Terminate
12401         oldest chains if the number of stores or chains get too large.
12402         (imm_store_chain_info::terminate_and_process_chain): Dump
12403         chain length.
12404
12405 2021-02-11  Eric Botcazou  <ebotcazou@adacore.com>
12406
12407         * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
12408         the cold section, emit a nop before the directive if the previous
12409         active instruction can throw.
12410
12411 2021-02-11  Peter Bergner  <bergner@linux.ibm.com>
12412
12413         PR target/99041
12414         * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
12415         memory addresses that are legal for quad word accesses.
12416
12417 2021-02-11  Andrea Corallo  <andrea.corallo@arm.com>
12418
12419         PR target/98931
12420         * config/arm/thumb2.md (*doloop_end_internal): Generate
12421         alternative sequence to handle long range branches.
12422
12423 2021-02-11  Joel Hutton  <joel.hutton@arm.com>
12424
12425         PR tree-optimization/98772
12426         * optabs-tree.c (supportable_half_widening_operation): New function
12427         to check for supportable V8QI->V8HI widening patterns.
12428         * optabs-tree.h (supportable_half_widening_operation): New function.
12429         * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
12430         to create promotion stmts for V8QI->V8HI widening patterns.
12431         (vectorizable_conversion): Add case for V8QI->V8HI.
12432
12433 2021-02-11  Richard Biener  <rguenther@suse.de>
12434
12435         * sparseset.h (SPARSESET_ELT_BITS): Remove.
12436         (SPARSESET_ELT_TYPE): Use unsigned int.
12437         * fwprop.c: Do not include sparseset.h.
12438
12439 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12440
12441         PR c++/99035
12442         * varasm.c (declare_weak): For -fsyntax-only, allow even
12443         TREE_ASM_WRITTEN function decls.
12444
12445 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12446
12447         PR target/99025
12448         * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
12449         <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
12450         <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
12451         <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
12452         calling simplify_gen_subreg on it.
12453
12454 2021-02-10  Martin Liska  <mliska@suse.cz>
12455
12456         * config/nvptx/nvptx.c (nvptx_option_override): Use
12457         flag_patchable_function_entry instead of the removed
12458         function_entry_patch_area_size.
12459
12460 2021-02-10  Martin Liska  <mliska@suse.cz>
12461
12462         PR tree-optimization/99002
12463         PR tree-optimization/99026
12464         * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
12465         leak when adjacent cases are merged.
12466         * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
12467         release_clusters.
12468         (make_pass_lower_switch): Remove trailing whitespace.
12469         * tree-switch-conversion.h (release_clusters): New.
12470
12471 2021-02-10  Richard Biener  <rguenther@suse.de>
12472
12473         PR rtl-optimization/99054
12474         * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
12475         (fixup_partitions): Adjust.
12476         (rtl_verify_edges): Likewise.
12477
12478 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12479
12480         PR middle-end/99007
12481         * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
12482         temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
12483         calls.
12484
12485 2021-02-10  Richard Biener  <rguenther@suse.de>
12486
12487         PR ipa/99029
12488         * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
12489         for callees.
12490
12491 2021-02-10  Richard Biener  <rguenther@suse.de>
12492
12493         PR tree-optimization/99024
12494         * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
12495         clear loop->aux if it is associated with the destroyed loop_vinfo.
12496
12497 2021-02-10  Martin Liska  <mliska@suse.cz>
12498
12499         PR tree-optimization/99002
12500         * gimple-if-to-switch.cc (find_conditions): Fix memory leak
12501         in the function.
12502
12503 2021-02-10  Martin Liska  <mliska@suse.cz>
12504
12505         PR ipa/99003
12506         * ipa-icf.c (sem_item::add_reference): Fix memory leak when
12507         a reference exists.
12508
12509 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12510
12511         PR debug/98755
12512         * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
12513         at class scope for DWARF5+.
12514
12515 2021-02-09  Eric Botcazou  <ebotcazou@adacore.com>
12516
12517         PR rtl-optimization/96015
12518         * reorg.c (skip_consecutive_labels): Minor comment tweaks.
12519         (relax_delay_slots): When deleting a jump to the next active
12520         instruction over a barrier, first delete the barrier if the
12521         jump is the only way to reach the target label.
12522
12523 2021-02-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12524
12525         * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
12526         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
12527         vector multiplies and vect.alu for SSRA.
12528         * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
12529         vect.mul cost field.
12530         * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
12531         * config/arm/arm.c: Likewise.
12532
12533 2021-02-09  Richard Biener  <rguenther@suse.de>
12534
12535         PR tree-optimization/98863
12536         * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
12537         * tree-ssa-sccvn.c (last_pushed_avail): New global.
12538         (rpo_elim::eliminate_push_avail): Chain pushed avails.
12539         (unwind_state::avail_top): Add.
12540         (do_unwind): Rewrite unwinding of avail entries.
12541         (do_rpo_vn): Initialize last_pushed_avail and
12542         avail_top of the undo state.
12543
12544 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
12545
12546         PR middle-end/99004
12547         * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
12548         const char * to char * and free those pointers after use.
12549
12550 2021-02-09  Richard Biener  <rguenther@suse.de>
12551
12552         PR tree-optimization/99017
12553         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
12554         zero vector cost entries.
12555
12556 2021-02-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12557
12558         PR middle-end/98974
12559         * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
12560         parameter in vectorizable_condition.
12561
12562 2021-02-08  Richard Biener  <rguenther@suse.de>
12563
12564         PR lto/96591
12565         * tree.c (walk_tree_1): Walk VECTOR_CST elements.
12566
12567 2021-02-08  Martin Liska  <mliska@suse.cz>
12568
12569         PR lto/98971
12570         * cfgexpand.c (pass_expand::execute): Parse per-function option
12571         flag_patchable_function_entry and use it.
12572         * common.opt: Remove function_entry_patch_area_size and
12573         function_entry_patch_area_start global variables.
12574         * opts.c (parse_and_check_patch_area): New function.
12575         (common_handle_option): Use it.
12576         * opts.h (parse_and_check_patch_area): New function.
12577         * toplev.c (process_options): Parse and use
12578         function_entry_patch_area_size.
12579
12580 2021-02-08  Martin Sebor  <msebor@redhat.com>
12581
12582         * doc/extend.texi (attribute malloc): Correct typos.
12583
12584 2021-02-05  Nathan Sidwell  <nathan@acm.org>
12585
12586         PR driver/98943
12587         * gcc.c (driver::maybe_run_linker): Check for input file
12588         accessibility if not linking.
12589
12590 2021-02-05  Richard Biener  <rguenther@suse.de>
12591
12592         PR tree-optimization/98855
12593         * tree-vectorizer.h (add_stmt_cost): New overload.
12594         * tree-vect-slp.c (li_cost_vec_cmp): New.
12595         (vect_bb_slp_scalar_cost): Cost individual loop regions
12596         separately.  Account for the scalar instance root stmt.
12597
12598 2021-02-05  Tom de Vries  <tdevries@suse.de>
12599
12600         PR debug/98656
12601         * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
12602         argument.
12603         (bit_test_cluster::emit): Reuse location_t for newly created
12604         gswitch statement.
12605         (switch_decision_tree::try_switch_expansion): Preserve
12606         location_t.
12607         * tree-switch-conversion.h: Change function signatures.
12608
12609 2021-02-05  Jakub Jelinek  <jakub@redhat.com>
12610
12611         PR target/98957
12612         * config/i386/i386-options.c (m_NONE, m_ALL): Define.
12613         * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
12614         X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
12615         (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
12616
12617 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12618
12619         * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
12620         * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
12621         * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
12622         (vget_high_f16): Reimplement using new builtin.
12623         (vget_high_f32): Likewise.
12624         (vget_high_f64): Likewise.
12625         (vget_high_p8): Likewise.
12626         (vget_high_p16): Likewise.
12627         (vget_high_p64): Likewise.
12628         (vget_high_s8): Likewise.
12629         (vget_high_s16): Likewise.
12630         (vget_high_s32): Likewise.
12631         (vget_high_s64): Likewise.
12632         (vget_high_u8): Likewise.
12633         (vget_high_u16): Likewise.
12634         (vget_high_u32): Likewise.
12635         (vget_high_u64): Likewise.
12636
12637 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12638
12639         * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
12640         * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
12641         * config/aarch64/arm_neon.h (__GET_LOW): Delete.
12642         (vget_low_f16): Reimplement using new builtin.
12643         (vget_low_f32): Likewise.
12644         (vget_low_f64): Likewise.
12645         (vget_low_p8): Likewise.
12646         (vget_low_p16): Likewise.
12647         (vget_low_p64): Likewise.
12648         (vget_low_s8): Likewise.
12649         (vget_low_s16): Likewise.
12650         (vget_low_s32): Likewise.
12651         (vget_low_s64): Likewise.
12652         (vget_low_u8): Likewise.
12653         (vget_low_u16): Likewise.
12654         (vget_low_u32): Likewise.
12655         (vget_low_u64): Likewise.
12656
12657 2021-02-05  Kito Cheng  <kito.cheng@sifive.com>
12658
12659         * gcc.c (print_multilib_info): Check all required argument is provided
12660         by default arg.
12661
12662 2021-02-05  liuhongt  <hongtao.liu@intel.com>
12663
12664         PR target/98537
12665         * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
12666         generate integer mask comparison for 128/256-bits vector when
12667         op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
12668         delete redundant !maskcmp condition.
12669         (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
12670         here.
12671         (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
12672         condition directly to if (maskcmp), add extra check for
12673         cmpmode, it should be MODE_INT.
12674         (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
12675         parameters op_true/op_false.
12676         (ix86_use_mask_cmp_p): New.
12677
12678 2021-02-05  liuhongt  <hongtao.liu@intel.com>
12679
12680         PR target/98172
12681         * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
12682         Remove m_GENERIC from ~list.
12683         (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
12684
12685 2021-02-04  David Malcolm  <dmalcolm@redhat.com>
12686
12687         PR c/97932
12688         * diagnostic-show-locus.c (compatible_locations_p): Require
12689         locations in the same macro map to be either both from the
12690         macro definition, or both from the macro arguments.
12691
12692 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
12693
12694         * config/aarch64/aarch64-simd-builtins.def: Add
12695         [su]mull_hi_lane[q] builtin generator macros.
12696         * config/aarch64/aarch64-simd.md
12697         (aarch64_<su>mull_hi_lane<mode>_insn): Define.
12698         (aarch64_<su>mull_hi_lane<mode>): Define.
12699         (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
12700         (aarch64_<su>mull_hi_laneq<mode>): Define.
12701         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
12702         builtin instead of inline asm.
12703         (vmull_high_lane_s32): Likewise.
12704         (vmull_high_lane_u16): Likewise.
12705         (vmull_high_lane_u32): Likewise.
12706         (vmull_high_laneq_s16): Likewise.
12707         (vmull_high_laneq_s32): Likewise.
12708         (vmull_high_laneq_u16): Likewise.
12709         (vmull_high_laneq_u32): Liekwise.
12710
12711 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
12712
12713         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
12714         builtin generator macros.
12715         * config/aarch64/aarch64-simd.md
12716         (aarch64_<su>mull_hi_n<mode>_insn): Define.
12717         (aarch64_<su>mull_hi_n<mode>): Define.
12718         * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
12719         instead of inline asm.
12720         (vmull_high_n_s32): Likewise.
12721         (vmull_high_n_u16): Likewise.
12722         (vmull_high_n_u32): Likewise.
12723
12724 2021-02-04  Richard Biener  <rguenther@suse.de>
12725
12726         PR tree-optimization/98855
12727         * tree-vect-loop.c (vectorizable_phi): Do not cost
12728         single-argument PHIs.
12729         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
12730         * tree-vect-stmts.c (vectorizable_bswap): Also perform
12731         costing for SLP operation.
12732
12733 2021-02-04  Martin Liska  <mliska@suse.cz>
12734
12735         * doc/extend.texi: Mention -mprefer-vector-width in target
12736         attributes.
12737
12738 2021-02-03  Martin Sebor  <msebor@redhat.com>
12739
12740         PR tree-optimization/98937
12741         * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
12742         Flush pointer_query cache.
12743
12744 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
12745
12746         * config/rs6000/genfusion.pl (gen_2logical): Add missing
12747         fixes based on patch review.
12748         * config/rs6000/fusion.md: Regenerate file.
12749
12750 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
12751
12752         * config/rs6000/t-rs6000: Comment out auto generation of
12753         fusion.md for now.
12754
12755 2021-02-03  Andrew Stubbs  <ams@codesourcery.com>
12756
12757         * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
12758         * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
12759         (output_file_start): Add gfx908.
12760         * config/gcn/gcn.opt (gpu_type): Add gfx908.
12761         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
12762         (MULTILIB_DIRNAMES): Add gfx908.
12763         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
12764         (main): Recognize gfx908.
12765         * config/gcn/t-omp-device: Add gfx908.
12766
12767 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
12768
12769         * config/aarch64/aarch64-simd-builtins.def: Add
12770         [su]mlsl_hi_lane[q] builtin macro generators.
12771         * config/aarch64/aarch64-simd.md
12772         (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
12773         (aarch64_<su>mlsl_hi_lane<mode>): Define.
12774         (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
12775         (aarch64_<su>mlsl_hi_laneq<mode>): Define.
12776         * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
12777         builtin instead of inline asm.
12778         (vmlsl_high_lane_s32): Likewise.
12779         (vmlsl_high_lane_u16): Likewise.
12780         (vmlsl_high_lane_u32): Likewise.
12781         (vmlsl_high_laneq_s16): Likewise.
12782         (vmlsl_high_laneq_s32): Likewise.
12783         (vmlsl_high_laneq_u16): Likewise.
12784         (vmlsl_high_laneq_u32): Likewise.
12785         (vmlal_high_laneq_u32): Likewise.
12786
12787 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
12788
12789         * config/aarch64/aarch64-simd-builtins.def: Add
12790         [su]mlal_hi_lane[q] builtin generator macros.
12791         * config/aarch64/aarch64-simd.md
12792         (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
12793         (aarch64_<su>mlal_hi_lane<mode>): Define.
12794         (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
12795         (aarch64_<su>mlal_hi_laneq<mode>): Define.
12796         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
12797         builtin instead of inline asm.
12798         (vmlal_high_lane_s32): Likewise.
12799         (vmlal_high_lane_u16): Likewise.
12800         (vmlal_high_lane_u32): Likewise.
12801         (vmlal_high_laneq_s16): Likewise.
12802         (vmlal_high_laneq_s32): Likewise.
12803         (vmlal_high_laneq_u16): Likewise.
12804         (vmlal_high_laneq_u32): Likewise.
12805
12806 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
12807
12808         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
12809         builtin generator macros.
12810         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
12811         Define.
12812         (aarch64_<su>mlsl_hi_n<mode>): Define.
12813         * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
12814         instead of inline asm.
12815         (vmlsl_high_n_s32): Likewise.
12816         (vmlsl_high_n_u16): Likewise.
12817         (vmlsl_high_n_u32): Likewise.
12818
12819 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
12820
12821         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
12822         builtin generator macros.
12823         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
12824         Define.
12825         (aarch64_<su>mlal_hi_n<mode>): Define.
12826         * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
12827         instead of inline asm.
12828         (vmlal_high_n_s32): Likewise.
12829         (vmlal_high_n_u16): Likewise.
12830         (vmlal_high_n_u32): Likewise.
12831
12832 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
12833
12834         * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
12835         generator macros.
12836         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
12837         Rename to...
12838         (aarch64_<su>mlal_hi<mode>_insn): This.
12839         (aarch64_<su>mlal_hi<mode>): Define.
12840         * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
12841         instead of inline asm.
12842         (vmlal_high_s16): Likewise.
12843         (vmlal_high_s32): Likewise.
12844         (vmlal_high_u8): Likewise.
12845         (vmlal_high_u16): Likewise.
12846         (vmlal_high_u32): Likewise.
12847
12848 2021-02-03  Ilya Leoshkevich  <iii@linux.ibm.com>
12849
12850         * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
12851         after calling alter_subreg() on a (mem).
12852
12853 2021-02-03  Martin Liska  <mliska@suse.cz>
12854
12855         PR lto/98912
12856         * lto-streamer-out.c (produce_lto_section): Fill up missing
12857         padding.
12858         * lto-streamer.h (struct lto_section): Add _padding field.
12859
12860 2021-02-03  Richard Biener  <rguenther@suse.de>
12861
12862         * lto-streamer.c (lto_get_section_name): Free temporary
12863         buffer.
12864         * tree-loop-distribution.c
12865         (loop_distribution::merge_dep_scc_partitions): Free edge data.
12866
12867 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
12868
12869         PR middle-end/97487
12870         * ifcvt.c (noce_can_force_operand): New function.
12871         (noce_emit_move_insn): Use it.
12872         (noce_try_sign_mask): Likewise.  Formatting fix.
12873
12874 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
12875
12876         PR middle-end/97971
12877         * lra-constraints.c (process_alt_operands): For inline asm, don't call
12878         fatal_insn, but instead return false.
12879
12880 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
12881
12882         PR tree-optimization/98287
12883         * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
12884         for V1DImode.
12885
12886 2021-02-03  Tamar Christina  <tamar.christina@arm.com>
12887
12888         PR tree-optimization/98928
12889         * tree-vect-loop.c (vect_analyze_loop_2): Change
12890         STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
12891         * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
12892         * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
12893         (class _stmt_vec_info): Add slp_vect_pattern_only_p.
12894
12895 2021-02-02  Richard Biener  <rguenther@suse.de>
12896
12897         * gimple-loop-interchange.cc (prepare_data_references):
12898         Release vectors.
12899         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
12900         * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
12901         * tree-vect-stmts.c (vectorizable_condition): Do not
12902         allocate vectors.
12903         (vectorizable_comparison): Likewise.
12904
12905 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12906
12907         * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
12908         * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
12909         * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
12910         (vrsqrteq_u32): Likewise.
12911
12912 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12913
12914         * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
12915         * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
12916         (aarch64_sqxtun2<mode>_be): Likewise.
12917         (aarch64_sqxtun2<mode>): Likewise.
12918         * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
12919         (vqmovun_high_s32): Likewise.
12920         (vqmovun_high_s64): Likewise.
12921         * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
12922
12923 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12924
12925         * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
12926         AUTO_FP flags.
12927         (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
12928
12929 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12930
12931         * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
12932         fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
12933         fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
12934         ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
12935         fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
12936         fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
12937         fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
12938         fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
12939
12940 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12941
12942         * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
12943         * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
12944         ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
12945
12946 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12947
12948         * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
12949         uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
12950
12951 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12952
12953         * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
12954         vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
12955         vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
12956         ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
12957         udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
12958         ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
12959         ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
12960         ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
12961         NONE builtin flags.
12962
12963 2021-02-02  Jakub Jelinek  <jakub@redhat.com>
12964
12965         PR tree-optimization/98848
12966         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
12967         STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
12968
12969 2021-02-02  Kito Cheng  <kito.cheng@sifive.com>
12970
12971         PR target/98743
12972         * expr.c: Check mode before calling store_expr.
12973
12974 2021-02-02  Christophe Lyon  <christophe.lyon@linaro.org>
12975
12976         * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
12977         (VORNQ): Remove.
12978         * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
12979         instruction using expression ior.
12980         (mve_vornq_u<mode>): New expander.
12981         (mve_vornq_f<mode>): Use ior code instead of unspec.
12982         * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
12983
12984 2021-02-02  Alexandre Oliva  <oliva@adacore.com>
12985
12986         * tree-nested.c (convert_nonlocal_reference_op): Move
12987         current_function_decl restore after re-gimplification.
12988         (convert_local_reference_op): Likewise.
12989
12990 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12991
12992         * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
12993         Define builtins.
12994         * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
12995         Define.
12996         (aarch64_rshrn<mode>_insn_be): Likewise.
12997         (aarch64_rshrn<mode>): Likewise.
12998         (aarch64_rshrn2<mode>_insn_le): Likewise.
12999         (aarch64_rshrn2<mode>_insn_be): Likewise.
13000         (aarch64_rshrn2<mode>): Likewise.
13001         * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
13002         * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
13003         using builtin.
13004         (vrshrn_high_n_s32): Likewise.
13005         (vrshrn_high_n_s64): Likewise.
13006         (vrshrn_high_n_u16): Likewise.
13007         (vrshrn_high_n_u32): Likewise.
13008         (vrshrn_high_n_u64): Likewise.
13009         (vrshrn_n_s16): Likewise.
13010         (vrshrn_n_s32): Likewise.
13011         (vrshrn_n_s64): Likewise.
13012         (vrshrn_n_u16): Likewise.
13013         (vrshrn_n_u32): Likewise.
13014         (vrshrn_n_u64): Likewise.
13015
13016 2021-02-01  Sergei Trofimovich  <siarheit@google.com>
13017
13018         PR tree-optimization/98499
13019         * ipa-modref.c (analyze_ssa_name_flags): treat RVO
13020         conservatively and assume all possible side-effects.
13021
13022 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13023
13024         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
13025         vec_unpacku_hi_): Define builtins.
13026         * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
13027         builtin.
13028         (vmovl_high_s16): Likewise.
13029         (vmovl_high_s32): Likewise.
13030         (vmovl_high_u8): Likewise.
13031         (vmovl_high_u16): Likewise.
13032         (vmovl_high_u32): Likewise.
13033
13034 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13035
13036         * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
13037         Define builtins.
13038         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
13039         pattern.
13040         * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
13041         UNSPEC_UABDL.
13042         * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
13043         builtin.
13044         (vabdl_s16): Likewise.
13045         (vabdl_s32): Likewise.
13046         (vabdl_u8): Likewise.
13047         (vabdl_u16): Likewise.
13048         (vabdl_u32): Likewise.
13049         * config/aarch64/iterators.md (ABDL): New int iterator.
13050         (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
13051
13052 2021-02-01  Martin Sebor  <msebor@redhat.com>
13053
13054         * tree.h (BLOCK_VARS): Add comment.
13055         (BLOCK_SUBBLOCKS): Same.
13056         (BLOCK_SUPERCONTEXT): Same.
13057         (BLOCK_ABSTRACT_ORIGIN): Same.
13058         (inlined_function_outer_scope_p): Same.
13059
13060 2021-02-01  Martin Sebor  <msebor@redhat.com>
13061
13062         PR middle-end/97172
13063         * attribs.c (attr_access::free_lang_data): Define new function.
13064         * attribs.h (attr_access::free_lang_data): Declare new function.
13065
13066 2021-02-01  Richard Biener  <rguenther@suse.de>
13067
13068         * vec.h (auto_vec::auto_vec): Add memory stat parameters
13069         and pass them on.
13070         * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
13071
13072 2021-02-01  Tamar Christina  <tamar.christina@arm.com>
13073
13074         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
13075         aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
13076
13077 2021-02-01  Richard Biener  <rguenther@suse.de>
13078
13079         PR rtl-optimization/98863
13080         * config/i386/i386-features.c (convert_scalars_to_vector):
13081         Set DF_RD_PRUNE_DEAD_DEFS.
13082
13083 2021-01-31  Eric Botcazou  <ebotcazou@adacore.com>
13084
13085         * system.h (SIZE_MAX): Define if not already defined.
13086
13087 2021-01-30  Aaron Sawdey  <acsawdey@linux.ibm.com>
13088
13089         * config/rs6000/genfusion.pl (gen_2logical): New function to
13090         generate patterns for logical-logical fusion.
13091         * config/rs6000/fusion.md: Regenerated patterns.
13092         * config/rs6000/rs6000-cpus.def: Add
13093         OPTION_MASK_P10_FUSION_2LOGICAL.
13094         * config/rs6000/rs6000.c (rs6000_option_override_internal):
13095         Enable logical-logical fusion for p10.
13096         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
13097
13098 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
13099
13100         * config/rs6000/rs6000.opt: Add periods to new AIX options.
13101
13102 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
13103
13104         * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
13105         (mabi=vec-default): New.
13106         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
13107         __EXTABI__ for AIX Vector extended ABI.
13108         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
13109         extabi info.
13110         (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
13111         are non-volatile.
13112         * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
13113
13114 2021-01-30  Jakub Jelinek  <jakub@redhat.com>
13115
13116         * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
13117         DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
13118
13119 2021-01-29  Vladimir N. Makarov  <vmakarov@redhat.com>
13120
13121         PR target/97701
13122         * lra-constraints.c (in_class_p): Don't narrow class only for REG
13123         or MEM.
13124
13125 2021-01-29  Will Schmidt  <will_schmidt@vnet.ibm.com>
13126
13127         * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
13128         clauses for CODE_FOR_vsx_xvcvuxddp_scale and
13129         CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
13130
13131 2021-01-29  Andrew MacLeod  <amacleod@redhat.com>
13132
13133         PR tree-optimization/98866
13134         * gimple-range-gori.h (gori_compute:set_range_invariant): New.
13135         * gimple-range-gori.cc (gori_map::set_range_invariant): New.
13136         (gori_map::m_maybe_invariant): Rename from all_outgoing.
13137         (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
13138         (gori_map::is_export_p): Ditto.
13139         (gori_map::calculate_gori): Ditto.
13140         (gori_compute::set_range_invariant): New.
13141         * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
13142         invariant for pointers evaluating to [1, +INF].
13143
13144 2021-01-29  Richard Biener  <rguenther@suse.de>
13145
13146         PR rtl-optimization/98863
13147         * config/i386/i386-features.c (remove_partial_avx_dependency):
13148         Do not perform DF analysis.
13149         (pass_data_remove_partial_avx_dependency): Remove
13150         TODO_df_finish.
13151
13152 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
13153
13154         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
13155         builtin generator macros.
13156         * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
13157         Define.
13158         * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
13159         instead of inline asm.
13160         (vmull_n_s32): Likewise.
13161         (vmull_n_u16): Likewise.
13162         (vmull_n_u32): Likewise.
13163
13164 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13165
13166         * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
13167         Define builtins.
13168         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
13169         Rename to...
13170         (aarch64_<sur>abdl2<mode>): ... This.
13171         (<sur>sadv16qi): Adjust use of above.
13172         * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
13173         builtin.
13174         (vabdl_high_s16): Likewise.
13175         (vabdl_high_s32): Likewise.
13176         (vabdl_high_u8): Likewise.
13177         (vabdl_high_u16): Likewise.
13178         (vabdl_high_u32): Likewise.
13179
13180 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13181
13182         * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
13183         builtin.
13184         (uabal2): Likewise.
13185         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
13186         pattern.
13187         * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
13188         UNSPEC_UABAL2.
13189         * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
13190         builtin.
13191         (vabal_high_s16): Likewise.
13192         (vabal_high_s32): Likewise.
13193         (vabal_high_u8): Likewise.
13194         (vabal_high_u16): Likewise.
13195         (vabal_high_u32): Likewise.
13196         * config/aarch64/iterators.md (ABAL2): New mode iterator.
13197         (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
13198
13199 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13200
13201         * config/aarch64/aarch64-simd-builtins.def (sabal): Define
13202         builtin.
13203         (uabal): Likewise.
13204         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
13205         Rename to...
13206         (aarch64_<sur>abal<mode>): ... This
13207         (<sur>sadv16qi): Adust use of the above.
13208         * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
13209         builtin.
13210         (vabal_s16): Likewise.
13211         (vabal_s32): Likewise.
13212         (vabal_u8): Likewise.
13213         (vabal_u16): Likewise.
13214         (vabal_u32): Likewise.
13215
13216 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13217
13218         * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
13219         Define builtins.
13220         * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
13221         Define.
13222         * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
13223         builtin.
13224         (vaddlv_s16): Likewise.
13225         (vaddlv_u8): Likewise.
13226         (vaddlv_u16): Likewise.
13227         (vaddlvq_s8): Likewise.
13228         (vaddlvq_s16): Likewise.
13229         (vaddlvq_s32): Likewise.
13230         (vaddlvq_u8): Likewise.
13231         (vaddlvq_u16): Likewise.
13232         (vaddlvq_u32): Likewise.
13233         (vaddlv_s32): Likewise.
13234         (vaddlv_u32): Likewise.
13235         * config/aarch64/iterators.md (VDQV_L): New mode iterator.
13236         (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
13237         (Vwstype): New mode attribute.
13238         (Vwsuf): Likewise.
13239         (VWIDE_S): Likewise.
13240         (USADDLV): New int iterator.
13241         (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
13242
13243 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
13244
13245         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
13246         builtin generator macros.
13247         * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
13248         Define.
13249         * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
13250         instead of inline asm.
13251         (vmlsl_lane_s32): Likewise.
13252         (vmlsl_lane_u16): Likewise.
13253         (vmlsl_lane_u32): Likewise.
13254         (vmlsl_laneq_s16): Likewise.
13255         (vmlsl_laneq_s32): Likewise.
13256         (vmlsl_laneq_u16): Likewise.
13257         (vmlsl_laneq_u32): Likewise.
13258
13259 2021-01-29  Richard Biener  <rguenther@suse.de>
13260
13261         * doc/invoke.texi (--param max-gcse-memory): Document unit
13262         of size.
13263         * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
13264         * params.opt (--param max-gcse-memory): Adjust default and
13265         document unit of size.
13266
13267 2021-01-29  Richard Biener  <rguenther@suse.de>
13268
13269         PR rtl-optimization/98863
13270         * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
13271         HOST_WIDE_INT for the memory estimate.
13272
13273 2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
13274             Richard Biener  <rguenther@suse.de>
13275
13276         PR tree-optimization/97627
13277         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
13278         Do not analyze fake edges.
13279
13280 2021-01-29  Richard Biener  <rguenther@suse.de>
13281
13282         PR rtl-optimization/98144
13283         * df.h (df_mir_bb_info): Add con_visited member.
13284         * df-problems.c (df_mir_alloc): Initialize con_visited,
13285         do not fully populate IN and OUT.
13286         (df_mir_reset): Likewise.
13287         (df_mir_confluence_0): Set con_visited.
13288         (df_mir_confluence_n): Properly handle implicitely
13289         fully populated IN and OUT as designated by con_visited
13290         and update con_visited accordingly.
13291
13292 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
13293
13294         PR target/98849
13295         * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
13296         vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
13297         && !TARGET_REALLY_IWMMXT to conditions.
13298
13299 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
13300
13301         PR debug/98331
13302         * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
13303         a BARRIER.
13304
13305 2021-01-28  Marek Polacek  <polacek@redhat.com>
13306
13307         PR c++/94775
13308         * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
13309         the main variant, maybe reset it in its variants too.
13310         * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
13311         (check_aligned_type): Check if TYPE_USER_ALIGN match.
13312
13313 2021-01-28  Christophe Lyon  <christophe.lyon@linaro.org>
13314
13315         PR target/98730
13316         * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
13317         of constant zero for comparisons.
13318
13319 2021-01-28  Michael Meissner  <meissner@linux.ibm.com>
13320
13321         * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
13322         support for mapping built-in function names for long double
13323         built-in functions if long double is IEEE 128-bit.
13324
13325 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
13326
13327         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
13328         builtin generator macros.
13329         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
13330         Define.
13331         * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
13332         instead of inline asm.
13333         (vmlsl_n_s32): Likewise.
13334         (vmlsl_n_u16): Likewise.
13335         (vmlsl_n_u32): Likewise.
13336
13337 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
13338
13339         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
13340         builtin generator macros.
13341         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
13342         Define.
13343         * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
13344         instead of inline asm.
13345         (vmlal_n_s32): Likewise.
13346         (vmlal_n_u16): Likewise.
13347         (vmlal_n_u32): Likewise.
13348
13349 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13350
13351         * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
13352         builtin.
13353         * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
13354         Define.
13355         (aarch64_shrn2<mode>_insn_be): Likewise.
13356         (aarch64_shrn2<mode>): Likewise.
13357         * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
13358         using builtins.
13359         (vshrn_high_n_s32): Likewise.
13360         (vshrn_high_n_s64): Likewise.
13361         (vshrn_high_n_u16): Likewise.
13362         (vshrn_high_n_u32): Likewise.
13363         (vshrn_high_n_u64): Likewise.
13364
13365 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13366
13367         * config/aarch64/aarch64-simd-builtins.def (shrn): Define
13368         builtin.
13369         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
13370         Define.
13371         (aarch64_shrn<mode>_insn_be): Likewise.
13372         (aarch64_shrn<mode>): Likewise.
13373         * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
13374         builtins.
13375         (vshrn_n_s32): Likewise.
13376         (vshrn_n_s64): Likewise.
13377         (vshrn_n_u16): Likewise.
13378         (vshrn_n_u32): Likewise.
13379         (vshrn_n_u64): Likewise.
13380         * config/aarch64/iterators.md (vn_mode): New mode attribute.
13381
13382 2021-01-28  Richard Biener  <rguenther@suse.de>
13383
13384         PR rtl-optimization/80960
13385         * dse.c (check_mem_read_rtx): Call get_addr on the
13386         offsetted address.
13387
13388 2021-01-28  Xionghu Luo  <luoxhu@linux.ibm.com>
13389             David Edelsohn  <dje.gcc@gmail.com>
13390
13391         PR target/98799
13392         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13393         Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
13394         when -m32.
13395         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
13396         Delete.
13397         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
13398         wrapper call rs6000_expand_vector_set_var for cleanup.  Call
13399         rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
13400         directly.
13401         (rs6000_expand_vector_set_var): Delete.
13402         (rs6000_expand_vector_set_var_p9): Make static.
13403         (rs6000_expand_vector_set_var_p8): Make static.
13404
13405 2021-01-28  Xing GUO  <higuoxing@gmail.com>
13406
13407         * common/config/riscv/riscv-common.c
13408         (riscv_subset_list::parsing_subset_version): Fix -march option parsing
13409         when `p` extension exists.
13410
13411 2021-01-27  Vladimir N. Makarov  <vmakarov@redhat.com>
13412
13413         PR rtl-optimization/97684
13414         * ira.c (ira): Call ira_set_pseudo_classes before
13415         update_equiv_regs when it is necessary.
13416
13417 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
13418
13419         PR target/98853
13420         * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
13421         %w0, %w1 and %2 instead of %0, %1 and %2.
13422
13423 2021-01-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
13424
13425         * config/rs6000/genfusion.pl: New script to generate
13426         define_insn_and_split patterns so combine can arrange fused
13427         instructions next to each other.
13428         * config/rs6000/fusion.md: New file, generated fused instruction
13429         patterns for combine.
13430         * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
13431         (non_update_memory_operand): New predicate.
13432         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
13433         OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
13434         POWERPC_MASKS.
13435         * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
13436         prototype.
13437         * config/rs6000/rs6000.c (rs6000_option_override_internal):
13438         Automatically set OPTION_MASK_P10_FUSION and
13439         OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
13440         (rs600_opt_masks): Allow -mpower10-fusion
13441         in function attributes.
13442         (address_is_non_pfx_d_or_x): New function.
13443         * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
13444         * config/rs6000/rs6000.md: Include fusion.md.
13445         * config/rs6000/rs6000.opt: Add -mpower10-fusion
13446         and -mpower10-fusion-ld-cmpi.
13447         * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
13448
13449 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13450
13451         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
13452         builtin generator macros.
13453         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
13454         Rename to...
13455         (aarch64_<su>mlal<mode>): This.
13456         * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
13457         instead of inline asm.
13458         (vmlal_s16): Likewise.
13459         (vmlal_s32): Likewise.
13460         (vmlal_u8): Likewise.
13461         (vmlal_u16): Likewise.
13462         (vmlal_u32): Likewise.
13463
13464 2021-01-27  Richard Biener  <rguenther@suse.de>
13465
13466         PR tree-optimization/98854
13467         * tree-vect-slp.c (vect_build_slp_tree_2): Also build
13468         PHIs from scalars when the number of CTORs matches the
13469         number of children.
13470
13471 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13472
13473         * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
13474         generator macro.
13475         * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
13476         Rename to...
13477         (aarch64_mls_n<mode>): This.
13478         * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
13479         instead of asm.
13480         (vmls_n_s32): Likewise.
13481         (vmls_n_u16): Likewise.
13482         (vmls_n_u32): Likewise.
13483         (vmlsq_n_s16): Likewise.
13484         (vmlsq_n_s32): Likewise.
13485         (vmlsq_n_u16): Likewise.
13486         (vmlsq_n_u32): Likewise.
13487
13488 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13489
13490         * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
13491         generator macro.
13492         * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
13493         than asm.
13494         (vmls_s16): Likewise.
13495         (vmls_s32): Likewise.
13496         (vmls_u8): Likewise.
13497         (vmls_u16): Likewise.
13498         (vmls_u32): Likewise.
13499         (vmlsq_s8): Likewise.
13500         (vmlsq_s16): Likewise.
13501         (vmlsq_s32): Likewise.
13502         (vmlsq_u8): Likewise.
13503         (vmlsq_u16): Likewise.
13504         (vmlsq_u32): Likewise.
13505
13506 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13507
13508         * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
13509         generator macro.
13510         * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
13511         Rename to...
13512         (aarch64_mla_n<mode>): This.
13513         * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
13514         instead of asm.
13515         (vmla_n_s32): Likewise.
13516         (vmla_n_u16): Likewise.
13517         (vmla_n_u32): Likewise.
13518         (vmlaq_n_s16): Likewise.
13519         (vmlaq_n_s32): Likewise.
13520         (vmlaq_n_u16): Likewise.
13521         (vmlaq_n_u32): Likewise.
13522
13523 2021-01-27  liuhongt  <hongtao.liu@intel.com>
13524
13525         PR target/98833
13526         * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
13527         (*sse2_eq<mode>3): Ditto.
13528
13529 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
13530
13531         * tree-pass.h (PROP_trees): Rename to ...
13532         (PROP_gimple): ... this.
13533         * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
13534         * passes.c (execute_function_dump, execute_function_todo,
13535         execute_one_ipa_transform_pass, execute_one_pass): Likewise.
13536         * varpool.c (ctor_for_folding): Likewise.
13537
13538 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
13539
13540         PR tree-optimization/97260
13541         * varpool.c: Include tree-pass.h.
13542         (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
13543         non-TREE_SIDE_EFFECTS automatic variables.
13544
13545 2021-01-26  Paul Fee  <paul.f.fee@gmail.com>
13546
13547         * doc/cpp.texi (__cplusplus): Document value for -std=c++23
13548         or -std=gnu++23.
13549         * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
13550         * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
13551         (gen_compile_unit_die): Recognise C++23.
13552
13553 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
13554
13555         PR bootstrap/98839
13556         * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
13557         in comparison.
13558
13559 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
13560
13561         PR target/98681
13562         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
13563         Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
13564         and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.
13565
13566 2021-01-26  Richard Biener  <rguenther@suse.de>
13567
13568         * gimple-pretty-print.c (dump_binary_rhs): Handle
13569         VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
13570
13571 2021-01-26  Richard Biener  <rguenther@suse.de>
13572
13573         PR middle-end/98726
13574         * tree.h (vector_cst_int_elt): Remove.
13575         * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
13576         make static.
13577
13578 2021-01-26  Andrew Stubbs  <ams@codesourcery.com>
13579
13580         * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
13581         for V64DFmode min/max reductions.
13582
13583 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
13584
13585         * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
13586         as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
13587         two halves, one with x and the other with const0_rtx, ordered
13588         depending on endianity.
13589
13590 2021-01-26  Alexandre Oliva  <oliva@adacore.com>
13591
13592         * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
13593         temporaries not seen in binding block, and not about to be
13594         added as gimple variables.
13595
13596 2021-01-25  Martin Sebor  <msebor@redhat.com>
13597
13598         PR c++/98646
13599         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
13600
13601 2021-01-25  Martin Liska  <mliska@suse.cz>
13602
13603         * value-prof.c (get_nth_most_common_value): Use %s instead
13604         of %qs string.
13605
13606 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
13607
13608         PR debug/98811
13609         * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
13610         readelf -wi is able to read the emitted .debug_info back.
13611         * configure: Regenerated.
13612
13613 2021-01-25  Martin Liska  <mliska@suse.cz>
13614
13615         PR gcov-profile/98739
13616         * common.opt: Add missing sign symbol.
13617         * value-prof.c (get_nth_most_common_value): Restore handling
13618         of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
13619         PROFILE_REPRODUCIBILITY_MULTITHREADED.
13620
13621 2021-01-25  Richard Biener  <rguenther@suse.de>
13622
13623         PR middle-end/98807
13624         * tree.c (vector_element_bits): Always use precision of
13625         the element type for boolean vectors.
13626
13627 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13628
13629         * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
13630         (ENDFILE_SPEC): Evaluate qnolinkcmds.
13631
13632 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13633
13634         * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
13635         nostartfiles handling since this is already done by
13636         LINK_COMMAND_SPEC.  Evaluate qnolinkcmds.
13637         (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
13638         is already done by LINK_COMMAND_SPEC.
13639         (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
13640         this is already done by LINK_COMMAND_SPEC.  Remove qnolinkcmds
13641         evaluation.
13642
13643 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
13644
13645         PR testsuite/98771
13646         * fold-const-call.c (host_size_t_cst_p): Renamed to ...
13647         (size_t_cst_p): ... this.  Check and store unsigned HOST_WIDE_INT
13648         value rather than host size_t.
13649         (fold_const_call): Change type of s2 from size_t to
13650         unsigned HOST_WIDE_INT.  Use size_t_cst_p instead of
13651         host_size_t_cst_p.  For strncmp calls, pass MIN (s2, SIZE_MAX)
13652         instead of s2 as last argument.
13653
13654 2021-01-25  Tamar Christina  <tamar.christina@arm.com>
13655
13656         * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
13657         VCMLA_OP, VCMUL_OP): New.
13658         * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
13659         * config/arm/neon.md (cmul<conj_op><mode>3): New.
13660         * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
13661         UNSPEC_VCMUL_CONJ): New.
13662         * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
13663         cml<fcmac1><conj_op><mode>4): New.
13664
13665 2021-01-23  Jakub Jelinek  <jakub@redhat.com>
13666
13667         PR testsuite/97301
13668         * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
13669
13670 2021-01-22  Jonathan Wright  <jonathan.wright@arm.com>
13671
13672         * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
13673         generator macro.
13674         * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
13675         than asm.
13676         (vmla_s16): Likewise.
13677         (vmla_s32): Likewise.
13678         (vmla_u8): Likewise.
13679         (vmla_u16): Likewise.
13680         (vmla_u32): Likewise.
13681         (vmlaq_s8): Likewise.
13682         (vmlaq_s16): Likewise.
13683         (vmlaq_s32): Likewise.
13684         (vmlaq_u8): Likewise.
13685         (vmlaq_u16): Likewise.
13686         (vmlaq_u32): Likewise.
13687
13688 2021-01-22  David Malcolm  <dmalcolm@redhat.com>
13689
13690         * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
13691         directive.
13692
13693 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
13694
13695         PR debug/98796
13696         * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
13697         filenames to emit, still emit the required 0 index directory and
13698         filename entries that match DW_AT_comp_dir and DW_AT_name of the
13699         compilation unit.
13700
13701 2021-01-22  Marek Polacek  <polacek@redhat.com>
13702
13703         PR c++/98545
13704         * doc/invoke.texi: Update C++ ABI Version 15 description.
13705
13706 2021-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13707
13708         PR tree-optimization/98766
13709         * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
13710         comparing against type size with param_avoid_fma_max_bits.
13711
13712 2021-01-22  Richard Biener  <rguenther@suse.de>
13713
13714         PR middle-end/98793
13715         * tree.c (vector_element_bits): Key single-bit bool vector on
13716         integer mode rather than not vector mode.
13717
13718 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
13719
13720         PR target/98093
13721         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13722         Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
13723         platforms.
13724         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
13725         to call different path for P8 and P9.
13726         (rs6000_expand_vector_set_var_p9): New function.
13727         (rs6000_expand_vector_set_var_p8): New function.
13728
13729 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
13730
13731         PR target/79251
13732         PR target/98065
13733         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13734         Ajdust variable index vec_insert from address dereference to
13735         ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
13736         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
13737         New declaration.
13738         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
13739
13740 2021-01-22  Martin Liska  <mliska@suse.cz>
13741
13742         PR gcov-profile/98739
13743         * profile.c (compute_value_histograms): Drop time profile for
13744         -fprofile-reproducible=multithreaded.
13745
13746 2021-01-22  Nathan Sidwell  <nathan@acm.org>
13747
13748         * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
13749         existence here.
13750
13751 2021-01-22  Richard Biener  <rguenther@suse.de>
13752
13753         PR middle-end/98773
13754         * tree-data-ref.c (initalize_matrix_A): Revert previous
13755         change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
13756
13757 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
13758
13759         PR tree-optimization/90248
13760         * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
13761         X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
13762         simplifications.
13763         (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
13764         X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
13765
13766 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
13767
13768         PR tree-optimization/98255
13769         * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
13770         extend index - low_bound from sizetype's precision rather than index
13771         precision.
13772         (get_addr_base_and_unit_offset_1): Likewise.
13773         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
13774         * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
13775
13776 2021-01-22  Richard Biener  <rguenther@suse.de>
13777
13778         PR tree-optimization/98786
13779         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
13780         adding new uses of abnormals.  Verify we deal with a conditional
13781         conversion.
13782
13783 2021-01-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
13784
13785         PR target/98636
13786         * optc-save-gen.awk: Add arm_fp16_format to checked_options.
13787
13788 2021-01-22  liuhongt  <hongtao.liu@intel.com>
13789
13790         PR target/96891
13791         PR target/98348
13792         * config/i386/sse.md (VI_128_256): New mode iterator.
13793         (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
13794          *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
13795          *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
13796         define_insn_and_split to lower avx512 vector comparison to avx
13797         version when dest is vector.
13798         (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
13799         define_insn_and_split for negating the comparison result.
13800         * config/i386/predicates.md (float_vector_all_ones_operand):
13801         New predicate.
13802         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
13803         general NOT operator without UNSPEC_MASKOP.
13804
13805 2021-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
13806
13807         PR rtl-optimization/98777
13808         * lra-int.h (lra_pmode_pseudo): New extern.
13809         * lra.c (lra_pmode_pseudo): New global.
13810         (lra): Set it up.
13811         * lra-eliminations.c (eliminate_regs_in_insn): Use it.
13812
13813 2021-01-21  Ilya Leoshkevich  <iii@linux.ibm.com>
13814
13815         * fwprop.c (fwprop_propagation::classify_result): Allow
13816         (subreg (mem)) simplifications.
13817
13818 2021-01-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13819
13820         * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
13821         Split into...
13822         (aarch64_sqdmlal<mode>): ... This...
13823         (aarch64_sqdmlsl<mode>): ... And this.
13824         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
13825         (aarch64_sqdmlal_lane<mode>): ... This...
13826         (aarch64_sqdmlsl_lane<mode>): ... And this.
13827         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
13828         (aarch64_sqdmlsl_laneq<mode>): ... This...
13829         (aarch64_sqdmlal_laneq<mode>):  ... And this.
13830         (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
13831         (aarch64_sqdmlsl_n<mode>): ... This...
13832         (aarch64_sqdmlal_n<mode>): ... And this.
13833         (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
13834         (aarch64_sqdmlal2<mode>_internal): ... This...
13835         (aarch64_sqdmlsl2<mode>_internal): ... And this.
13836
13837 2021-01-21  Christophe Lyon  <christophe.lyon@linaro.org>
13838
13839         * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
13840
13841 2021-01-21  Andrea Corallo  <andrea.corallo@arm.com>
13842
13843         PR target/96372
13844         * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
13845
13846 2021-01-21  liuhongt  <hongtao.liu@intel.com>
13847
13848         PR rtl-optimization/98694
13849         * regcprop.c (copy_value): If SRC had been assigned a mode
13850         narrower than the copy, we can't link DEST into the chain even
13851         they have same hard_regno_nregs(i.e. HImode/SImode in i386
13852         backend).
13853
13854 2021-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13855
13856         * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
13857         Convert to define_insn_and_split.  Split into simple move when moving
13858         bottom element.
13859
13860 2021-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
13861
13862         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
13863         Adjust comment.  Simplify code.
13864
13865 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
13866
13867         PR debug/98765
13868         * dwarf2out.c (reset_indirect_string): Also reset indirect strings
13869         with DW_FORM_line_strp form.
13870         (prune_unused_types_update_strings): Don't add into debug_str_hash
13871         indirect strings with DW_FORM_line_strp form.
13872         (adjust_name_comp_dir): New function.
13873         (dwarf2out_finish): Call it on CU DIEs after resetting
13874         debug_line_str_hash.
13875
13876 2021-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>
13877
13878         PR rtl-optimization/98722
13879         * lra-eliminations.c (eliminate_regs_in_insn): Check that target
13880         has no 3-op add insn to transform insns containing two pluses.
13881
13882 2021-01-20  Richard Biener  <rguenther@suse.de>
13883
13884         * hwint.h (add_hwi): New function.
13885         (mul_hwi): Likewise.
13886         * tree-data-ref.c (initialize_matrix_A): Properly translate
13887         tree constants and avoid HOST_WIDE_INT_MIN.
13888         (lambda_matrix_row_add): Avoid undefined integer overflow
13889         and return true on such overflow.
13890         (lambda_matrix_right_hermite): Handle overflow from
13891         lambda_matrix_row_add gracefully.  Simplify previous fix.
13892         (analyze_subscript_affine_affine): Likewise.
13893
13894 2021-01-20  Eugene Rozenfeld  <erozen@microsoft.com>
13895
13896         PR tree-optimization/96674
13897         * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
13898         x >= y && y != XXX_MIN --> x > y - 1
13899
13900 2021-01-20  Richard Sandiford  <richard.sandiford@arm.com>
13901
13902         PR tree-optimization/98535
13903         * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
13904         If the high and low permutes are the same, remove the high permutes
13905         from the working set and only continue with the low ones.
13906
13907 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
13908
13909         PR tree-optimization/98721
13910         * builtins.c (access_ref::inform_access): Don't assume
13911         SSA_NAME_IDENTIFIER must be non-NULL.  Print messages about
13912         object whenever allocfn is NULL, rather than only when DECL_P
13913         is true.  Use %qE instead of %qD for that.  Formatting fixes.
13914
13915 2021-01-20  Richard Biener  <rguenther@suse.de>
13916
13917         PR tree-optimization/98758
13918         * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
13919         (lambda_matrix_right_hermite): Avoid undefinedness with
13920         signed integer abs and multiplication.
13921         (analyze_subscript_affine_affine): Use lambda_int.
13922
13923 2021-01-20  David Malcolm  <dmalcolm@redhat.com>
13924
13925         PR debug/98751
13926         * dwarf2out.c (output_line_info): Rename static variable
13927         "generation", moving it out of the function to...
13928         (output_line_info_generation): New.
13929         (init_sections_and_labels): Likewise, renaming the variable to...
13930         (init_sections_and_labels_generation): New.
13931         (dwarf2out_c_finalize): Reset the new variables.
13932
13933 2021-01-19  Martin Sebor  <msebor@redhat.com>
13934
13935         PR middle-end/98664
13936         * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
13937         all functions, even if they're not declared artificial or inline.
13938         * tree.c (tree_inlined_location): Use macro expansion location
13939         only if scope traversal fails to expose one.
13940
13941 2021-01-19  Richard Sandiford  <richard.sandiford@arm.com>
13942
13943         PR rtl-optimization/92294
13944         * alias.c (compare_base_symbol_refs): Take an extra parameter
13945         and add the distance between two symbols to it.  Enshrine in
13946         comments that -1 means "either 0 or 1, but we can't tell
13947         which at compile time".
13948         (memrefs_conflict_p): Update call accordingly.
13949         (rtx_equal_for_memref_p): Likewise.  Take the distance between symbols
13950         into account.
13951
13952 2021-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13953
13954         * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
13955         sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
13956         uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
13957         sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
13958         sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
13959         sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
13960         sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
13961         sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
13962         sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
13963         uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
13964         sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
13965         sqmovun): Use NONE flags.
13966
13967 2021-01-19  Richard Biener  <rguenther@suse.de>
13968
13969         PR ipa/98330
13970         * ipa-modref.c (analyze_stmt): Only record a summary for a
13971         direct call.
13972
13973 2021-01-19  Richard Biener  <rguenther@suse.de>
13974
13975         PR middle-end/98638
13976         * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
13977
13978 2021-01-19  Daniel Hellstrom  <daniel@gaisler.com>
13979
13980         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
13981         built-in define __FIX_LEON3FT_TN0018.
13982
13983 2021-01-19  Richard Biener  <rguenther@suse.de>
13984
13985         PR ipa/97673
13986         * tree-inline.c (tree_function_versioning): Set input_location
13987         to UNKNOWN_LOCATION throughout the function.
13988
13989 2021-01-19  Tobias Burnus  <tobias@codesourcery.com>
13990
13991         PR fortran/98476
13992         * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
13993
13994 2021-01-19  Martin Jambor  <mjambor@suse.cz>
13995
13996         PR ipa/98690
13997         * ipa-sra.c (ssa_name_only_returned_p): New parameter fun.  Check
13998         whether non-call exceptions allow removal of a statement.
13999         (isra_analyze_call): Pass the appropriate function to
14000         ssa_name_only_returned_p.
14001
14002 2021-01-19  Geng Qi  <gengqi@linux.alibaba.com>
14003
14004         * config/riscv/arch-canonicalize (longext_sort): New function for
14005          sorting 'multi-letter'.
14006         * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
14007         'alts'. The 'arch' may not be the first of 'alts'.
14008         (_expand_combination): Add underline for the 'ext' without '*'.
14009         This is because, a single-letter extension can always be treated well
14010         with a '_' prefix, but it cannot be separated out if it is appended
14011         to a multi-letter.
14012
14013 2021-01-18  Vladimir N. Makarov  <vmakarov@redhat.com>
14014
14015         PR target/97847
14016         * ira.c (ira): Skip abnormal critical edge splitting.
14017
14018 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
14019
14020         PR tree-optimization/98727
14021         * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
14022         second .MUL_OVERFLOW operand for signed multiplication with overflow
14023         checking if the second operand of multiplication is not constant.
14024
14025 2021-01-18  David Edelsohn  <dje.gcc@gmail.com>
14026
14027         * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
14028         defaults to version 4.
14029
14030 2021-01-18  David Malcolm  <dmalcolm@redhat.com>
14031
14032         * attribs.h (fndecl_dealloc_argno): New decl.
14033         * builtins.c (call_dealloc_argno): Split out second half of
14034         function into...
14035         (fndecl_dealloc_argno): New.
14036         * doc/extend.texi (Common Function Attributes): Document the
14037         interaction between the analyzer and the malloc attribute.
14038         * doc/invoke.texi (Static Analyzer Options): Likewise.
14039
14040 2021-01-17  David Edelsohn  <dje.gcc@gmail.com>
14041
14042         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
14043         dwarf_version to 4.
14044         * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
14045
14046 2021-01-17  Martin Jambor  <mjambor@suse.cz>
14047
14048         PR ipa/98222
14049         * cgraph.c (clone_of_p): Check also former_clone_of as we climb
14050         the clone tree.
14051
14052 2021-01-17  Mark Wielaard  <mark@klomp.org>
14053
14054         * common.opt (gdwarf-): Init(5).
14055         * doc/invoke.texi (-gdwarf): Document default to 5.
14056
14057 2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
14058
14059         * builtin-types.def
14060         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
14061         to...
14062         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
14063         ...this.  Add extra argument.
14064         * gimplify.c (omp_default_clause): Ensure that event handle is
14065         firstprivate in a task region.
14066         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
14067         (gimplify_adjust_omp_clauses): Likewise.
14068         * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
14069         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
14070         * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
14071         if detach clause specified.  Add detach argument when generating
14072         call to GOMP_task.
14073         * omp-low.c (scan_sharing_clauses): Setup data environment for detach
14074         clause.
14075         (finish_taskreg_scan): Move field for variable containing the event
14076         handle to the front of the struct.
14077         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH.  Fix
14078         ordering.
14079         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
14080         OMP_CLAUSE_DETACH clause.
14081         (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
14082         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
14083         * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
14084         Fix ordering.
14085         (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH.  Fix
14086         ordering.
14087         (walk_tree_1): Handle OMP_CLAUSE_DETACH.
14088
14089 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14090
14091         * config/nios2/t-rtems: Reset all MULTILIB_* variables.  Shorten
14092         multilib directory names.  Use MULTILIB_REQUIRED instead of
14093         MULTILIB_EXCEPTIONS.  Add -mhw-mul -mhw-mulx -mhw-div
14094         -mcustom-fpu-cfg=fph2 multilib.
14095
14096 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14097
14098         * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
14099         (nios2_init_fpu_configs): Provide register values for new
14100         -mcustom-fpu-cfg=fph2 option variant.
14101         * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
14102         variant.
14103
14104 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14105
14106         * config/nios2/nios2.c (nios2_custom_check_insns): Remove
14107         custom instruction warnings.
14108
14109 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
14110
14111         PR tree-optimization/96669
14112         * match.pd ((CST << x) & 1 -> x == 0): New simplification.
14113
14114 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
14115
14116         PR tree-optimization/96271
14117         * passes.def: Pass false argument to first two pass_cd_dce
14118         instances and true to last instance.  Add comment that
14119         last instance rewrites no longer addressed locals.
14120         * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
14121         initialize it.
14122         (pass_cd_dce::set_pass_param): New method.
14123         (pass_cd_dce::execute): Return TODO_update_address_taken from
14124         last cd_dce instance.
14125
14126 2021-01-15  Carl Love  <cel@us.ibm.com>
14127
14128         * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
14129         New defines.
14130         * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
14131         * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
14132         DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
14133         DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
14134         MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
14135         Add builtin define.
14136         (MULH, DIVE, MOD):  Add new BU_P10_OVERLOAD_2 definitions.
14137         * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
14138         VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
14139         New overloaded definitions.
14140         (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
14141         P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
14142         P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
14143         P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
14144         P10V_BUILTIN_MULHU_V4SI]: Add case
14145         statement for builtins.
14146         * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
14147         * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
14148         (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
14149         (vsx_mul_v2di): Add if TARGET_POWER10 statement.
14150         (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
14151         (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
14152         mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
14153         Add define_insn, mode is VIlong.
14154         * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
14155         Add builtin descriptions.
14156
14157 2021-01-15  Eric Botcazou  <ebotcazou@adacore.com>
14158
14159         * final.c (final_start_function_1): Reset force_source_line.
14160
14161 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
14162
14163         PR tree-optimization/96669
14164         * match.pd (((1 << A) & 1) != 0 -> A == 0,
14165         ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
14166         possibly different power of two constants and to right shift too.
14167
14168 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
14169
14170         PR tree-optimization/96681
14171         * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
14172         ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
14173         ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
14174         ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
14175
14176 2021-01-15  Alexandre Oliva  <oliva@adacore.com>
14177
14178         * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
14179
14180 2021-01-15  Tamar Christina  <tamar.christina@arm.com>
14181
14182         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
14183         cmul<conj_op><mode>3): New.
14184         * config/aarch64/iterators.md (UNSPEC_FCMUL,
14185         UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
14186         UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
14187         FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
14188         sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
14189         (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
14190         (rot_op): Renamed to conj_op.
14191         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
14192         cmul<conj_op><mode>3): New.
14193         * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
14194         cmul<conj_op><mode>3): New.
14195
14196 2021-01-15  David Malcolm  <dmalcolm@redhat.com>
14197
14198         PR bootstrap/98696
14199         * diagnostic.c
14200         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
14201         Escape the tempfile name when constructing the expected output.
14202
14203 2021-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14204
14205         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
14206         Rename to...
14207         (aarch64_<su>mlsl_hi<mode>): ... This.
14208         (aarch64_<su>mlsl_hi<mode>): Define.
14209         (*aarch64_<su>mlsl<mode): Rename to...
14210         (aarch64_<su>mlsl<mode): ... This.
14211         * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
14212         smlsl_hi, umlsl_hi): Define builtins.
14213         * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
14214         vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
14215         vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
14216         vmlsl_u16, vmlsl_u32): Reimplement with builtins.
14217
14218 2021-01-15  Uroš Bizjak  <ubizjak@gmail.com>
14219
14220         * config/i386/i386-c.c (ix86_target_macros):
14221         Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
14222
14223 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
14224
14225         PR target/88836
14226         * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
14227         * Makefile.in (RTL_SSA_H): New variable.
14228         * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
14229         * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
14230         * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
14231         pass_combine.
14232         * config/aarch64/aarch64-cc-fusion.cc: New file.
14233
14234 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
14235
14236         * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
14237         calling cancel_changes for changes that no longer exist.
14238
14239 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
14240
14241         * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
14242         (function_info::reg_defs): ...this.
14243         * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
14244         (function_info::reg_defs): ...this.
14245
14246 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14247
14248         PR target/71233
14249         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
14250
14251 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14252
14253         Revert:
14254         2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14255
14256         PR target/71233
14257         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
14258
14259 2021-01-15  Richard Biener  <rguenther@suse.de>
14260
14261         PR tree-optimization/96376
14262         * tree-vect-stmts.c (get_load_store_type): Disregard alignment
14263         for VMAT_INVARIANT.
14264
14265 2021-01-15  Martin Liska  <mliska@suse.cz>
14266
14267         * doc/install.texi: Document that some tests need pytest module.
14268         * doc/sourcebuild.texi: Likewise.
14269
14270 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14271
14272         PR target/71233
14273         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
14274
14275 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14276
14277         * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
14278         (mve_vshrq_n_u<mode>_imm): Likewise.
14279         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
14280         * config/arm/vec-common.md: ... here.
14281
14282 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14283
14284         * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
14285         vec-commond.md.
14286         * config/arm/neon.md (vashl<mode>3): Delete.
14287         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
14288         (vasl<mode>3): New expander.
14289
14290 2021-01-15  Richard Biener  <rguenther@suse.de>
14291
14292         PR tree-optimization/98685
14293         * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
14294         of vector extern defs.
14295
14296 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
14297
14298         PR jit/98586
14299         * diagnostic.c (diagnostic_kind_text): Break out this array
14300         from...
14301         (diagnostic_build_prefix): ...here.
14302         (fancy_abort): Detect when diagnostic_initialize has not yet been
14303         called and fall back to a minimal implementation of printing the
14304         ICE, rather than segfaulting in internal_error.
14305
14306 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
14307
14308         * diagnostic.c (diagnostic_initialize): Eliminate
14309         parseable_fixits_p in favor of initializing extra_output_kind from
14310         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
14311         (convert_column_unit): New function, split out from...
14312         (diagnostic_converted_column): ...this.
14313         (print_parseable_fixits): Add "column_unit" and "tabstop" params.
14314         Use them to call convert_column_unit on the column values.
14315         (diagnostic_report_diagnostic): Eliminate conditional on
14316         parseable_fixits_p in favor of a switch statement on
14317         extra_output_kind, passing the appropriate values to the new
14318         params of print_parseable_fixits.
14319         (selftest::test_print_parseable_fixits_none): Update for new
14320         params of print_parseable_fixits.
14321         (selftest::test_print_parseable_fixits_insert): Likewise.
14322         (selftest::test_print_parseable_fixits_remove): Likewise.
14323         (selftest::test_print_parseable_fixits_replace): Likewise.
14324         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
14325         New.
14326         (selftest::diagnostic_c_tests): Call it.
14327         * diagnostic.h (enum diagnostics_extra_output_kind): New.
14328         (diagnostic_context::parseable_fixits_p): Delete field in favor
14329         of...
14330         (diagnostic_context::extra_output_kind): ...this new field.
14331         * doc/invoke.texi (Environment Variables): Add
14332         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
14333         * opts.c (common_handle_option): Update handling of
14334         OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
14335         fields.
14336
14337 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14338
14339         * tree-vect-slp-patterns.c (class complex_operations_pattern,
14340         complex_operations_pattern::matches,
14341         complex_operations_pattern::recognize,
14342         complex_operations_pattern::build): New.
14343         (slp_patterns): Use it.
14344
14345 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14346
14347         * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
14348         * optabs.def (cmls_optab, cmls_conj_optab): New.
14349         * doc/md.texi: Document them.
14350         * tree-vect-slp-patterns.c (class complex_fms_pattern,
14351         complex_fms_pattern::matches, complex_fms_pattern::recognize,
14352         complex_fms_pattern::build): New.
14353
14354 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14355
14356         * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
14357         * optabs.def (cmla_optab, cmla_conj_optab): New.
14358         * doc/md.texi: Document them.
14359         * tree-vect-slp-patterns.c (vect_match_call_p,
14360         class complex_fma_pattern, vect_slp_reset_pattern,
14361         complex_fma_pattern::matches, complex_fma_pattern::recognize,
14362         complex_fma_pattern::build): New.
14363
14364 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14365
14366         * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
14367         * optabs.def (cmul_optab, cmul_conj_optab): New.
14368         * doc/md.texi: Document them.
14369         * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
14370         vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
14371         vect_build_combine_node, class complex_mul_pattern,
14372         complex_mul_pattern::matches, complex_mul_pattern::recognize,
14373         complex_mul_pattern::build): New.
14374
14375 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14376
14377         * tree-vect-slp.c (optimize_load_redistribution_1): New.
14378         (optimize_load_redistribution, vect_is_slp_load_node): New.
14379         (vect_match_slp_patterns): Use it.
14380
14381 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14382
14383         * tree-vect-slp-patterns.c (complex_add_pattern::build):
14384         Elide nodes.
14385
14386 2021-01-14  Thomas Schwinge  <thomas@codesourcery.com>
14387
14388         * config/gcn/mkoffload.c (main): Create an offload image only in
14389         64-bit configurations.
14390
14391 2021-01-14  H.J. Lu  <hjl.tools@gmail.com>
14392
14393         PR target/98667
14394         * config/i386/i386-options.c (ix86_option_override_internal):
14395         Issue an error for -fcf-protection with CF_BRANCH when compiling
14396         for 32-bit non-TARGET_CMOV targets.
14397
14398 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
14399
14400         PR target/98671
14401         * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
14402         Remove declaration and initialization of shadow variable "ret".
14403         (ix86_option_override_internal): Remove delcaration of
14404         shadow variable "i".  Redeclare shadowed variable to unsigned.
14405         * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
14406         * config/i386/i386-builtins.c (get_builtin_code_for_version):
14407         Update for redeclaration.
14408         * config/i386/i386.h (pta_size): Ditto.
14409
14410 2021-01-14  Richard Biener  <rguenther@suse.de>
14411
14412         PR tree-optimization/98674
14413         * tree-data-ref.c (base_supports_access_fn_components_p): New.
14414         (initialize_data_dependence_relation): For two bases without
14415         possible access fns resort to type size equality when determining
14416         shape compatibility.
14417
14418 2021-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14419
14420         PR target/66791
14421         * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
14422         <=, >= operators in vcle and vcge intrinsics respectively.
14423         * config/arm/arm_neon_builtins.def: Remove entry for
14424         vcge and vcgeu.
14425
14426 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
14427
14428         PR target/98671
14429         * config/i386/i386-options.c (ix86_function_specific_save):
14430         Remove redundant assignment to opts->x_ix86_branch_cost.
14431         * config/i386/i386.c (ix86_prefetch_sse):
14432         Rename from x86_prefetch_sse.  Update all uses.
14433         * config/i386/i386.h: Update for rename.
14434         * config/i386/i386-options.h: Ditto.
14435
14436 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
14437
14438         PR target/98670
14439         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
14440         *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
14441         Use Bm instead of m for non-avx.  Add isa attribute.
14442
14443 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
14444
14445         PR tree-optimization/96688
14446         * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
14447         ~X can be simplified.
14448
14449 2021-01-14  Richard Sandiford  <richard.sandiford@arm.com>
14450
14451         * tree-vect-stmts.c (vect_model_load_cost): Account for unused
14452         IFN_LOAD_LANES results.
14453
14454 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14455
14456         * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
14457         Define.
14458         (aarch64_xtn<mode>): Likewise.
14459         * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
14460         Define
14461         builtins.
14462         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
14463         builtin.
14464         (vmovl_s16): Likewise.
14465         (vmovl_s32): Likewise.
14466         (vmovl_u8): Likewise.
14467         (vmovl_u16): Likewise.
14468         (vmovl_u32): Likewise.
14469         (vmovn_s16): Likewise.
14470         (vmovn_s32): Likewise.
14471         (vmovn_s64): Likewise.
14472         (vmovn_u16): Likewise.
14473         (vmovn_u32): Likewise.
14474         (vmovn_u64): Likewise.
14475
14476 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14477
14478         * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
14479         Define.
14480         (aarch64_<su>qxtn2<mode>_be): Likewise.
14481         (aarch64_<su>qxtn2<mode>): Likewise.
14482         * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
14483         Define builtins.
14484         * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
14485         (su): Handle ss_truncate and us_truncate.
14486         * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
14487         builtin.
14488         (vqmovn_high_s32): Likewise.
14489         (vqmovn_high_s64): Likewise.
14490         (vqmovn_high_u16): Likewise.
14491         (vqmovn_high_u32): Likewise.
14492         (vqmovn_high_u64): Likewise.
14493
14494 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14495
14496         * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
14497         Define.
14498         (aarch64_xtn2<mode>_be): Likewise.
14499         (aarch64_xtn2<mode>): Likewise.
14500         * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
14501         builtins.
14502         * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
14503         builtins.
14504         (vmovn_high_s32): Likewise.
14505         (vmovn_high_s64): Likewise.
14506         (vmovn_high_u16): Likewise.
14507         (vmovn_high_u32): Likewise.
14508         (vmovn_high_u64): Likewise.
14509
14510 2021-01-13  Stafford Horne  <shorne@gmail.com>
14511
14512         * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
14513
14514 2021-01-13  Stafford Horne  <shorne@gmail.com>
14515
14516         * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
14517
14518 2021-01-13  Stafford Horne  <shorne@gmail.com>
14519
14520         * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
14521           define for __or1k_hard_float__.
14522
14523 2021-01-13  Stafford Horne  <shorne@gmail.com>
14524
14525         * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
14526         (PROFILE_HOOK): Define to call _mcount.
14527         (FUNCTION_PROFILER): Change from abort to no-op.
14528
14529 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14530
14531         PR tree-optimization/96691
14532         * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
14533         (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
14534         (~D ^ C) or (D ^ C) can be simplified.
14535
14536 2021-01-13  Richard Biener  <rguenther@suse.de>
14537
14538         PR tree-optimization/92645
14539         * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
14540         until after vector lowering.
14541
14542 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14543
14544         * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
14545         to SVE_I.
14546         (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
14547         (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
14548
14549 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14550
14551         * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
14552         to SVE_I.
14553         (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
14554         (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
14555
14556 2021-01-13  Richard Biener  <rguenther@suse.de>
14557
14558         PR tree-optimization/92645
14559         * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
14560         BIT_FIELD_REF argument.
14561         (vect_build_slp_tree_2): Record the desired vector type
14562         on the external vector def.
14563         (vectorizable_slp_permutation): Handle required punning
14564         of existing vector defs.
14565
14566 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14567
14568         * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
14569
14570 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14571
14572         * config/sh/sh.md (movsf_ie): Remove operands[2] test.
14573
14574 2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>
14575
14576         * config.gcc [$target == *-*-gnu*]: Enable
14577         'default_gnu_indirect_function'.
14578
14579 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14580
14581         PR target/95905
14582         * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
14583         registers before calling targetm.vectorize.vec_perm_const, only after
14584         that.
14585         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
14586         two argument permutation when one operand is zero vector and only
14587         after that force operands into registers.
14588         * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
14589         define_insn_and_split pattern.
14590         (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
14591         (*avx512f_zero_extendv16hiv16si2_1): Likewise.
14592         (*avx2_zero_extendv8hiv8si2_1): Likewise.
14593         (*avx512f_zero_extendv8siv8di2_1): Likewise.
14594         (*avx2_zero_extendv4siv4di2_1): Likewise.
14595         * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
14596         into registers.
14597         * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
14598         * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
14599         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
14600         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
14601         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
14602         * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise.  Use std::swap.
14603
14604 2021-01-13  Martin Liska  <mliska@suse.cz>
14605
14606         PR tree-optimization/98455
14607         * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
14608         Record also virtual PHIs.
14609         (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
14610         conditionally.
14611
14612 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
14613
14614         * doc/invoke.texi (C++ Modules): Fix typos.
14615
14616 2021-01-13  Richard Biener  <rguenther@suse.de>
14617
14618         PR tree-optimization/98640
14619         * tree-ssa-sccvn.c (visit_nary_op): Do not try to
14620         handle plus or minus from a truncated operand to be
14621         sign-extended.
14622
14623 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14624
14625         PR target/96938
14626         * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
14627         define_insn_and_split patterns.
14628         (splitter after *btr<mode>_2): New splitter.
14629
14630 2021-01-13  Martin Liska  <mliska@suse.cz>
14631
14632         PR ipa/98652
14633         * cgraphunit.c (analyze_functions): Remove dead code.
14634
14635 2021-01-13  Qian Jianhua  <qianjh@cn.fujitsu.com>
14636
14637         * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
14638         * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
14639         (a64fx_regmove_cost, a64fx_vector_cost): New.
14640         (a64fx_tunings): Use the new added cost tables.
14641
14642 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14643
14644         PR target/95905
14645         * config/i386/predicates.md (pmovzx_parallel): New predicate.
14646         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
14647         define_insn_and_split pattern.
14648         (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
14649         (*sse4_1_zero_extendv2siv2di2_3): Likewise.
14650
14651 2021-01-13  Julian Brown  <julian@codesourcery.com>
14652
14653         * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
14654         to fix v0 register.
14655
14656 2021-01-13  Julian Brown  <julian@codesourcery.com>
14657
14658         * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
14659         on entry to a BB.
14660
14661 2021-01-13  Julian Brown  <julian@codesourcery.com>
14662
14663         * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
14664         for reciprocal-approximation instructions.
14665         (div<mode>3): Use fused multiply-accumulate operations for reciprocal
14666         refinement and division result.
14667         * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
14668
14669 2021-01-13  Julian Brown  <julian@codesourcery.com>
14670
14671         * config/gcn/gcn-valu.md (subdf): Rename to...
14672         (subdf3): This.
14673
14674 2021-01-12  Martin Liska  <mliska@suse.cz>
14675
14676         * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
14677
14678 2021-01-12  Andrea Corallo  <andrea.corallo@arm.com>
14679
14680         * function-abi.h: Fix typo.
14681
14682 2021-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
14683
14684         PR target/97875
14685         PR target/97875
14686         * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
14687         (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
14688         (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
14689         (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
14690         (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
14691         (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
14692         (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
14693         (ARM_HAVE_NEON_V2DI_LDST): Likewise.
14694         (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
14695         (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
14696         (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
14697         (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
14698         (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
14699         (ARM_HAVE_V2DI_LDST): Likewise.
14700         * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
14701         (*movmisalign<mode>_mve_load): New pattern.
14702         * config/arm/neon.md (movmisalign<mode>): Move to ...
14703         * config/arm/vec-common.md: ... here.
14704
14705 2021-01-12  Vladimir N. Makarov  <vmakarov@redhat.com>
14706
14707         PR target/97969
14708         * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
14709         of pattern 'plus (plus (hard reg, const), pseudo)'.
14710
14711 2021-01-12  Richard Biener  <rguenther@suse.de>
14712
14713         PR tree-optimization/98550
14714         * tree-vect-slp.c (vect_record_max_nunits): Check whether
14715         the group size is a multiple of the vector element count.
14716         (vect_build_slp_tree_1): When we need to fail because
14717         the vector type choosen causes unrolling do so lazily
14718         without affecting matches only at the end to guide group splitting.
14719
14720 2021-01-12  Martin Liska  <mliska@suse.cz>
14721
14722         PR c++/97284
14723         * optc-save-gen.awk: Compare also n_target_save vars with
14724         strcmp.
14725
14726 2021-01-12  Martin Liska  <mliska@suse.cz>
14727
14728         * gcov.c (source_info::debug): New.
14729         (print_usage): Add --debug (-D) option.
14730         (process_args): Likewise.
14731         (generate_results): Call src->debug after
14732         accumulate_line_counts.
14733         (read_graph_file): Properly assign id for EXIT_BLOCK.
14734         * profile.c (branch_prob): Dump function body before it is
14735         instrumented.
14736
14737 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
14738
14739         PR tree-optimization/98629
14740         * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
14741         unless returning non-zero.
14742
14743 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
14744
14745         PR tree-optimization/95731
14746         * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
14747         x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
14748         (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
14749         only after optimize_range_tests_var_bound.
14750
14751 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
14752
14753         * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
14754         * configure: Regenerated.
14755
14756 2021-01-12  liuhongt  <hongtao.liu@intel.com>
14757
14758         PR target/98612
14759         * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
14760         Deleted.
14761         * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
14762         dead code.
14763
14764 2021-01-12  Alexandre Oliva  <oliva@adacore.com>
14765
14766         * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
14767         declare.
14768         (auto_end_imm_use_stmt_traverse): New struct.
14769         (FOR_EACH_IMM_USE_STMT): Use it.
14770         (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
14771         along with uses...
14772         * gimple-ssa-strength-reduction.c: ... here, ...
14773         * graphite-scop-detection.c: ... here, ...
14774         * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
14775         * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
14776         * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
14777         * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
14778         * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
14779         * tree-vect-slp.c: ... and here, ...
14780         * doc/tree-ssa.texi: ... and the example here.
14781
14782 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
14783
14784         * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
14785         SVE_FULL_I to SVE_I.  Generate an UNSPEC_PRED_X.
14786         (*sdiv_pow2<mode>3): New pattern.
14787         (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
14788         Wrap the ASRD in an UNSPEC_PRED_X.
14789         (*cond_<sve_int_op><mode>_2): Likewise.  Replace the UNSPEC_PRED_X
14790         predicate with a constant PTRUE, if it isn't already.
14791         (*cond_<sve_int_op><mode>_z): Replace with...
14792         (*cond_<sve_int_op><mode>_any): ...this new pattern.
14793
14794 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
14795
14796         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
14797         SVE_FULL_I to SVE_I.
14798         (*cond_bic<mode>_any): Likewise.
14799
14800 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
14801
14802         * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
14803         (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
14804         to SVE_I.
14805
14806 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
14807
14808         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
14809         SVE_FULL_I to SVE_I.
14810         (*aarch64_cond_<su>abd<mode>_2): Likewise.
14811         (*aarch64_cond_<su>abd<mode>_any): Likewise.
14812         (@aarch64_pred_<su>abd<mode>): Likewise.  Use UNSPEC_PRED_X
14813         for the max and min but not for the minus.
14814         (*aarch64_cond_<su>abd<mode>_3): New pattern.
14815
14816 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
14817
14818         * config/aarch64/iterators.md (SVE_24I): New iterator.
14819         * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
14820         SVE_FULL_SDI to SVE_24I.  Use containers rather than elements.
14821
14822 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
14823
14824         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
14825         (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
14826         to SVE_I.
14827         (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
14828         (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
14829         (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
14830         (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
14831
14832 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
14833
14834         * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
14835         (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
14836         (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
14837         to SVE_I.
14838
14839 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
14840
14841         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
14842         (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
14843         (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
14844
14845 2021-01-11  Martin Liska  <mliska@suse.cz>
14846
14847         PR jit/98615
14848         * symtab-clones.h (clone_info::release): Release
14849         symtab::m_clones with ggc_delete as it's a GGC memory.
14850
14851 2021-01-11  Matthias Klose  <doko@ubuntu.com>
14852
14853         * Makefile.in (LINK_PROGRESS): Show the link target.
14854
14855 2021-01-11  Richard Biener  <rguenther@suse.de>
14856
14857         PR tree-optimization/91403
14858         * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
14859         single-element interleaving group size at 4096 elements.
14860
14861 2021-01-11  Richard Biener  <rguenther@suse.de>
14862
14863         PR tree-optimization/98526
14864         * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
14865         of the actual reduction op for the regular case.
14866         (vectorizable_reduction): Cost the stmts
14867         vect_transform_reduction produces here.
14868
14869 2021-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>
14870
14871         * tree-ssa-forwprop.c (simplify_vector_constructor): For
14872         big-endian, use UNPACK[_FLOAT]_HI.
14873
14874 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
14875
14876         * tree-vect-slp-patterns.c (class complex_pattern,
14877         class complex_add_pattern): Add parameters to matches.
14878         (complex_add_pattern::build): Free memory.
14879         (complex_add_pattern::matches): Move validation end of match.
14880         (complex_add_pattern::recognize): Likewise.
14881
14882 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
14883
14884         * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
14885
14886 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
14887
14888         * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
14889
14890 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
14891
14892         PR tree-optimization/95867
14893         * tree-ssa-math-opts.h: New header.
14894         * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
14895         (powi_as_mults): No longer static.  Use build_one_cst instead of
14896         build_real.  Formatting fix.
14897         * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
14898         (attempt_builtin_powi): Handle multiplication reassociation without
14899         powi_fndecl using powi_as_mults.
14900         (reassociate_bb): For integral types don't require
14901         -funsafe-math-optimizations to call attempt_builtin_powi.
14902
14903 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
14904
14905         PR tree-optimization/95852
14906         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
14907         mul_stmts parameter type to vec<gimple *> &.  Before cond_stmt
14908         allow in the bb any of the stmts in that vector, div_stmt and
14909         up to 3 cast stmts.
14910         (arith_cast_equal_p): New function.
14911         (arith_overflow_check_p): Add cast_stmt argument, handle signed
14912         multiply overflow checks.
14913         (match_arith_overflow): Adjust caller.  Handle signed multiply
14914         overflow checks.
14915
14916 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
14917
14918         PR tree-optimization/95852
14919         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
14920         (uaddsub_overflow_check_p): Renamed to ...
14921         (arith_overflow_check_p): ... this.  Handle also multiplication
14922         with overflow check.
14923         (match_uaddsub_overflow): Renamed to ...
14924         (match_arith_overflow): ... this.  Add cfg_changed argument.  Handle
14925         also multiplication with overflow check.  Adjust function comment.
14926         (math_opts_dom_walker::after_dom_children): Adjust callers.  Call
14927         match_arith_overflow also for MULT_EXPR.
14928
14929 2021-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14930
14931         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
14932         __builtin_convertvector.
14933         (vmovl_s16): Likewise.
14934         (vmovl_s32): Likewise.
14935         (vmovl_u8): Likewise.
14936         (vmovl_u16): Likewise.
14937         (vmovl_u32): Likewise.
14938         (vmovn_s16): Likewise.
14939         (vmovn_s32): Likewise.
14940         (vmovn_s64): Likewise.
14941         (vmovn_u16): Likewise.
14942         (vmovn_u32): Likewise.
14943         (vmovn_u64): Likewise.
14944
14945 2021-01-11  Martin Liska  <mliska@suse.cz>
14946
14947         * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
14948         (if_chain::is_beneficial): Delete clusters
14949         (find_conditions): Make second argument of conditions_in_bbs a
14950         pointer so that we control over it's lifetime.
14951         (pass_if_to_switch::execute): Delete them.
14952
14953 2021-01-11  Kewen Lin  <linkw@linux.ibm.com>
14954
14955         * ira.c (move_unallocated_pseudos): Check other_reg and skip if
14956         it isn't set.
14957
14958 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
14959
14960         * config/vax/vax.md (cc): Remove mode attribute.
14961         (subst_<cc>, subst_f<cc>): Rename to...
14962         (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
14963         (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
14964         (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
14965         (*branch_<mode>, *branch_<mode>_reversed): Likewise.
14966
14967 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
14968
14969         * config/vax/vax.md (subst_f<cc>): Add mode to operands and
14970         `const_double_zero'.
14971
14972 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
14973
14974         * config/pdp11/pdp11.md (PDPfp): New mode iterator.
14975         (fcc_cc, fcc_ccnz): Use it.  Add mode to `const_double_zero' and
14976         operands.
14977
14978 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
14979
14980         * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
14981         rtx.
14982         * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
14983         with `const_double_zero'.
14984         * doc/rtl.texi (Constant Expression Types): Document it.
14985
14986 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
14987
14988         PR c++/98556
14989         * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
14990         POINTER_DIFF_EXPR to be any integral type.
14991
14992 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
14993
14994         PR rtl-optimization/98603
14995         * function.c (instantiate_virtual_regs_in_insn): For asm goto
14996         with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
14997         if any, set ASM_OPERANDS mode to VOIDmode and change
14998         ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
14999
15000 2021-01-09  Alexandre Oliva  <oliva@gnu.org>
15001
15002         PR debug/97714
15003         * final.c (notice_source_line): Narrow down the condition to
15004         skip a line-0 marker.
15005
15006 2021-01-08  Sergei Trofimovich  <siarheit@google.com>
15007
15008         * ipa-modref.c (merge_call_side_effects): Fix
15009         linebreak split by reordering two print calls.
15010
15011 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
15012
15013         * config/s390/vector.md (*tf_to_fprx2_0): Rename from
15014         "*mov_tf_to_fprx2_0" for consistency, fix constraint.
15015         (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
15016         consistency, fix constraint.
15017
15018 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
15019
15020         * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
15021         callables instead of mask values.
15022         (struct target_flag_set_p): New predicate.
15023         (s390_cpu_cpp_builtins_internal): Define or undefine
15024         __LONG_DOUBLE_VX__ macro.
15025
15026 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
15027
15028         PR target/98482
15029         * config/i386/i386.c (x86_function_profiler): Use R10 and R11
15030         to call mcount in large model with PIC for NO_PROFILE_COUNTERS
15031         targets.
15032
15033 2021-01-08  Richard Biener  <rguenther@suse.de>
15034
15035         * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
15036
15037 2021-01-08  Richard Biener  <rguenther@suse.de>
15038
15039         * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
15040         (vect_build_slp_tree): On cache hit release the matched
15041         scalar stmts vector.
15042         * tree-vect-stmts.c (vectorizable_store): Properly free
15043         vec_oprnds before possibly gathering them again.
15044
15045 2021-01-08  Richard Biener  <rguenther@suse.de>
15046
15047         PR tree-optimization/98544
15048         * tree-vect-slp.c (vect_optimize_slp): Always materialize
15049         permutes at a permute node.
15050
15051 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
15052
15053         PR target/98482
15054         * config/i386/i386.c (x86_function_profiler): Use R10 to call
15055         mcount in large model.  Sorry for large model with PIC.
15056
15057 2021-01-08  Jakub Jelinek  <jakub@redhat.com>
15058
15059         PR target/98585
15060         * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
15061         ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
15062         ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
15063         TargetSave and initialize for variables with enum types.
15064         (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
15065         mstack-protector-guard-symbol=): Add Save.
15066         * config/i386/i386-options.c (ix86_function_specific_save,
15067         ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
15068         x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
15069         x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
15070         x_ix86_veclibabi_type.
15071
15072 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
15073
15074         * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
15075         SVE_FULL_I to SVE_I.
15076         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
15077
15078 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
15079
15080         * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
15081         SVE_FULL_I to SVE_I.
15082         (*cond_uxt<mode>_any): Likewise.
15083
15084 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15085
15086         * config/aarch64/iterators.md (Vwhalf): New iterator.
15087         * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
15088         Rename to...
15089         (aarch64_<sur>adalp<mode>): ... This.  Make more
15090         builtin-friendly.
15091         (<sur>sadv16qi): Adjust callsite of the above.
15092         * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
15093         builtins.
15094         * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
15095         builtins.
15096         (vpadal_s16): Likewise.
15097         (vpadal_u8): Likewise.
15098         (vpadal_u16): Likewise.
15099         (vpadalq_s8): Likewise.
15100         (vpadalq_s16): Likewise.
15101         (vpadalq_s32): Likewise.
15102         (vpadalq_u8): Likewise.
15103         (vpadalq_u16): Likewise.
15104         (vpadalq_u32): Likewise.
15105
15106 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15107
15108         * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
15109         Rename to...
15110         (aarch64_<su>abd<mode>): ... This.
15111         (<sur>sadv16qi): Adjust callsite of the above.
15112         * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
15113         builtins.
15114         * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
15115         builtin.
15116         (vabd_s16): Likewise.
15117         (vabd_s32): Likewise.
15118         (vabd_u8): Likewise.
15119         (vabd_u16): Likewise.
15120         (vabd_u32): Likewise.
15121         (vabdq_s8): Likewise.
15122         (vabdq_s16): Likewise.
15123         (vabdq_s32): Likewise.
15124         (vabdq_u8): Likewise.
15125         (vabdq_u16): Likewise.
15126         (vabdq_u32): Likewise.
15127
15128 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15129
15130         * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
15131         builtins.
15132         * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
15133         (vaba_s16): Likewise.
15134         (vaba_s32): Likewise.
15135         (vaba_u8): Likewise.
15136         (vaba_u16): Likewise.
15137         (vaba_u32): Likewise.
15138         (vabaq_s8): Likewise.
15139         (vabaq_s16): Likewise.
15140         (vabaq_s32): Likewise.
15141         (vabaq_u8): Likewise.
15142         (vabaq_u16): Likewise.
15143         (vabaq_u32): Likewise.
15144
15145 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15146
15147         * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
15148         (aarch64_<su>aba<mode>): ... This.  Handle uaba as well.
15149         Change RTL pattern to match.
15150
15151 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
15152
15153         * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
15154         * config/riscv/riscv-c.c (riscv-subset.h): New.
15155         (INCLUDE_STRING): Define.
15156         (riscv_cpu_cpp_builtins): Add new style architecture extension
15157         test macros.
15158         * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
15159         (riscv_subset_list::end): New.
15160         (riscv_current_subset_list): New.
15161
15162 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
15163
15164         * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
15165         Move to riscv-subset.h.
15166         (struct riscv_subset_t): Ditto.
15167         (class riscv_subset_list): Ditto.
15168         * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
15169         from riscv-common.c.
15170         (struct riscv_subset_t): Ditto.
15171         (class riscv_subset_list): Ditto.
15172         * config/riscv/t-riscv ($(common_out_file)): Add file
15173         dependency.
15174
15175 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
15176
15177         PR target/98567
15178         * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
15179         New define_insn patterns.
15180
15181 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
15182
15183         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
15184         (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
15185         (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
15186
15187 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
15188
15189         PR tree-optimization/98560
15190         * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
15191         * internal-fn.c (vec_cond_mask_direct): Get the data mode from
15192         argument 1.
15193         (vec_cond_direct): Likewise argument 2.
15194         (vec_condu_direct, vec_condeq_direct): Delete.
15195         (expand_vect_cond_optab_fn): Rename to...
15196         (expand_vec_cond_optab_fn): ...this, replacing old macro.
15197         (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
15198         (expand_vect_cond_mask_optab_fn): Rename to...
15199         (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
15200         (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
15201         convert optab.
15202         (direct_vec_cond_optab_supported_p): Likewise.
15203         (direct_vec_condu_optab_supported_p): Delete.
15204         (direct_vec_condeq_optab_supported_p): Delete.
15205         * gimple-isel.cc: Include internal-fn.h.
15206         (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
15207         before using it.
15208
15209 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
15210
15211         PR tree-optimization/98560
15212         * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
15213         IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
15214
15215 2021-01-07  Uroš Bizjak  <ubizjak@gmail.com>
15216
15217         * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
15218         rotate_insn and optab code attributes.
15219         Update all uses to merged code attribute.
15220         * config/i386/sse.md: Update all uses to merged code attribute.
15221         * config/i386/mmx.md: Update all uses to merged code attribute.
15222
15223 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
15224
15225         PR tree-optimization/98568
15226         * gimple-ssa-store-merging.c (bswap_view_convert): New function.
15227         (bswap_replace): Use it.
15228
15229 2021-01-06  Vladimir N. Makarov  <vmakarov@redhat.com>
15230
15231         PR rtl-optimization/97978
15232         * lra-int.h (lra_hard_reg_split_p): New external.
15233         * lra.c (lra_hard_reg_split_p): New global.
15234         (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
15235         * lra-assigns.c (lra_assign): Don't check allocation correctness
15236         after hard reg splitting.
15237
15238 2021-01-06  Martin Sebor  <msebor@redhat.com>
15239
15240         PR c++/98305
15241         * builtins.c (new_delete_mismatch_p): New overload.
15242         (new_delete_mismatch_p (tree, tree)): Call it.
15243
15244 2021-01-06  Alexandre Oliva  <oliva@adacore.com>
15245
15246         * Makefile.in (T_GLIMITS_H): New.
15247         (stmp-int-hdrs): Depend on it, use it.
15248         * config/t-vxworks (T_GLIMITS_H): Override it.
15249         (vxw-glimits.h): New.
15250
15251 2021-01-06  Richard Biener  <rguenther@suse.de>
15252
15253         PR tree-optimization/98513
15254         * value-range.cc (intersect_ranges): Compare the upper bounds
15255         for the expected relation.
15256
15257 2021-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
15258
15259         Revert:
15260         2020-12-28  Gerald Pfeifer  <gerald@pfeifer.com>
15261
15262         * doc/standards.texi (HSAIL): Remove section.
15263
15264 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
15265
15266         * configure: Re-generate.
15267
15268 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15269
15270         * doc/invoke.texi (-std=c++20): Adjust for the publication of
15271         ISO 14882:2020 standard.
15272         * doc/standards.texi: Likewise.
15273
15274 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15275
15276         PR tree-optimization/94802
15277         * expr.h (maybe_optimize_sub_cmp_0): Declare.
15278         * expr.c: Include tree-pretty-print.h and flags.h.
15279         (maybe_optimize_sub_cmp_0): New function.
15280         (do_store_flag): Use it.
15281         * cfgexpand.c (expand_gimple_cond): Likewise.
15282
15283 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15284
15285         * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
15286         * rtlanal.c (simple_regno_set): Tweak description to clarify the
15287         RMW condition.
15288
15289 2021-01-05  Richard Biener  <rguenther@suse.de>
15290
15291         PR tree-optimization/98516
15292         * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
15293         lanes when materializing on a VEC_PERM node.
15294         (vectorizable_slp_permutation): Dump the permute properly.
15295
15296 2021-01-05  Richard Biener  <rguenther@suse.de>
15297
15298         * tree-vect-slp.c (vect_slp_region): Move debug counter
15299         to cover individual subgraphs.
15300
15301 2021-01-05  Richard Biener  <rguenther@suse.de>
15302
15303         PR tree-optimization/98428
15304         * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
15305         vector lane extracts for loop vectorization.
15306
15307 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15308
15309         PR tree-optimization/98514
15310         * tree-ssa-reassoc.c (bb_rank): Change type from long * to
15311         int64_t *.
15312         (operand_rank): Change type from hash_map<tree, long> to
15313         hash_map<tree, int64_t>.
15314         (phi_rank): Change return type from long to int64_t.
15315         (loop_carried_phi): Change block_rank variable type from long to
15316         int64_t.
15317         (propagate_rank): Change return type, rank parameter type and
15318         op_rank variable type from long to int64_t.
15319         (find_operand_rank): Change return type from long to int64_t
15320         and change slot variable type from long * to int64_t *.
15321         (insert_operand_rank): Change rank parameter type from long to
15322         int64_t.
15323         (get_rank): Change return type and rank variable type from long to
15324         int64_t.  Use PRId64 instead of ld to print the rank.
15325         (init_reassoc): Change rank variable type from long to int64_t
15326         and adjust correspondingly bb_rank and operand_rank initialization.
15327
15328 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15329
15330         PR tree-optimization/96928
15331         * tree-ssa-phiopt.c (xor_replacement): New function.
15332         (tree_ssa_phiopt_worker): Call it.
15333
15334 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15335
15336         PR tree-optimization/96930
15337         * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
15338         from narrower value which has the same type as 1 << B, perform
15339         the right shift on the narrower value followed by extension.
15340
15341 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15342
15343         PR tree-optimization/96239
15344         * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
15345         function.
15346         (get_status_for_store_merging): Don't return BB_INVALID for blocks
15347         with potential bswap optimizable CONSTRUCTORs.
15348         (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
15349         if possible.
15350
15351 2021-01-05  Richard Biener  <rguenther@suse.de>
15352
15353         PR tree-optimization/98381
15354         * tree.c (vector_element_bits): Properly compute bool vector
15355         element size.
15356         * tree-vect-loop.c (vectorizable_live_operation): Properly
15357         compute the last lane bit offset.
15358
15359 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
15360
15361         PR target/98522
15362         * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
15363         Clear the top 64 bytes of the input XMM register.
15364         (sse_cvttps2pi): Ditto.
15365
15366 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
15367
15368         PR target/98521
15369         * config/i386/xopintrin.h (_mm256_cmov_si256): New.
15370
15371 2021-01-05  H.J. Lu  <hjl.tools@gmail.com>
15372
15373         PR target/98495
15374         * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
15375         short first.
15376
15377 2021-01-05  Claudiu Zissulescu  <claziss@synopsys.com>
15378
15379         * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
15380         (umaddsidi4_split): Likewise.
15381
15382 2021-01-05  liuhongt  <hongtao.liu@intel.com>
15383
15384         PR target/98461
15385         * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
15386         define_insn_and_split for zero_extend of subreg HI of pmovskb
15387         result.
15388         (*sse2_pmovskb_zexthisi): Add new combine splitters for
15389         zero_extend of not of subreg HI of pmovskb result.
15390
15391 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15392
15393         PR target/97269
15394         * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
15395         nested in CONSTs.
15396         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
15397         convert_memory_address to convert symbolic immediates to ptr_mode
15398         before forcing them to memory.
15399
15400 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15401
15402         PR rtl-optimization/97144
15403         * recog.c (constrain_operands): Initialize matching_operand
15404         for each alternative, rather than only doing it once.
15405
15406 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15407
15408         PR rtl-optimization/98403
15409         * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
15410         why we don't remove call clobbers.
15411         (function_info::apply_changes_to_insn): Don't attempt to add
15412         call clobbers here.
15413
15414 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15415
15416         PR tree-optimization/98371
15417         * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
15418         (vect_analyze_loop): If an epilogue loop appears to be cheaper
15419         than the main loop, re-analyze it as a main loop before adopting
15420         it as a main loop.
15421
15422 2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15423
15424         PR c++/98316
15425         * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
15426         * aclocal.m4, configure: Regenerate.
15427         * Makefile.in (NETLIBS): Define.
15428         (BACKEND): Remove $(CODYLIB).
15429
15430 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15431
15432         PR rtl-optimization/98334
15433         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
15434         Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
15435
15436 2021-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15437
15438         * tree-inline.c (expand_call_inline): Restore input_location.
15439         Return result from recursive call.
15440
15441 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
15442
15443         PR tree-optimization/95401
15444         * config/aarch64/aarch64-sve-builtins.cc
15445         (gimple_folder::load_store_cookie): Use bits rather than bytes
15446         for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
15447         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
15448         * tree-vect-stmts.c (vectorizable_store): Likewise.
15449         (vectorizable_load): Likewise.
15450
15451 2021-01-04  Richard Biener  <rguenther@suse.de>
15452
15453         PR tree-optimization/98308
15454         * tree-vect-stmts.c (vectorizable_load): Set invariant mask
15455         SLP vectype.
15456
15457 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
15458
15459         PR tree-optimization/95771
15460         * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
15461         with precision smaller than int's precision and types with precision
15462         twice as large as long long.  Formatting fixes.
15463
15464 2021-01-04  Richard Biener  <rguenther@suse.de>
15465
15466         PR tree-optimization/98464
15467         * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
15468         (vn_valueize_wrapper): ... this.  Temporarily adjust vn_context_bb.
15469         (process_bb): Adjust.
15470
15471 2021-01-04  Matthew Malcomson  <matthew.malcomson@arm.com>
15472
15473         PR other/98437
15474         * doc/invoke.texi (-fsanitize=address): Fix wording describing
15475         clash with -fsanitize=hwaddress.
15476
15477 2021-01-04  Richard Biener  <rguenther@suse.de>
15478
15479         PR tree-optimization/98282
15480         * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
15481         invariants as VN_NARY.
15482
15483 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
15484
15485         PR target/89057
15486         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
15487         aarch64_simd_reg_or_zero for operand 2.  Use the combinez patterns
15488         to handle zero operands.
15489
15490 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
15491
15492         * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
15493         (offset_6bit_unsigned_scaled_p): Fix typo in comment.
15494         (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
15495         [-32, 31].
15496
15497 2021-01-04  Richard Biener  <rguenther@suse.de>
15498
15499         PR tree-optimization/98393
15500         * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
15501         when hitting the limit.
15502
15503 2021-01-04  Richard Biener  <rguenther@suse.de>
15504
15505         PR tree-optimization/98291
15506         * tree-vect-loop.c (vectorizable_reduction): Bypass
15507         associativity check for SLP reductions with VF 1.
15508
15509 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
15510
15511         PR tree-optimization/96782
15512         * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
15513
15514 2021-01-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15515
15516         * collect-utils.c (collect_execute): Check dumppfx.
15517         * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
15518         to collect_execute.
15519         (do_link): Add new parameter atsuffix.
15520         (main): Handle -dumpdir option.  Skip one argument for
15521         -o, -isystem and -B options.
15522         * gcc.c (make_at_file): New helper function.
15523         (close_at_file): Use it.
15524
15525 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15526
15527         * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
15528         Amend handling for LD64_VERSION fallback defaults.
15529
15530 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15531
15532         * config.gcc: Compute default version information
15533         from the configured target.  Likewise defaults for
15534         ld64.
15535         * config/darwin10.h: Removed.
15536         * config/darwin12.h: Removed.
15537         * config/darwin9.h: Removed.
15538         * config/rs6000/darwin8.h: Removed.
15539
15540 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15541
15542         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
15543
15544 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15545
15546         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
15547         * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
15548
15549 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15550
15551         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
15552         here...
15553         * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
15554
15555 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15556
15557         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
15558         for the Darwin10 unwinder stub from here ...
15559         * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
15560
15561 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15562
15563         * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
15564         (ASM_DEBUG_SPEC):Only define if the assembler supports
15565         stabs.
15566         (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
15567         (DARWIN_PREFER_DWARF): Define.
15568         * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
15569         (DARWIN_PREFER_DWARF): Likewise
15570         (DSYMUTIL_SPEC): Likewise.
15571         (COLLECT_RUN_DSYMUTIL): Likewise.
15572         (ASM_DEBUG_SPEC): Likewise.
15573         (ASM_DEBUG_OPTION_SPEC): Likewise.
15574
15575 2021-01-02  Jan Hubicka  <jh@suse.cz>
15576
15577         * cfg.c (free_block): ggc_free bb.
15578
15579 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
15580
15581         * gcc.c (process_command): Update copyright notice dates.
15582         * gcov-dump.c (print_version): Ditto.
15583         * gcov.c (print_version): Ditto.
15584         * gcov-tool.c (print_version): Ditto.
15585         * gengtype.c (create_file): Ditto.
15586         * doc/cpp.texi: Bump @copying's copyright year.
15587         * doc/cppinternals.texi: Ditto.
15588         * doc/gcc.texi: Ditto.
15589         * doc/gccint.texi: Ditto.
15590         * doc/gcov.texi: Ditto.
15591         * doc/install.texi: Ditto.
15592         * doc/invoke.texi: Ditto.
15593
15594 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
15595
15596         * ChangeLog-2020: Rotate ChangeLog.  New file.
15597
15598 \f
15599 Copyright (C) 2021 Free Software Foundation, Inc.
15600
15601 Copying and distribution of this file, with or without modification,
15602 are permitted in any medium without royalty provided the copyright
15603 notice and this notice are preserved.