Daily bump.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2021-07-28  Martin Sebor  <msebor@redhat.com>
2
3         PR middle-end/101494
4         * tree-ssa-uninit.c (maybe_warn_operand): Correct object offset
5         and size computation.
6
7 2021-07-28  Martin Sebor  <msebor@redhat.com>
8
9         PR middle-end/101601
10         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Remove
11         a pointless test.
12         Handle pointers to functions.
13
14 2021-07-28  Martin Sebor  <msebor@redhat.com>
15
16         * Makefile.in (OBJS): Add gimple-ssa-warn-access.o and pointer-query.o.
17         * attribs.h (fndecl_dealloc_argno): Move fndecl_dealloc_argno to tree.h.
18         * builtins.c (compute_objsize_r): Move to pointer-query.cc.
19         (access_ref::access_ref): Same.
20         (access_ref::phi): Same.
21         (access_ref::get_ref): Same.
22         (access_ref::size_remaining): Same.
23         (access_ref::offset_in_range): Same.
24         (access_ref::add_offset): Same.
25         (access_ref::inform_access): Same.
26         (ssa_name_limit_t::visit_phi): Same.
27         (ssa_name_limit_t::leave_phi): Same.
28         (ssa_name_limit_t::next): Same.
29         (ssa_name_limit_t::next_phi): Same.
30         (ssa_name_limit_t::~ssa_name_limit_t): Same.
31         (pointer_query::pointer_query): Same.
32         (pointer_query::get_ref): Same.
33         (pointer_query::put_ref): Same.
34         (pointer_query::flush_cache): Same.
35         (warn_string_no_nul): Move to gimple-ssa-warn-access.cc.
36         (check_nul_terminated_array): Same.
37         (unterminated_array): Same.
38         (maybe_warn_for_bound): Same.
39         (check_read_access): Same.
40         (warn_for_access): Same.
41         (get_size_range): Same.
42         (check_access): Same.
43         (gimple_call_alloc_size): Move to tree.c.
44         (gimple_parm_array_size): Move to pointer-query.cc.
45         (get_offset_range): Same.
46         (gimple_call_return_array): Same.
47         (handle_min_max_size): Same.
48         (handle_array_ref): Same.
49         (handle_mem_ref): Same.
50         (compute_objsize): Same.
51         (gimple_call_alloc_p): Move to gimple-ssa-warn-access.cc.
52         (call_dealloc_argno): Same.
53         (fndecl_dealloc_argno): Same.
54         (new_delete_mismatch_p): Same.
55         (matching_alloc_calls_p): Same.
56         (warn_dealloc_offset): Same.
57         (maybe_emit_free_warning): Same.
58         * builtins.h (check_nul_terminated_array): Move to
59         gimple-ssa-warn-access.h.
60         (check_nul_terminated_array): Same.
61         (warn_string_no_nul): Same.
62         (unterminated_array): Same.
63         (class ssa_name_limit_t): Same.
64         (class pointer_query): Same.
65         (struct access_ref): Same.
66         (class range_query): Same.
67         (struct access_data): Same.
68         (gimple_call_alloc_size): Same.
69         (gimple_parm_array_size): Same.
70         (compute_objsize): Same.
71         (class access_data): Same.
72         (maybe_emit_free_warning): Same.
73         * calls.c (initialize_argument_information): Remove call to
74         maybe_emit_free_warning.
75         * gimple-array-bounds.cc: Include new header..
76         * gimple-fold.c: Same.
77         * gimple-ssa-sprintf.c: Same.
78         * gimple-ssa-warn-restrict.c: Same.
79         * passes.def: Add pass_warn_access.
80         * tree-pass.h (make_pass_warn_access): Declare.
81         * tree-ssa-strlen.c: Include new headers.
82         * tree.c (fndecl_dealloc_argno): Move here from builtins.c.
83         * tree.h (fndecl_dealloc_argno): Move here from attribs.h.
84         * gimple-ssa-warn-access.cc: New file.
85         * gimple-ssa-warn-access.h: New file.
86         * pointer-query.cc: New file.
87         * pointer-query.h: New file.
88
89 2021-07-28  Jakub Jelinek  <jakub@redhat.com>
90
91         PR middle-end/101624
92         * ubsan.c (maybe_instrument_pointer_overflow,
93         instrument_object_size): Only test DECL_REGISTER on VAR_DECLs,
94         PARM_DECLs or RESULT_DECLs.
95         * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise.
96
97 2021-07-28  Jakub Jelinek  <jakub@redhat.com>
98
99         PR middle-end/101642
100         * match.pd (bswap16 (x) == bswap16 (y)): Cast both operands
101         to type of bswap16 for comparison.
102         (bswap16 (x) == cst): Cast bswap16 operand to type of cst.
103
104 2021-07-28  Richard Biener  <rguenther@suse.de>
105
106         PR tree-optimization/101615
107         * tree-vect-slp.c (vect_optimize_slp): Materialize permutes
108         at CTOR SLP graph entries.
109
110 2021-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
111
112         * config/aarch64/aarch64.md (*extend<SHORT:mode><GPI:mode>2_aarch64):
113         Add "r,w" alternative.
114
115 2021-07-28  H.J. Lu  <hjl.tools@gmail.com>
116
117         PR target/101456
118         * config/i386/i386.c (ix86_avx_u128_mode_needed): Don't set
119         AVX_U128_DIRTY when all bits are zero.
120
121 2021-07-28  Richard Biener  <rguenther@suse.de>
122
123         PR tree-optimization/101615
124         * tree-vect-slp.c (vect_optimize_slp): Pre-existing vector
125         external nodes cannot be permuted so make them perm_out 0.
126
127 2021-07-28  Andrew Stubbs  <ams@codesourcery.com>
128
129         PR target/100208
130         * config.in: Regenerate.
131         * config/gcn/gcn-hsa.h (A_FIJI): New define.
132         (A_900): New define.
133         (A_906): New define.
134         (A_908): New define.
135         (ASM_SPEC): Use A_FIJI, A_900, A_906 and A_908.
136         * config/gcn/gcn.c (output_file_start): Adjust attributes according
137         to the assembler capabilities.
138         * config/gcn/mkoffload.c (main): Likewise.
139         * configure: Regenerate.
140         * configure.ac: Add tests for LLVM assembler attribute features.
141
142 2021-07-28  Andrew MacLeod  <amacleod@redhat.com>
143
144         * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Check for
145         cond_false and cond_true on branches.
146
147 2021-07-28  Bin Cheng  <bin.cheng@linux.alibaba.com>
148
149         * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): use
150         gcc_stablesort.
151
152 2021-07-28  Bin Cheng  <bin.cheng@linux.alibaba.com>
153
154         * alias.c (init_alias_analysis): Don't skip prologue/epilogue.
155
156 2021-07-28  Jakub Jelinek  <jakub@redhat.com>
157
158         PR target/101611
159         * config/i386/sse.md (vashr<mode>3): Split into vashrv8di3 expander
160         and vashrv4di3 expander, where the latter requires just TARGET_AVX2
161         and has special !TARGET_AVX512VL expansion.
162         (vashrv2di3<mask_name>): Rename to ...
163         (vashrv2di3): ... this.  Change condition to TARGET_XOP || TARGET_AVX2
164         and add special !TARGET_XOP && !TARGET_AVX512VL expansion.
165
166 2021-07-28  Martin Uecker  <muecker@gwdg.de>
167
168         * calls.c (maybe_warn_rdwr_sizes): Correct argument
169         numbers in warning that were switched.
170
171 2021-07-28  Kewen Lin  <linkw@linux.ibm.com>
172
173         PR tree-optimization/101596
174         * tree-vect-patterns.c (vect_recog_mulhs_pattern): Fix wrong check
175         by using new_type's precision instead.
176
177 2021-07-28  liuhongt  <hongtao.liu@intel.com>
178
179         PR target/99881
180         * config/i386/i386.h (processor_costs): Add new member
181         integer_to_sse.
182         * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost,
183         i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost,
184         geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost,
185         bdver_cost, znver1_cost, znver2_cost, znver3_cost,
186         btver1_cost, btver2_cost, btver3_cost, pentium4_cost,
187         nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost,
188         generic_cost, core_cost): Initialize integer_to_sse same value
189         as sse_op.
190         (skylake_cost): Initialize integer_to_sse twice as much as sse_op.
191         * config/i386/i386.c (ix86_builtin_vectorization_cost):
192         Use integer_to_sse instead of sse_op to calculate the cost of
193         vec_construct.
194
195 2021-07-27  Bill Schmidt  <wschmidt@linux.ibm.com>
196
197         * config/rs6000/rs6000-gen-builtins.c (write_ovld_static_init): New
198         function.
199         (write_init_file): Call write_ovld_static_init.
200
201 2021-07-27  Bill Schmidt  <wschmidt@linux.ibm.com>
202
203         * config/rs6000/rs6000-gen-builtins.c (write_bif_static_init): New
204         function.
205         (write_init_file): Call write_bif_static_init.
206
207 2021-07-27  Bill Schmidt  <wschmidt@linux.ibm.com>
208
209         * config/rs6000/rs6000-gen-builtins.c (typemap): New struct.
210         (TYPE_MAP_SIZE): New macro.
211         (type_map): New initialized variable.
212         (typemap_cmp): New function.
213         (write_type_node): Likewise.
214         (write_fntype_init): Implement.
215
216 2021-07-27  Martin Sebor  <msebor@redhat.com>
217
218         PR tree-optimization/101584
219         * tree-ssa-uninit.c (builtin_call_nomodifying_p): New function.
220         (check_defs): Call it.
221
222 2021-07-27  Aldy Hernandez  <aldyh@redhat.com>
223
224         * tree-ssa-dom.c (dom_jump_threader_simplifier):
225         Put avail_exprs_stack in the class, instead of passing it to
226         jump_threader_simplifier.
227         (dom_jump_threader_simplifier::simplify): Add state argument.
228         (dom_opt_dom_walker): Add state.
229         (pass_dominator::execute): Pass state to threader.
230         (dom_opt_dom_walker::before_dom_children): Use state.
231         * tree-ssa-threadedge.c (jump_threader::jump_threader): Replace
232         arguments by state.
233         (jump_threader::record_temporary_equivalences_from_phis):
234         Register equivalences through the state variable.
235         (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
236         Record ranges in a statement through the state variable.
237         (jump_threader::simplify_control_stmt_condition): Pass state to
238         simplify.
239         (jump_threader::simplify_control_stmt_condition_1): Same.
240         (jump_threader::thread_around_empty_blocks): Remove obsolete
241         comment.
242         (jump_threader::thread_through_normal_block): Record equivalences
243         on edge through the state variable.
244         (jump_threader::thread_across_edge): Abstract state pushing.
245         (jt_state::jt_state): New.
246         (jt_state::push): New.
247         (jt_state::pop): New.
248         (jt_state::register_equiv): New.
249         (jt_state::record_ranges_from_stmt): New.
250         (jt_state::register_equivs_on_edge): New.
251         (jump_threader_simplifier::jump_threader_simplifier): Move from
252         header.
253         (jump_threader_simplifier::simplify): Add state argument.
254         * tree-ssa-threadedge.h (class jt_state): New.
255         (class jump_threader): Add state to constructor.
256         (class jump_threader_simplifier): Add state to simplify.  Remove
257         avail_exprs_stack from class.
258         * tree-vrp.c (vrp_jump_threader_simplifier::simplify): Add state
259         argument.
260         (vrp_jump_threader::vrp_jump_threader): Add state.
261         (vrp_jump_threader::~vrp_jump_threader): Cleanup state.
262
263 2021-07-27  Aldy Hernandez  <aldyh@redhat.com>
264
265         * Makefile.in (OBJS): Add gimple-range-path.o.
266         * gimple-range-path.cc: New file.
267         * gimple-range-path.h: New file.
268
269 2021-07-27  Jonathan Wright  <jonathan.wright@arm.com>
270
271         * config/aarch64/aarch64-simd.md: Push sign/zero-extension
272         inside vec_duplicate for all patterns.
273         * simplify-rtx.c (simplify_context::simplify_unary_operation_1):
274         Push sign/zero-extension inside vec_duplicate.
275
276 2021-07-27  Richard Biener  <rguenther@suse.de>
277
278         PR tree-optimization/101573
279         * tree-ssa-uninit.c (warn_uninit_phi_uses): New function
280         looking at uninitialized PHI arg defs in some constrained cases.
281         (warn_uninitialized_vars): Call it.
282         (execute_early_warn_uninitialized): Calculate dominators.
283
284 2021-07-27  Richard Biener  <rguenther@suse.de>
285
286         PR tree-optimization/39821
287         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Use
288         vector_stmt for widening arithmetic.
289         (vectorizable_conversion): Adjust.
290
291 2021-07-27  Martin Jambor  <mjambor@suse.cz>
292
293         * cgraph.h (ipa_replace_map): New field force_load_ref.
294         * ipa-prop.h (ipa_param_descriptor): Reduce precision of move_cost,
295         aded new flag load_dereferenced, adjusted comments.
296         (ipa_get_param_dereferenced): New function.
297         (ipa_set_param_dereferenced): Likewise.
298         * cgraphclones.c (cgraph_node::create_virtual_clone): Follow it.
299         * ipa-cp.c: Include gimple.h.
300         (ipcp_discover_new_direct_edges): Take into account dereferenced flag.
301         (get_replacement_map): New parameter force_load_ref, set the
302         appropriate flag in ipa_replace_map if set.
303         (struct symbol_and_index_together): New type.
304         (adjust_refs_in_act_callers): New function.
305         (adjust_references_in_caller): Likewise.
306         (create_specialized_node): When appropriate, call
307         adjust_references_in_caller and force only load references.
308         * ipa-prop.c (load_from_dereferenced_name): New function.
309         (ipa_analyze_controlled_uses): Also detect loads from a
310         dereference, harden testing of call statements.
311         (ipa_write_node_info): Stream the dereferenced flag.
312         (ipa_read_node_info): Likewise.
313         (ipa_set_jf_constant): Also create refdesc when jump function
314         references a variable.
315         (cgraph_node_for_jfunc): Rename to symtab_node_for_jfunc, work
316         also on references of variables and return a symtab_node.  Adjust
317         all callers.
318         (propagate_controlled_uses): Also remove references to VAR_DECLs.
319
320 2021-07-27  Jakub Jelinek  <jakub@redhat.com>
321
322         PR middle-end/101586
323         * gimple-fold.c (clear_padding_type): Ignore FIELD_DECLs with byte
324         positions above or equal to sz except for diagnostics of flexible
325         array members.
326
327 2021-07-26  Andrew MacLeod  <amacleod@redhat.com>
328
329         PR tree-optimization/78888
330         * gimple-range-fold.cc (get_letter_range): New.
331         (fold_using_range::range_of_builtin_call): Call get_letter_range.
332
333 2021-07-26  Andrew MacLeod  <amacleod@redhat.com>
334
335         PR tree-optimization/78888
336         * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Add cases
337         for CFN_BUILT_IN_TOUPPER and CFN_BUILT_IN_TOLOWER.
338
339 2021-07-26  Roger Sayle  <roger@nextmovesoftware.com>
340             Marc Glisse  <marc.glisse@inria.fr>
341
342         * match.pd (rotate): Simplify equality/inequality of rotations.
343         (bswap): Simplify equality/inequality tests of byte swapping.
344
345 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
346
347         * range-op.cc (operator_bitwise_xor::op1_op2_relation_effect):
348         New.
349
350 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
351
352         * range-op.cc (operator_lshift::fold_range): Pass rel to
353         base class fold_range.
354         (operator_rshift::fold_range): Same.
355
356 2021-07-26  Ashimida  <ashimida@linux.alibaba.com>
357
358         PR driver/101447
359         * toplev.h (min_align_loops_log): Remove declaration.
360         (min_align_jumps_log, min_align_labels_log): Likewise.
361         (min_align_functions_log): Likewise.
362
363 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
364
365         * tree-vrp.c (vrp_simplify_cond_using_ranges): Rename vr_values
366         with range_query.
367         (execute_vrp): Abstract out simplification of conditionals...
368         (simplify_casted_conds): ...here.
369
370 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
371
372         * gimple-array-bounds.cc (array_bounds_checker::get_value_range):
373         Add gimple argument.
374         (array_bounds_checker::check_array_ref): Same.
375         (array_bounds_checker::check_addr_expr): Same.
376         (array_bounds_checker::check_array_bounds): Pass statement to
377         check_array_bounds and check_addr_expr.
378         * gimple-array-bounds.h (check_array_bounds): Add gimple argument.
379         (check_addr_expr): Same.
380         (get_value_range): Same.
381
382 2021-07-26  Tamar Christina  <tamar.christina@arm.com>
383
384         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): Rename to..
385         (sdot_prod, udot_prod): ... This.
386         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): Merged
387         into...
388         (<sur>dot_prod<vsi2qi>): ... this.
389         (aarch64_<sur>dot_lane<vsi2qi>, aarch64_<sur>dot_laneq<vsi2qi>):
390         Change operands order.
391         (<sur>sadv16qi): Use new operands order.
392         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32,
393         vdotq_s32): Use new RTL ordering.
394
395 2021-07-26  Tamar Christina  <tamar.christina@arm.com>
396
397         * config/aarch64/aarch64-builtins.c (TYPES_TERNOP_SUSS,
398         aarch64_types_ternop_suss_qualifiers): New.
399         * config/aarch64/aarch64-simd-builtins.def (usdot_prod): Use it.
400         * config/aarch64/aarch64-simd.md (usdot_prod<vsi2qi>): Re-organize RTL.
401         * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Use it.
402
403 2021-07-23  Jakub Jelinek  <jakub@redhat.com>
404
405         PR rtl-optimization/101562
406         * expmed.c (store_integral_bit_field): Only use movstrict_optab
407         if the operand isn't paradoxical.
408
409 2021-07-23  Aldy Hernandez  <aldyh@redhat.com>
410
411         * gimple-array-bounds.h (class array_bounds_checker): Change
412         ranges type to range_query.
413
414 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
415
416         * config/aarch64/arm_neon.h (vst1_s64_x2): Use
417         __builtin_memcpy instead of constructing
418         __builtin_aarch64_simd_oi one vector at a time.
419         (vst1_u64_x2): Likewise.
420         (vst1_f64_x2): Likewise.
421         (vst1_s8_x2): Likewise.
422         (vst1_p8_x2): Likewise.
423         (vst1_s16_x2): Likewise.
424         (vst1_p16_x2): Likewise.
425         (vst1_s32_x2): Likewise.
426         (vst1_u8_x2): Likewise.
427         (vst1_u16_x2): Likewise.
428         (vst1_u32_x2): Likewise.
429         (vst1_f16_x2): Likewise.
430         (vst1_f32_x2): Likewise.
431         (vst1_p64_x2): Likewise.
432         (vst1q_s8_x2): Likewise.
433         (vst1q_p8_x2): Likewise.
434         (vst1q_s16_x2): Likewise.
435         (vst1q_p16_x2): Likewise.
436         (vst1q_s32_x2): Likewise.
437         (vst1q_s64_x2): Likewise.
438         (vst1q_u8_x2): Likewise.
439         (vst1q_u16_x2): Likewise.
440         (vst1q_u32_x2): Likewise.
441         (vst1q_u64_x2): Likewise.
442         (vst1q_f16_x2): Likewise.
443         (vst1q_f32_x2): Likewise.
444         (vst1q_f64_x2): Likewise.
445         (vst1q_p64_x2): Likewise.
446
447 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
448
449         * config/aarch64/arm_neon.h (vst1_s64_x3): Use
450         __builtin_memcpy instead of constructing
451         __builtin_aarch64_simd_ci one vector at a time.
452         (vst1_u64_x3): Likewise.
453         (vst1_f64_x3): Likewise.
454         (vst1_s8_x3): Likewise.
455         (vst1_p8_x3): Likewise.
456         (vst1_s16_x3): Likewise.
457         (vst1_p16_x3): Likewise.
458         (vst1_s32_x3): Likewise.
459         (vst1_u8_x3): Likewise.
460         (vst1_u16_x3): Likewise.
461         (vst1_u32_x3): Likewise.
462         (vst1_f16_x3): Likewise.
463         (vst1_f32_x3): Likewise.
464         (vst1_p64_x3): Likewise.
465         (vst1q_s8_x3): Likewise.
466         (vst1q_p8_x3): Likewise.
467         (vst1q_s16_x3): Likewise.
468         (vst1q_p16_x3): Likewise.
469         (vst1q_s32_x3): Likewise.
470         (vst1q_s64_x3): Likewise.
471         (vst1q_u8_x3): Likewise.
472         (vst1q_u16_x3): Likewise.
473         (vst1q_u32_x3): Likewise.
474         (vst1q_u64_x3): Likewise.
475         (vst1q_f16_x3): Likewise.
476         (vst1q_f32_x3): Likewise.
477         (vst1q_f64_x3): Likewise.
478         (vst1q_p64_x3): Likewise.
479
480 2021-07-23  H.J. Lu  <hjl.tools@gmail.com>
481
482         PR target/101504
483         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): Don't return
484         hard register when LRA is in progress.
485
486 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
487
488         * config/aarch64/arm_neon.h (vst1_s8_x4): Use
489         __builtin_memcpy instead of using a union.
490         (vst1q_s8_x4): Likewise.
491         (vst1_s16_x4): Likewise.
492         (vst1q_s16_x4): Likewise.
493         (vst1_s32_x4): Likewise.
494         (vst1q_s32_x4): Likewise.
495         (vst1_u8_x4): Likewise.
496         (vst1q_u8_x4): Likewise.
497         (vst1_u16_x4): Likewise.
498         (vst1q_u16_x4): Likewise.
499         (vst1_u32_x4): Likewise.
500         (vst1q_u32_x4): Likewise.
501         (vst1_f16_x4): Likewise.
502         (vst1q_f16_x4): Likewise.
503         (vst1_f32_x4): Likewise.
504         (vst1q_f32_x4): Likewise.
505         (vst1_p8_x4): Likewise.
506         (vst1q_p8_x4): Likewise.
507         (vst1_p16_x4): Likewise.
508         (vst1q_p16_x4): Likewise.
509         (vst1_s64_x4): Likewise.
510         (vst1_u64_x4): Likewise.
511         (vst1_p64_x4): Likewise.
512         (vst1q_s64_x4): Likewise.
513         (vst1q_u64_x4): Likewise.
514         (vst1q_p64_x4): Likewise.
515         (vst1_f64_x4): Likewise.
516         (vst1q_f64_x4): Likewise.
517
518 2021-07-23  Jonathan Wrightt  <jonathan.wright@arm.com>
519
520         * config/aarch64/arm_neon.h (vst2_s64): Use __builtin_memcpy
521         instead of constructing __builtin_aarch64_simd_oi one vector
522         at a time.
523         (vst2_u64): Likewise.
524         (vst2_f64): Likewise.
525         (vst2_s8): Likewise.
526         (vst2_p8): Likewise.
527         (vst2_s16): Likewise.
528         (vst2_p16): Likewise.
529         (vst2_s32): Likewise.
530         (vst2_u8): Likewise.
531         (vst2_u16): Likewise.
532         (vst2_u32): Likewise.
533         (vst2_f16): Likewise.
534         (vst2_f32): Likewise.
535         (vst2_p64): Likewise.
536         (vst2q_s8): Likewise.
537         (vst2q_p8): Likewise.
538         (vst2q_s16): Likewise.
539         (vst2q_p16): Likewise.
540         (vst2q_s32): Likewise.
541         (vst2q_s64): Likewise.
542         (vst2q_u8): Likewise.
543         (vst2q_u16): Likewise.
544         (vst2q_u32): Likewise.
545         (vst2q_u64): Likewise.
546         (vst2q_f16): Likewise.
547         (vst2q_f32): Likewise.
548         (vst2q_f64): Likewise.
549         (vst2q_p64): Likewise.
550
551 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
552
553         * config/aarch64/arm_neon.h (vst3_s64): Use __builtin_memcpy
554         instead of constructing __builtin_aarch64_simd_ci one vector
555         at a time.
556         (vst3_u64): Likewise.
557         (vst3_f64): Likewise.
558         (vst3_s8): Likewise.
559         (vst3_p8): Likewise.
560         (vst3_s16): Likewise.
561         (vst3_p16): Likewise.
562         (vst3_s32): Likewise.
563         (vst3_u8): Likewise.
564         (vst3_u16): Likewise.
565         (vst3_u32): Likewise.
566         (vst3_f16): Likewise.
567         (vst3_f32): Likewise.
568         (vst3_p64): Likewise.
569         (vst3q_s8): Likewise.
570         (vst3q_p8): Likewise.
571         (vst3q_s16): Likewise.
572         (vst3q_p16): Likewise.
573         (vst3q_s32): Likewise.
574         (vst3q_s64): Likewise.
575         (vst3q_u8): Likewise.
576         (vst3q_u16): Likewise.
577         (vst3q_u32): Likewise.
578         (vst3q_u64): Likewise.
579         (vst3q_f16): Likewise.
580         (vst3q_f32): Likewise.
581         (vst3q_f64): Likewise.
582         (vst3q_p64): Likewise.
583
584 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
585
586         * config/aarch64/arm_neon.h (vst4_s64): Use __builtin_memcpy
587         instead of constructing __builtin_aarch64_simd_xi one vector
588         at a time.
589         (vst4_u64): Likewise.
590         (vst4_f64): Likewise.
591         (vst4_s8): Likewise.
592         (vst4_p8): Likewise.
593         (vst4_s16): Likewise.
594         (vst4_p16): Likewise.
595         (vst4_s32): Likewise.
596         (vst4_u8): Likewise.
597         (vst4_u16): Likewise.
598         (vst4_u32): Likewise.
599         (vst4_f16): Likewise.
600         (vst4_f32): Likewise.
601         (vst4_p64): Likewise.
602         (vst4q_s8): Likewise.
603         (vst4q_p8): Likewise.
604         (vst4q_s16): Likewise.
605         (vst4q_p16): Likewise.
606         (vst4q_s32): Likewise.
607         (vst4q_s64): Likewise.
608         (vst4q_u8): Likewise.
609         (vst4q_u16): Likewise.
610         (vst4q_u32): Likewise.
611         (vst4q_u64): Likewise.
612         (vst4q_f16): Likewise.
613         (vst4q_f32): Likewise.
614         (vst4q_f64): Likewise.
615         (vst4q_p64): Likewise.
616
617 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
618
619         * config/aarch64/arm_neon.h (vtbx4_s8): Use __builtin_memcpy
620         instead of constructing __builtin_aarch64_simd_oi one vector
621         at a time.
622         (vtbx4_u8): Likewise.
623         (vtbx4_p8): Likewise.
624
625 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
626
627         * config/aarch64/arm_neon.h (vtbl3_s8): Use __builtin_memcpy
628         instead of constructing __builtin_aarch64_simd_oi one vector
629         at a time.
630         (vtbl3_u8): Likewise.
631         (vtbl3_p8): Likewise.
632         (vtbl4_s8): Likewise.
633         (vtbl4_u8): Likewise.
634         (vtbl4_p8): Likewise.
635
636 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
637
638         * config/aarch64/arm_neon.h (vqtbx2_s8): Use __builtin_memcpy
639         instead of constructing __builtin_aarch64_simd_oi one vector
640         at a time.
641         (vqtbx2_u8): Likewise.
642         (vqtbx2_p8): Likewise.
643         (vqtbx2q_s8): Likewise.
644         (vqtbx2q_u8): Likewise.
645         (vqtbx2q_p8): Likewise.
646         (vqtbx3_s8): Use __builtin_memcpy instead of constructing
647         __builtin_aarch64_simd_ci one vector at a time.
648         (vqtbx3_u8): Likewise.
649         (vqtbx3_p8): Likewise.
650         (vqtbx3q_s8): Likewise.
651         (vqtbx3q_u8): Likewise.
652         (vqtbx3q_p8): Likewise.
653         (vqtbx4_s8): Use __builtin_memcpy instead of constructing
654         __builtin_aarch64_simd_xi one vector at a time.
655         (vqtbx4_u8): Likewise.
656         (vqtbx4_p8): Likewise.
657         (vqtbx4q_s8): Likewise.
658         (vqtbx4q_u8): Likewise.
659         (vqtbx4q_p8): Likewise.
660
661 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
662
663         * config/aarch64/arm_neon.h (vqtbl2_s8): Use __builtin_memcpy
664         instead of constructing __builtin_aarch64_simd_oi one vector
665         at a time.
666         (vqtbl2_u8): Likewise.
667         (vqtbl2_p8): Likewise.
668         (vqtbl2q_s8): Likewise.
669         (vqtbl2q_u8): Likewise.
670         (vqtbl2q_p8): Likewise.
671         (vqtbl3_s8): Use __builtin_memcpy instead of constructing
672         __builtin_aarch64_simd_ci one vector at a time.
673         (vqtbl3_u8): Likewise.
674         (vqtbl3_p8): Likewise.
675         (vqtbl3q_s8): Likewise.
676         (vqtbl3q_u8): Likewise.
677         (vqtbl3q_p8): Likewise.
678         (vqtbl4_s8): Use __builtin_memcpy instead of constructing
679         __builtin_aarch64_simd_xi one vector at a time.
680         (vqtbl4_u8): Likewise.
681         (vqtbl4_p8): Likewise.
682         (vqtbl4q_s8): Likewise.
683         (vqtbl4q_u8): Likewise.
684         (vqtbl4q_p8): Likewise.
685
686 2021-07-23  Haochen Gui  <guihaoc@gcc.gnu.org>
687
688         PR target/100952
689         * config/rs6000/rs6000.md (cstore<mode>4): Fix wrong fall through.
690
691 2021-07-22  Andrew Pinski  <apinski@marvell.com>
692
693         PR tree-optimization/10153
694         * tree-tailcall.c (create_tailcall_accumulator):
695         Don't call fold_convert as the type should be correct already.
696         (tree_optimize_tail_calls_1): Use build_{one,zero}_cst instead
697         of integer_{one,zero}_node for the call of create_tailcall_accumulator.
698
699 2021-07-22  Aldy Hernandez  <aldyh@redhat.com>
700
701         * gimple-range-cache.cc (non_null_ref::adjust_range): Replace
702         varying_p check for null/non-null check.
703
704 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
705
706         PR tree-optimization/101511
707         * value-relation.cc (relation_oracle::query_relation): Check if ssa1
708         is in ssa2's equiv set, and don't trap if so.
709
710 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
711
712         PR tree-optimization/101497
713         * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Check
714         for undefined.
715
716 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
717
718         PR tree-optimization/101496
719         * vr-values.c (simplify_using_ranges::fold_cond): Call range_of_stmt
720         first, then vrp_visit_cond_Stmt.
721
722 2021-07-22  liuhongt  <hongtao.liu@intel.com>
723
724         * config/i386/i386-expand.c
725         (ix86_broadcast_from_integer_constant): Rename to ..
726         (ix86_broadcast_from_constant): .. this, and extend it to
727         handle float mode.
728         (ix86_expand_vector_move): Extend to float mode.
729         * config/i386/i386-features.c
730         (replace_constant_pool_with_broadcast): Remove.
731         (remove_partial_avx_dependency_gate): Ditto.
732         (constant_pool_broadcast): Ditto.
733         (class pass_constant_pool_broadcast): Ditto.
734         (make_pass_constant_pool_broadcast): Ditto.
735         (remove_partial_avx_dependency): Adjust gate.
736         * config/i386/i386-passes.def: Remove pass_constant_pool_broadcast.
737         * config/i386/i386-protos.h
738         (make_pass_constant_pool_broadcast): Remove.
739
740 2021-07-22  liuhongt  <hongtao.liu@intel.com>
741
742         * config/i386/constraints.md (Wb): New constraint.
743         (Ww): Ditto.
744         * config/i386/i386.md (*ashlhi3_1): Extend to avx512 mask
745         shift.
746         (*ashlqi3_1): Ditto.
747         (*<insn><mode>3_1): Split to ..
748         (*ashr<mode>3_1): this, ...
749         (*lshr<mode>3_1): and this, also extend this pattern to avx512
750         mask registers.
751         (*<insn><mode>3_1): Split to ..
752         (*ashr<mode>3_1): this, ...
753         (*lshrqi3_1): and this, also extend this pattern to avx512
754         mask registers.
755         (*lshrhi3_1): And this, also extend this pattern to avx512
756         mask registers.
757         * config/i386/sse.md (k<code><mode>): New define_split after
758         it to convert generic shift pattern to mask shift ones.
759
760 2021-07-21  Thomas Schwinge  <thomas@codesourcery.com>
761             Joseph Myers  <joseph@codesourcery.com>
762             Cesar Philippidis  <cesar@codesourcery.com>
763
764         * tree-core.h (omp_clause_code): Add 'OMP_CLAUSE_NOHOST'.
765         * tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1):
766         Handle it.
767         * tree-pretty-print.c (dump_omp_clause): Likewise.
768         * omp-general.c (oacc_verify_routine_clauses): Likewise.
769         * gimplify.c (gimplify_scan_omp_clauses)
770         (gimplify_adjust_omp_clauses): Likewise.
771         * tree-nested.c (convert_nonlocal_omp_clauses)
772         (convert_local_omp_clauses): Likewise.
773         * omp-low.c (scan_sharing_clauses): Likewise.
774         * omp-offload.c (execute_oacc_device_lower): Update.
775
776 2021-07-21  Martin Sebor  <msebor@redhat.com>
777
778         * tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment.
779
780 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
781
782         * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table):
783         Implement.
784
785 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
786
787         * config/rs6000/rs6000-gen-builtins.c (write_fntype): New
788         callback function.
789         (write_fntype_init): New stub function.
790         (write_init_bif_table): Likewise.
791         (write_init_ovld_table): New function.
792         (write_init_file): Implement.
793
794 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
795
796         * config/rs6000/rs6000-gen-builtins.c
797         (write_autogenerated_header): New function.
798         (write_decls): Likewise.
799         (write_extern_fntype): New callback function.
800         (write_header_file): Implement.
801
802 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
803
804         * config/rs6000/rs6000-gen-builtins.c (write_defines_file):
805         Implement.
806
807 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
808
809         * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New
810         function.
811         (complete_base_type): Likewise.
812         (construct_fntype_id): Likewise.
813         (parse_bif_entry): Call contruct_fntype_id.
814         (parse_ovld_entry): Likewise.
815
816 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
817
818         * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct.
819         (MAXOVLDSTANZAS): New macro.
820         (ovld_stanzas): New variable.
821         (curr_ovld_stanza): Likewise.
822         (MAXOVLDS): New macro.
823         (ovlddata): New struct.
824         (ovlds): New variable.
825         (curr_ovld): Likewise.
826         (max_ovld_args): Likewise.
827         (parse_ovld_entry): New function.
828         (parse_ovld_stanza): Likewise.
829         (parse_ovld): Implement.
830
831 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
832
833         * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs):
834         Implement.
835
836 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
837
838         * config/rs6000/rs6000-gen-builtins.c (parse_args): New function.
839         (parse_prototype): Implement.
840
841 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
842
843         * config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum.
844         (curr_bif_stanza): New variable.
845         (stanza_entry): New struct.
846         (stanza_map): New initialized variable.
847         (enable_string): Likewise.
848         (fnkinds): New enum.
849         (typelist): New struct.
850         (attrinfo): Likewise.
851         (MAXRESTROPNDS): New macro.
852         (prototype): New struct.
853         (MAXBIFS): New macro.
854         (bifdata): New struct.
855         (bifs): New variable.
856         (curr_bif): Likewise.
857         (bif_order): Likewise.
858         (bif_index): Likewise.
859         (fatal): New function.
860         (stanza_name_to_stanza): Likewise.
861         (parse_bif_attrs): New stub function.
862         (parse_prototype): Likewise.
863         (parse_bif_entry): New function.
864         (parse_bif_stanza): Likewise.
865         (parse_bif): Implement.
866         (set_bif_order): New function.
867         (create_bif_order): Implement.
868
869 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
870
871         * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include.
872         (num_bifs): New variable.
873         (num_ovld_stanzas): Likewise.
874         (num_ovlds): Likewise.
875         (parse_codes): New enum.
876         (bif_rbt): New variable.
877         (ovld_rbt): Likewise.
878         (fntype_rbt): Likewise.
879         (bifo_rbt): Likewise.
880         (parse_bif): New stub function.
881         (create_bif_order): Likewise.
882         (parse_ovld): Likewise.
883         (write_header_file): Likewise.
884         (write_init_file): Likewise.
885         (write_defines_file): Likewise.
886         (delete_output_files): New function.
887         (main): Likewise.
888
889 2021-07-21  H.J. Lu  <hjl.tools@gmail.com>
890
891         PR target/101549
892         * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2
893         from CRC32 _builtin functions.
894
895 2021-07-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
896
897         * coverage.c (build_gcov_info_var_registration): Mark the object placed
898         in the linker set as referenced so that it does not get optimized away.
899
900 2021-07-21  Kito Cheng  <kito.cheng@sifive.com>
901
902         Revert:
903         2021-07-20  Kito Cheng  <kito.cheng@sifive.com>
904
905         * config.gcc (riscv*-*-*): Detect which python is available.
906
907 2021-07-21  Jakub Jelinek  <jakub@redhat.com>
908
909         PR middle-end/101535
910         * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA
911         contexts in which decl isn't privatized and for ORT_TARGET return
912         false if decl is mapped.
913
914 2021-07-21  Richard Sandiford  <richard.sandiford@arm.com>
915
916         * gimple-loop-jam.c: Include tree-ssa-sccvn.h.
917         (tree_loop_unroll_and_jam): Run value-numbering on a loop that
918         has been successfully unrolled.
919
920 2021-07-21  Richard Sandiford  <richard.sandiford@arm.com>
921
922         * tree-ssa-loop-manip.c (determine_exit_conditions): Return a null
923         exit condition if no tail loop is needed, and if the original exit
924         condition should therefore be kept as-is.
925         (tree_transform_and_unroll_loop): Handle that case here too.
926
927 2021-07-21  Kewen Lin  <linkw@linux.ibm.com>
928
929         * tree-data-ref.c (free_dependence_relations): Adjust to pass vec
930         by reference.
931         (free_data_refs): Likewise.
932         * tree-data-ref.h (free_dependence_relations): Likewise.
933         (free_data_refs): Likewise.
934         * tree-predcom.c (struct chain): Use auto_vec instead of vec for
935         members.
936         (struct component): Likewise.
937         (pcom_worker::pcom_worker): Adjust for auto_vec and renaming changes.
938         (pcom_worker::~pcom_worker): Likewise.
939         (pcom_worker::release_chain): Adjust as auto_vec changes.
940         (pcom_worker::loop): Rename to ...
941         (pcom_worker::m_loop): ... this.
942         (pcom_worker::datarefs): Rename to ...
943         (pcom_worker::m_datarefs): ... this.  Use auto_vec instead of vec.
944         (pcom_worker::dependences): Rename to ...
945         (pcom_worker::m_dependences): ... this.  Use auto_vec instead of vec.
946         (pcom_worker::chains): Rename to ...
947         (pcom_worker::m_chains): ... this.  Use auto_vec instead of vec.
948         (pcom_worker::looparound_phis): Rename to ...
949         (pcom_worker::m_looparound_phis): ... this.  Use auto_vec instead of
950         vec.
951         (pcom_worker::cache): Rename to ...
952         (pcom_worker::m_cache): ... this.  Use auto_vec instead of vec.
953         (pcom_worker::release_chain): Adjust for auto_vec changes.
954         (pcom_worker::release_chains): Adjust for auto_vec and renaming
955         changes.
956         (release_component): Remove.
957         (release_components): Adjust for release_component removal.
958         (component_of): Adjust to use vec.
959         (merge_comps): Likewise.
960         (pcom_worker::aff_combination_dr_offset): Adjust for renaming changes.
961         (pcom_worker::determine_offset): Likewise.
962         (class comp_ptrs): Remove.
963         (pcom_worker::split_data_refs_to_components): Adjust for renaming
964         changes, for comp_ptrs removal with auto_vec.
965         (pcom_worker::suitable_component_p): Adjust for renaming changes.
966         (pcom_worker::filter_suitable_components): Adjust for release_component
967         removal.
968         (pcom_worker::valid_initializer_p): Adjust for renaming changes.
969         (pcom_worker::find_looparound_phi): Likewise.
970         (pcom_worker::add_looparound_copies): Likewise.
971         (pcom_worker::determine_roots_comp): Likewise.
972         (pcom_worker::single_nonlooparound_use): Likewise.
973         (pcom_worker::execute_pred_commoning_chain): Likewise.
974         (pcom_worker::execute_pred_commoning): Likewise.
975         (pcom_worker::try_combine_chains): Likewise.
976         (pcom_worker::prepare_initializers_chain): Likewise.
977         (pcom_worker::prepare_initializers): Likewise.
978         (pcom_worker::prepare_finalizers_chain): Likewise.
979         (pcom_worker::prepare_finalizers): Likewise.
980         (pcom_worker::tree_predictive_commoning_loop): Likewise.
981
982 2021-07-20  Martin Sebor  <msebor@redhat.com>
983
984         PR middle-end/101397
985         * builtins.c (gimple_call_return_array): Add argument.  Correct
986         offsets for memchr, mempcpy, stpcpy, and stpncpy.
987         (compute_objsize_r): Adjust offset computation for argument returning
988         built-ins.
989
990 2021-07-20  Martin Sebor  <msebor@redhat.com>
991
992         PR middle-end/101300
993         * tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins.
994
995 2021-07-20  Jeff Law  <jlaw@localhost.localdomain>
996
997         * function.c (assign_parm_setup_block): Use adjust_address instead
998         of change_address to preserve MEM_EXPR and friends.
999
1000 2021-07-20  Martin Sebor  <msebor@redhat.com>
1001
1002         * cfgloop.h (single_likely_exit): Adjust by-value argument to
1003         by-const-reference.
1004         * cfgloopanal.c (single_likely_exit): Same.
1005         * cgraph.h (struct cgraph_node): Same.
1006         * cgraphclones.c (cgraph_node::create_virtual_clone): Same.
1007         * genautomata.c (merge_states): Same.
1008         * genextract.c (VEC_char_to_string): Same.
1009         * genmatch.c (dt_node::gen_kids_1): Same.
1010         (walk_captures): Adjust by-value argument to by-reference.
1011         * gimple-ssa-store-merging.c (check_no_overlap): Adjust by-value argument
1012         to by-const-reference.
1013         * gimple.c (gimple_build_call_vec): Same.
1014         (gimple_build_call_internal_vec): Same.
1015         (gimple_build_switch): Same.
1016         (sort_case_labels): Same.
1017         (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
1018         by-reference.
1019         * gimple.h (gimple_build_call_vec): Adjust by-value argument to
1020         by-const-reference.
1021         (gimple_build_call_internal_vec): Same.
1022         (gimple_build_switch): Same.
1023         (sort_case_labels): Same.
1024         (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
1025         by-reference.
1026         * haifa-sched.c (calc_priorities): Adjust by-value argument to
1027         by-const-reference.
1028         (sched_init_luids): Same.
1029         (haifa_init_h_i_d): Same.
1030         * ipa-cp.c (ipa_get_indirect_edge_target_1): Same.
1031         (adjust_callers_for_value_intersection): Adjust by-value argument to
1032         by-reference.
1033         (find_more_scalar_values_for_callers_subset): Adjust by-value argument to
1034         by-const-reference.
1035         (find_more_contexts_for_caller_subset): Same.
1036         (find_aggregate_values_for_callers_subset): Same.
1037         (copy_useful_known_contexts): Same.
1038         * ipa-fnsummary.c (remap_edge_summaries): Same.
1039         (remap_freqcounting_predicate): Same.
1040         * ipa-inline.c (add_new_edges_to_heap): Adjust by-value argument to
1041         by-reference.
1042         * ipa-predicate.c (predicate::remap_after_inlining): Adjust by-value argument
1043         to by-const-reference.
1044         * ipa-predicate.h (predicate::remap_after_inlining): Same.
1045         * ipa-prop.c (ipa_find_agg_cst_for_param): Same.
1046         * ipa-prop.h (ipa_find_agg_cst_for_param): Same.
1047         * ira-build.c (ira_loop_tree_body_rev_postorder): Same.
1048         * read-rtl.c (add_overload_instance): Same.
1049         * rtl.h (native_decode_rtx): Same.
1050         (native_decode_vector_rtx): Same.
1051         * sched-int.h (sched_init_luids): Same.
1052         (haifa_init_h_i_d): Same.
1053         * simplify-rtx.c (native_decode_vector_rtx): Same.
1054         (native_decode_rtx): Same.
1055         * tree-call-cdce.c (gen_shrink_wrap_conditions): Same.
1056         (shrink_wrap_one_built_in_call_with_conds): Same.
1057         (shrink_wrap_conditional_dead_built_in_calls): Same.
1058         * tree-data-ref.c (create_runtime_alias_checks): Same.
1059         (compute_all_dependences): Same.
1060         * tree-data-ref.h (compute_all_dependences): Same.
1061         (create_runtime_alias_checks): Same.
1062         (index_in_loop_nest): Same.
1063         * tree-if-conv.c (mask_exists): Same.
1064         * tree-loop-distribution.c (class loop_distribution): Same.
1065         (loop_distribution::create_rdg_vertices): Same.
1066         (dump_rdg_partitions): Same.
1067         (debug_rdg_partitions): Same.
1068         (partition_contains_all_rw): Same.
1069         (loop_distribution::distribute_loop): Same.
1070         * tree-parloops.c (oacc_entry_exit_ok_1): Same.
1071         (oacc_entry_exit_single_gang): Same.
1072         * tree-ssa-loop-im.c (hoist_memory_references): Same.
1073         (loop_suitable_for_sm): Same.
1074         * tree-ssa-loop-niter.c (bound_index): Same.
1075         * tree-ssa-reassoc.c (update_ops): Same.
1076         (swap_ops_for_binary_stmt): Same.
1077         (rewrite_expr_tree): Same.
1078         (rewrite_expr_tree_parallel): Same.
1079         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Same.
1080         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Same.
1081         * tree-ssa-structalias.c (process_all_all_constraints): Same.
1082         (make_constraints_to): Same.
1083         (handle_lhs_call): Same.
1084         (find_func_aliases_for_builtin_call): Same.
1085         (sort_fieldstack): Same.
1086         (check_for_overlaps): Same.
1087         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Same.
1088         (vect_create_cond_for_unequal_addrs): Same.
1089         (vect_create_cond_for_lower_bounds): Same.
1090         (vect_create_cond_for_alias_checks): Same.
1091         * tree-vect-slp-patterns.c (vect_validate_multiplication): Same.
1092         * tree-vect-slp.c (vect_analyze_slp_instance): Same.
1093         (vect_make_slp_decision): Same.
1094         (vect_slp_bbs): Same.
1095         (duplicate_and_interleave): Same.
1096         (vect_transform_slp_perm_load): Same.
1097         (vect_schedule_slp): Same.
1098         * tree-vectorizer.h (vect_transform_slp_perm_load): Same.
1099         (vect_schedule_slp): Same.
1100         (duplicate_and_interleave): Same.
1101         * tree.c (build_vector_from_ctor): Same.
1102         (build_vector): Same.
1103         (check_vector_cst): Same.
1104         (check_vector_cst_duplicate): Same.
1105         (check_vector_cst_fill): Same.
1106         (check_vector_cst_stepped): Same.
1107         * tree.h (build_vector_from_ctor): Same.
1108
1109 2021-07-20  Jakub Jelinek  <jakub@redhat.com>
1110
1111         PR target/101384
1112         * config/rs6000/rs6000-protos.h (easy_altivec_constant): Change return
1113         type from bool to int.
1114         * config/rs6000/rs6000.c (vspltis_constant): Fix up handling the
1115         EASY_VECTOR_MSB case if either step or copies is not 1.
1116         (vspltis_shifted): Fix comment typo.
1117         (easy_altivec_constant): Change return type from bool to int, instead
1118         of returning true return byte size of the element mode that should be
1119         used to synthetize the constant.
1120         * config/rs6000/predicates.md (easy_vector_constant_msb): Require
1121         that vspltis_shifted is 0, handle the case where easy_altivec_constant
1122         assumes using different vector mode from CONST_VECTOR's mode.
1123         * config/rs6000/altivec.md (easy_vector_constant_msb splitter): Use
1124         easy_altivec_constant to determine mode in which -1 >> -1 should be
1125         performed, use rs6000_expand_vector_init instead of gen_vec_initv4sisi.
1126
1127 2021-07-20  Richard Biener  <rguenther@suse.de>
1128
1129         PR debug/101473
1130         * dwarf2out.h (dwarf_file_data): Add key member.
1131         * dwarf2out.c (dwarf_file_hasher::equal): Compare key.
1132         (dwarf_file_hasher::hash): Hash key.
1133         (lookup_filename): Remap the filename and store it in the
1134         filename member of dwarf_file_data when creating a new
1135         dwarf_file_data.
1136         (file_name_acquire): Do not remap the filename again.
1137         (maybe_emit_file): Likewise.
1138
1139 2021-07-20  Jonathan Wright  <jonathan.wright@arm.com>
1140
1141         * config/aarch64/aarch64-simd-builtins.def: Use two variant
1142         generators for all TBL/TBX intrinsics and rename to
1143         consistent forms: qtbl[1234] or qtbx[1234].
1144         * config/aarch64/aarch64-simd.md (aarch64_tbl1<mode>):
1145         Rename to...
1146         (aarch64_qtbl1<mode>): This.
1147         (aarch64_tbx1<mode>): Rename to...
1148         (aarch64_qtbx1<mode>): This.
1149         (aarch64_tbl2v16qi): Delete.
1150         (aarch64_tbl3<mode>): Rename to...
1151         (aarch64_qtbl2<mode>): This.
1152         (aarch64_tbx4<mode>): Rename to...
1153         (aarch64_qtbx2<mode>): This.
1154         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Use
1155         renamed qtbl1 and qtbl2 RTL patterns.
1156         * config/aarch64/arm_neon.h (vqtbl1_p8): Use renamed qtbl1
1157         RTL pattern.
1158         (vqtbl1_s8): Likewise.
1159         (vqtbl1_u8): Likewise.
1160         (vqtbl1q_p8): Likewise.
1161         (vqtbl1q_s8): Likewise.
1162         (vqtbl1q_u8): Likewise.
1163         (vqtbx1_s8): Use renamed qtbx1 RTL pattern.
1164         (vqtbx1_u8): Likewise.
1165         (vqtbx1_p8): Likewise.
1166         (vqtbx1q_s8): Likewise.
1167         (vqtbx1q_u8): Likewise.
1168         (vqtbx1q_p8): Likewise.
1169         (vtbl1_s8): Use renamed qtbl1 RTL pattern.
1170         (vtbl1_u8): Likewise.
1171         (vtbl1_p8): Likewise.
1172         (vtbl2_s8): Likewise
1173         (vtbl2_u8): Likewise.
1174         (vtbl2_p8): Likewise.
1175         (vtbl3_s8): Use renamed qtbl2 RTL pattern.
1176         (vtbl3_u8): Likewise.
1177         (vtbl3_p8): Likewise.
1178         (vtbl4_s8): Likewise.
1179         (vtbl4_u8): Likewise.
1180         (vtbl4_p8): Likewise.
1181         (vtbx2_s8): Use renamed qtbx2 RTL pattern.
1182         (vtbx2_u8): Likewise.
1183         (vtbx2_p8): Likewise.
1184         (vqtbl2_s8): Use renamed qtbl2 RTL pattern.
1185         (vqtbl2_u8): Likewise.
1186         (vqtbl2_p8): Likewise.
1187         (vqtbl2q_s8): Likewise.
1188         (vqtbl2q_u8): Likewise.
1189         (vqtbl2q_p8): Likewise.
1190         (vqtbx2_s8): Use renamed qtbx2 RTL pattern.
1191         (vqtbx2_u8): Likewise.
1192         (vqtbx2_p8): Likewise.
1193         (vqtbx2q_s8): Likewise.
1194         (vqtbx2q_u8): Likewise.
1195         (vqtbx2q_p8): Likewise.
1196         (vtbx4_s8): Likewise.
1197         (vtbx4_u8): Likewise.
1198         (vtbx4_p8): Likewise.
1199
1200 2021-07-20  Uroš Bizjak  <ubizjak@gmail.com>
1201
1202         PR target/100182
1203         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
1204         Remove.
1205         (define_peephole2 atomic_loaddi_fpu): Ditto.
1206
1207 2021-07-20  Kito Cheng  <kito.cheng@sifive.com>
1208
1209         * config.gcc (riscv*-*-*): Detect which python is available.
1210
1211 2021-07-20  Kewen Lin  <linkw@linux.ibm.com>
1212
1213         * config/rs6000/vsx.md (mulhs_<mode>): Rename to...
1214         (smul<mode>3_highpart): ... this.
1215         (mulhu_<mode>): Rename to...
1216         (umul<mode>3_highpart): ... this.
1217         * config/rs6000/rs6000-builtin.def (MULHS_V2DI, MULHS_V4SI,
1218         MULHU_V2DI, MULHU_V4SI): Adjust.
1219
1220 2021-07-20  Kewen Lin  <linkw@linux.ibm.com>
1221
1222         PR tree-optimization/100696
1223         * internal-fn.c (first_commutative_argument): Add info for IFN_MULH.
1224         * internal-fn.def (IFN_MULH): New internal function.
1225         * tree-vect-patterns.c (vect_recog_mulhs_pattern): Add support to
1226         recog normal multiply highpart as IFN_MULH.
1227         * config/i386/i386.c (ix86_add_stmt_cost): Adjust for combined
1228         function CFN_MULH.
1229
1230 2021-07-19  Indu Bhagat  <indu.bhagat@oracle.com>
1231
1232         * config/elfos.h (CTF_DEBUGGING_INFO): New definition.
1233         (BTF_DEBUGGING_INFO): Likewise.
1234         * doc/tm.texi.in: Document the new macros.
1235         * doc/tm.texi: Regenerated.
1236         * toplev.c: Guard initialization of debug hooks.
1237
1238 2021-07-19  Indu Bhagat  <indu.bhagat@oracle.com>
1239
1240         * flags.h (ctf_debuginfo_p): New function declaration.
1241         * opts.c (ctf_debuginfo_p): New function definition.
1242
1243 2021-07-19  Andrew Stubbs  <ams@codesourcery.com>
1244
1245         PR target/100208
1246         * config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New.
1247         (ASM_SPEC): Set -mattr for xnack and sram-ecc.
1248         * config/gcn/gcn-opts.h (enum sram_ecc_type): New.
1249         * config/gcn/gcn-valu.md: Add a warning comment.
1250         * config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack.
1251         (output_file_start): Add xnack and sram-ecc state to ".amdgcn_target".
1252         * config/gcn/gcn.md: Add a warning comment.
1253         * config/gcn/gcn.opt: Add -mxnack and -msram-ecc.
1254         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove
1255         SRAM-ECC flag.
1256         (EF_AMDGPU_XNACK): New.
1257         (EF_AMDGPU_SRAM_ECC): New.
1258         (elf_flags): New.
1259         (copy_early_debug_info): Use elf_flags.
1260         (main): Handle -mxnack and -msram-ecc options.
1261         * doc/invoke.texi: Document -mxnack and -msram-ecc.
1262
1263 2021-07-19  Andrew Pinski  <apinski@marvell.com>
1264
1265         PR target/101205
1266         * config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ...
1267         (*cs<neg_not_cs>3_uxtw_insn4): and extend to NEG_NOT.
1268
1269 2021-07-19  Richard Biener  <rguenther@suse.de>
1270
1271         PR tree-optimization/101505
1272         * tree-vect-patterns.c (vect_determine_precisions): Walk
1273         PHIs also for loop vectorization.
1274
1275 2021-07-19  Richard Biener  <rguenther@suse.de>
1276
1277         * gimple.h (gimple_expr_type): Remove.
1278         * doc/gimple.texi: Remove gimple_expr_type documentation.
1279
1280 2021-07-19  Richard Biener  <rguenther@suse.de>
1281
1282         * tree-ssa-sccvn.c (vn_reference_eq): Handle NULL vr->type.
1283         (ao_ref_init_from_vn_reference): Likewise.
1284         (fully_constant_reference): Likewise.
1285         (vn_reference_lookup_call): Do not set vr->type to random
1286         values.
1287         * tree-ssa-pre.c (compute_avail): Do not try to PRE calls
1288         without a value.
1289         * tree-vect-generic.c (expand_vector_piecewise): Pass in
1290         whether we expanded parallel.
1291         (expand_vector_parallel): Adjust.
1292         (expand_vector_addition): Likewise.
1293         (expand_vector_comparison): Likewise.
1294         (expand_vector_operation): Likewise.
1295         (expand_vector_scalar_condition): Likewise.
1296         (expand_vector_conversion): Likewise.
1297
1298 2021-07-19  Richard Biener  <rguenther@suse.de>
1299
1300         * tree-vrp.c (register_edge_assert_for_2): Use the
1301         type from the LHS.
1302         (vrp_folder::fold_predicate_in): Likewise.
1303         * vr-values.c (gimple_assign_nonzero_p): Likewise.
1304         (vr_values::extract_range_from_comparison): Likewise.
1305         (vr_values::extract_range_from_ubsan_builtin): Use the
1306         type of the first operand.
1307         (vr_values::extract_range_basic): Push down type
1308         computation, use the appropriate LHS.
1309         (vr_values::extract_range_from_assignment): Use the
1310         type of the LHS.
1311
1312 2021-07-18  H.J. Lu  <hjl.tools@gmail.com>
1313
1314         PR target/101492
1315         * common/config/i386/i386-common.c (ix86_handle_option): For
1316         -mgeneral-regs-only, enable the GPR only instructions which are
1317         enabled implicitly by SSE ISAs unless they have been disabled
1318         explicitly.
1319
1320 2021-07-18  H.J. Lu  <hjl.tools@gmail.com>
1321
1322         PR target/101495
1323         * config/i386/i386.c (ix86_check_avx_upper_stores): Moved before
1324         ix86_avx_u128_mode_needed.
1325         (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee
1326         returns AVX register.
1327
1328 2021-07-17  Jan Hubicka  <hubicka@ucw.cz>
1329
1330         * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED.
1331         (handle_const_call): Liekise
1332         (handle_pure_call): Liekise
1333
1334 2021-07-17  Andrew MacLeod  <amacleod@redhat.com>
1335
1336         PR tree-optimization/96542
1337         * range-op.cc (range_operator::wi_fold_in_parts): New.
1338         (range_operator::fold_range): Call wi_fold_in_parts.
1339         (operator_lshift::wi_fold): Fix broken lshift by [0,0].
1340         * range-op.h (wi_fold_in_parts): Add prototype.
1341
1342 2021-07-16  David Malcolm  <dmalcolm@redhat.com>
1343
1344         * doc/analyzer.texi: Add __analyzer_dump_state.
1345
1346 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1347
1348         * config/rs6000/rbtree.c: New file.
1349         * config/rs6000/rbtree.h: New file.
1350
1351 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1352
1353         * config/rs6000/rs6000-gen-builtins.c (restriction): New enum.
1354         (typeinfo): Add restr field.
1355         (match_bracketed_pair): New function.
1356         (match_const_restriction): Implement.
1357
1358 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1359
1360         * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement.
1361
1362 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1363
1364         * config/rs6000/rs6000-gen-builtins.c (void_status): New enum.
1365         (basetype): Likewise.
1366         (typeinfo): Likewise.
1367         (handle_pointer): New function.
1368         (match_basetype): New stub function.
1369         (match_const_restriction): Likewise.
1370         (match_type): New function.
1371
1372 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1373
1374         * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New
1375         function.
1376         (advance_line): Likewise.
1377         (safe_inc_pos): Likewise.
1378         (match_identifier): Likewise.
1379         (match_integer): Likewise.
1380         (match_to_right_bracket): Likewise.
1381
1382 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1383
1384         * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable.
1385         (ovld_file): Likewise.
1386         (header_file): Likewise.
1387         (init_file): Likewise.
1388         (defines_file): Likewise.
1389         (pgm_path): Likewise.
1390         (bif_path): Likewise.
1391         (ovld_path): Likewise.
1392         (header_path): Likewise.
1393         (init_path): Likewise.
1394         (defines_path): Likewise.
1395         (LINELEN): New macro.
1396         (linebuf): New variable.
1397         (line): Likewise.
1398         (pos): Likewise.
1399         (diag): Likewise.
1400         (bif_diag): New function.
1401         (ovld_diag): Likewise.
1402
1403 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1404
1405         * config/rs6000/rs6000-builtin-new.def: New.
1406         * config/rs6000/rs6000-overload.def: New.
1407
1408 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1409
1410         * config/rs6000/rs6000-gen-builtins.c: New.
1411
1412 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1413
1414         * Makefile.in (EXTRA_GTYPE_DEPS): New variable.
1415         (s-gtype): Depend on EXTRA_GTYPE_DEPS.
1416         * gengtype-state.c (state_writer::write_state_file_list): Add a
1417         parameter to the fileslist expression for the number of build
1418         headers to scan.
1419         (read_state_files_list): Detect build headers and strip the
1420         initial "./" or ".\" from their names.
1421         * gengtype.c (build_headers): New global variable.
1422         (num_build_headers): Likewise.
1423         (open_base_files): Emit #include for each build header.
1424         (main): Detect and count build headers.
1425         * gengtype.h (build_headers): New extern variable.
1426         (num_build_headers): Likewise.
1427
1428 2021-07-16  Richard Biener   <rguenther@suse.de>
1429
1430         * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use
1431         the type of the LHS.
1432         (find_bswap_or_nop_1): Likewise.
1433         (find_bswap_or_nop): Likewise.
1434         * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust
1435         prototype.
1436         * tree-vect-data-refs.c (vect_get_smallest_scalar_type):
1437         Remove unused parameters, pass in the scalar type.  Fix
1438         internal store function handling.
1439         * tree-vect-stmts.c (vect_analyze_stmt): Remove assert.
1440         (vect_get_vector_types_for_stmt): Move down check for
1441         existing vector stmt after we've determined a scalar type.
1442         Pass down the used scalar type to vect_get_smallest_scalar_type.
1443         * tree-vect-generic.c (expand_vector_condition): Use
1444         the type of the LHS.
1445         (expand_vector_scalar_condition): Likewise.
1446         (expand_vector_operations_1): Likewise.
1447         * tree-vect-patterns.c (vect_widened_op_tree): Likewise.
1448         (vect_recog_dot_prod_pattern): Likewise.
1449         (vect_recog_sad_pattern): Likewise.
1450         (vect_recog_widen_op_pattern): Likewise.
1451         (vect_recog_widen_sum_pattern): Likewise.
1452         (vect_recog_mixed_size_cond_pattern): Likewise.
1453
1454 2021-07-16  Jan Hubicka  <hubicka@ucw.cz>
1455
1456         * ipa-modref.c (struct escape_entry): Use eaf_fleags_t.
1457         (dump_eaf_flags): Dump EAF_NOT_RETURNED
1458         (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions
1459         and EAF_NOT_RETURNED.
1460         (modref_summary::useful_p): Likewise.
1461         (modref_summary_lto::useful_p): Likewise.
1462         (struct) modref_summary_lto: Use eaf_fleags_t.
1463         (deref_flags): Handle EAF_NOT_RETURNED.
1464         (struct escape_point): Use min_flags.
1465         (modref_lattice::init): Add EAF_NOT_RETURNED.
1466         (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions
1467         (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return;
1468         handle call flags.
1469         (analyze_parms): Also analyze const functions; update conition on
1470         flags usefulness.
1471         (modref_write): Update streaming.
1472         (read_section): Update streaming.
1473         (remap_arg_flags): Use eaf_flags_t.
1474         (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED.
1475         * ipa-modref.h: (eaf_flags_t): New typedef.
1476         (struct modref_summary): Use eaf_flags_t.
1477         * tree-core.h (EAF_NOT_RETURNED): New constant.
1478
1479 2021-07-16  Richard Biener  <rguenther@suse.de>
1480
1481         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use
1482         the type of the LHS.
1483         (gimple_assign_nonnegative_warnv_p): Likewise.
1484         (gimple_call_nonnegative_warnv_p): Likewise.  Return false
1485         if the call has no LHS.
1486         * gimple.c (gimple_could_trap_p_1): Use the type of the LHS.
1487         * tree-eh.c (stmt_could_throw_1_p): Likewise.
1488         * tree-inline.c (insert_init_stmt): Likewise.
1489         * tree-ssa-loop-niter.c (get_val_for): Likewise.
1490         * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of
1491         the def.
1492         * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a
1493         gassign *.  Use the type of the lhs.
1494         (vn_nary_op_lookup_stmt): Adjust.
1495         (vn_nary_op_insert_stmt): Likewise.
1496
1497 2021-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
1498
1499         * config/s390/predicates.md (bras_sym_operand): Accept all
1500         functions in 64-bit mode, use UNSPEC_PLT31.
1501         (larl_operand): Use UNSPEC_PLT31.
1502         * config/s390/s390.c (s390_loadrelative_operand_p): Likewise.
1503         (legitimize_pic_address): Likewise.
1504         (s390_emit_tls_call_insn): Mark __tls_get_offset as function,
1505         use UNSPEC_PLT31.
1506         (s390_delegitimize_address): Use UNSPEC_PLT31.
1507         (s390_output_addr_const_extra): Likewise.
1508         (print_operand): Add @PLT to TLS calls, handle %K.
1509         (s390_function_profiler): Mark __fentry__/_mcount as function,
1510         use %K, use UNSPEC_PLT31.
1511         (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K.
1512         (s390_emit_call): Use UNSPEC_PLT31.
1513         (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function.
1514         * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT.
1515         (*movdi_64): Use %K.
1516         (reload_base_64): Likewise.
1517         (*sibcall_brc): Likewise.
1518         (*sibcall_brcl): Likewise.
1519         (*sibcall_value_brc): Likewise.
1520         (*sibcall_value_brcl): Likewise.
1521         (*bras): Likewise.
1522         (*brasl): Likewise.
1523         (*bras_r): Likewise.
1524         (*brasl_r): Likewise.
1525         (*bras_tls): Likewise.
1526         (*brasl_tls): Likewise.
1527         (main_base_64): Likewise.
1528         (reload_base_64): Likewise.
1529         (@split_stack_call<mode>): Likewise.
1530
1531 2021-07-16  Richard Biener  <rguenther@suse.de>
1532
1533         PR tree-optimization/101467
1534         * tree-vect-stmts.c (vect_gen_while): Properly guard
1535         make_temp_ssa_name usage.
1536
1537 2021-07-16  Cooper Qu  <cooper.qu@linux.alibaba.com>
1538
1539         * config.gcc: Don't use forked print-sysroot-suffix.sh and
1540         t-sysroot-suffix for C-SKY.
1541         * config/csky/print-sysroot-suffix.sh: Delete.
1542         * config/csky/t-csky-linux: Delete.
1543         * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES
1544         instead of CSKY_MULTILIB_DIRNAMES.
1545
1546 2021-07-16  Richard Biener  <rguenther@suse.de>
1547
1548         * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign
1549         conversion issues with the partial reduction of the reused
1550         vector accumulator.
1551
1552 2021-07-16  Richard Biener  <rguenther@suse.de>
1553
1554         * config/i386/i386-options.c (ix86_option_override_internal): Set
1555         param_vect_partial_vector_usage to zero if not set.
1556
1557 2021-07-15  Uroš Bizjak  <ubizjak@gmail.com>
1558
1559         PR target/101346
1560         * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode.
1561         (VALID_INT_MODE_P): Add SDmode and DDmode.
1562         Add TDmode for TARGET_64BIT.
1563         (VALID_DFP_MODE_P): Remove.
1564         * config/i386/i386.c (ix86_hard_regno_mode_ok):
1565         Do not use VALID_DFP_MODE_P.
1566
1567 2021-07-15  Andrew MacLeod  <amacleod@redhat.com>
1568
1569         * gimple-range-fold.cc (adjust_pointer_diff_expr): Use
1570         gimple_range_type.
1571         (fold_using_range::fold_stmt): Ditto.
1572         (fold_using_range::range_of_range_op): Ditto.
1573         (fold_using_range::range_of_phi): Ditto.
1574         (fold_using_range::range_of_call): Ditto.
1575         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
1576         (fold_using_range::range_of_builtin_call): Ditto.
1577         (fold_using_range::range_of_cond_expr): Ditto.
1578         * gimple-range-fold.h (gimple_range_type): New.
1579
1580 2021-07-15  Martin Sebor  <msebor@redhat.com>
1581
1582         PR middle-end/97027
1583         * tree-ssa-strlen.c (handle_assign): New function.
1584         (maybe_warn_overflow): Add argument.
1585         (nonzero_bytes_for_type): New function.
1586         (count_nonzero_bytes): Handle more tree types.  Call
1587         nonzero_bytes_for_tye.
1588         (count_nonzero_bytes): Handle types.
1589         (handle_store): Handle stores from function calls.
1590         (strlen_check_and_optimize_call): Move code to handle_assign.  Call
1591         it for assignments from function calls.
1592
1593 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
1594
1595         PR analyzer/95006
1596         PR analyzer/94713
1597         PR analyzer/94714
1598         * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value.
1599
1600 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
1601
1602         * doc/invoke.texi (-fdump-analyzer-exploded-paths): New.
1603
1604 2021-07-15  Martin Sebor  <msebor@redhat.com>
1605
1606         PR c/101289
1607         PR c/97548
1608         * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME.
1609         (operand_compare::verify_hash_value): Same.
1610         * tree-core.h (OEP_DECL_NAME): New.
1611
1612 2021-07-15  Martin Jambor  <mjambor@suse.cz>
1613
1614         * profile-count.h (profile_count::value): Change the return type to
1615         uint64_t.
1616         * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print
1617         statement.
1618         * tree-cfg.c (dump_function_to_file): Likewise.
1619
1620 2021-07-15  Bill Schmidt  <wschmidt@linux.ibm.com>
1621
1622         PR target/101129
1623         * config/rs6000/rs6000-p8swap.c (has_part_mult): New.
1624         (rs6000_analyze_swaps): Insns containing a subreg of a mult are
1625         not swappable.
1626
1627 2021-07-15  Richard Biener  <rguenther@suse.de>
1628
1629         * tree-vectorizer.h (vect_gen_while): Match up with
1630         vect_gen_while_not.
1631         * tree-vect-stmts.c (vect_gen_while): Adjust API to that
1632         of vect_gen_while_not.
1633         (vect_gen_while_not): Adjust.
1634         * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise.
1635
1636 2021-07-15  Aldy Hernandez  <aldyh@redhat.com>
1637
1638         * gimple-range-cache.cc (non_null_ref::adjust_range): New.
1639         (ranger_cache::range_of_def): Call adjust_range.
1640         (ranger_cache::entry_range): Same.
1641         * gimple-range-cache.h (non_null_ref::adjust_range): New.
1642         * gimple-range.cc (gimple_ranger::range_of_expr): Call
1643         adjust_range.
1644         (gimple_ranger::range_on_entry): Same.
1645
1646 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
1647
1648         Revert:
1649         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1650
1651         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
1652
1653 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
1654
1655         Revert:
1656         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1657
1658         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
1659         (sdot_prod, udot_prod): ...These.
1660         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
1661         (aarch64_<sur>dot<vsi2qi>): Rename to...
1662         (<sur>dot_prod<vsi2qi>): ...This.
1663         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
1664         Update builtins.
1665
1666 2021-07-15  Jakub Jelinek  <jakub@redhat.com>
1667
1668         PR middle-end/101437
1669         * gimplify.c (gimplify_expr): Throw away volatile reads from empty
1670         types even if they have non-BLKmode TYPE_MODE.
1671
1672 2021-07-15  Richard Biener  <rguenther@suse.de>
1673
1674         PR driver/101383
1675         * gcc.c (process_command): Process -gtoggle like process_options
1676         would after parsing options.
1677
1678 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
1679
1680         * cfgexpand.c (expand_asm_loc): Adjust.
1681         (expand_asm_stmt): Likewise.
1682         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise.
1683         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
1684         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
1685         * config/avr/avr.c (avr_md_asm_adjust): Likewise.
1686         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
1687         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
1688         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
1689         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
1690         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
1691         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
1692         * config/s390/s390.c (s390_md_asm_adjust): Likewise.
1693         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
1694         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
1695         * doc/tm.texi: Regenerate.
1696         * target.def: Add location argument to md_asm_adjust.
1697
1698 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
1699
1700         * tree-diagnostic.c (diagnostic_report_current_function): Use the
1701         diagnostic's location, not input_location.
1702
1703 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
1704
1705         * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to
1706         diagnostics.
1707         (expand_asm_stmt): Likewise.
1708
1709 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
1710
1711         * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower
1712         addressed memory rtx, if any.
1713         (rs6000_split_multireg_move): Fix code formatting.
1714         Handle MMA build built-ins with operands in adjacent memory locations.
1715
1716 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
1717
1718         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later
1719         in the file.
1720
1721 2021-07-14  Jason Merrill  <jason@redhat.com>
1722
1723         * sel-sched-ir.h (get_all_loop_exits): Use auto_vec.
1724
1725 2021-07-14  Jason Merrill  <jason@redhat.com>
1726
1727         * doc/invoke.texi: -fdelete-dead-exceptions is on by default for
1728         C++.
1729
1730 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1731
1732         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
1733         Remove erroneous line.
1734
1735 2021-07-14  Andrew MacLeod  <amacleod@redhat.com>
1736
1737         * params.opt (param_evrp_mode): Change default.
1738
1739 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1740
1741         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
1742         (sdot_prod, udot_prod): ...These.
1743         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
1744         (aarch64_<sur>dot<vsi2qi>): Rename to...
1745         (<sur>dot_prod<vsi2qi>): ...This.
1746         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
1747         Update builtins.
1748
1749 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1750
1751         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
1752
1753 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1754
1755         * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document.
1756
1757 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1758
1759         * config/arm/neon.md (usdot_prod<vsi2qi>): New.
1760
1761 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1762
1763         * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to...
1764         (usdot_prod<vsi2qi>): ... This.
1765         * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to...
1766         (usdot_prod): ...This.
1767         * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise.
1768         * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>):
1769         Rename to...
1770         (@<sur>dot_prod<vsi2qi>): ...This.
1771         * config/aarch64/aarch64-sve-builtins-base.cc
1772         (svusdot_impl::expand): Use it.
1773
1774 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1775
1776         * optabs.def (usdot_prod_optab): New.
1777         * doc/md.texi: Document it and clarify other dot prod optabs.
1778         * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign.
1779         * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab.
1780         * optabs.c (expand_widen_pattern_expr): Likewise.
1781         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
1782         * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind.
1783         * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional
1784         optab subtype.
1785         (vect_widened_op_tree): Optionally ignore
1786         mismatch types.
1787         (vect_recog_dot_prod_pattern): Support usdot_prod_optab.
1788
1789 2021-07-14  H.J. Lu  <hjl.tools@gmail.com>
1790
1791         PR target/101395
1792         * config/i386/driver-i386.c (host_detect_local_cpu): Check
1793         "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen.
1794         Enable UINTR only for 64-bit codegen.
1795         * config/i386/i386-options.c
1796         (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not
1797         in 64-bit mode.
1798         * config/i386/i386.h (ARCH_ARG): New.
1799         (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and
1800         "[arch|tune] 64" for 64-bit codegen.
1801
1802 2021-07-14  Richard Biener  <rguenther@suse.de>
1803
1804         PR tree-optimization/101445
1805         * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment
1806         of the IV in the correct direction for negative stride
1807         accesses.
1808
1809 2021-07-14  Jakub Jelinek  <jakub@redhat.com>
1810
1811         PR go/101407
1812         * godump.c (godump_str_hash): New type.
1813         (godump_container::pot_dummy_types): Use string_hash instead of
1814         ptr_hash in the hash_set.
1815
1816 2021-07-14  Richard Biener  <rguenther@suse.de>
1817
1818         * tree-vect-loop.c (vect_find_reusable_accumulator): Handle
1819         vector types where the old vector type has a multiple of
1820         the new vector type elements.
1821         (vect_create_partial_epilog): New function, split out from...
1822         (vect_create_epilog_for_reduction): ... here.
1823         (vect_transform_cycle_phi): Reduce the re-used accumulator
1824         to the new vector type.
1825
1826 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
1827
1828         * tree-ssa-alias.c (attr_fnspec::verify): Fix index in
1829         non-'t'-sized arg check.
1830
1831 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
1832
1833         * tree-cfg.c (cleanup_dead_labels_eh): Update
1834         post_landing_pad label upon change of landing pad block's
1835         primary label.
1836         (cleanup_dead_labels): Check that a removed label is not that
1837         of a landing pad.
1838
1839 2021-07-13  Jonathan Wright  <jonathan.wright@arm.com>
1840
1841         * combine.c (combine_simplify_rtx): Add vec_select -> subreg
1842         simplification.
1843         * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64):
1844         Add Neon to general purpose register case for zero-extend
1845         pattern.
1846         * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r
1847         case to prevent some cases opting to go through memory.
1848         * cse.c (fold_rtx): Add vec_select -> subreg simplification.
1849         * rtl.c (rtvec_series_p): Define predicate to determine
1850         whether a vector contains a linear series of integers.
1851         * rtl.h (rtvec_series_p): Define.
1852         * rtlanal.c (vec_series_lowpart_p): Define predicate to
1853         determine if a vector selection is equivalent to the low part
1854         of the vector.
1855         * rtlanal.h (vec_series_lowpart_p): Define.
1856         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
1857         Add vec_select -> subreg simplification.
1858
1859 2021-07-13  Paul A. Clarke  <pc@us.ibm.com>
1860
1861         * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128,
1862         _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
1863         _mm_test_mix_ones_zeros): New.
1864
1865 2021-07-13  Roger Sayle  <roger@nextmovesoftware.com>
1866             Richard Biener  <rguenther@suse.de>
1867
1868         * gimple.c (gimple_could_trap_p_1):  Make S argument a
1869         "const gimple*".  Preserve constness in call to
1870         gimple_asm_volatile_p.
1871         (gimple_could_trap_p): Make S argument a "const gimple*".
1872         * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p):
1873         Update function prototypes.
1874
1875 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1876
1877         * tree-vectorizer.h (vect_reusable_accumulator): New structure.
1878         (_loop_vec_info::main_loop_edge): New field.
1879         (_loop_vec_info::skip_main_loop_edge): Likewise.
1880         (_loop_vec_info::skip_this_loop_edge): Likewise.
1881         (_loop_vec_info::reusable_accumulators): Likewise.
1882         (_stmt_vec_info::reduc_scalar_results): Likewise.
1883         (_stmt_vec_info::reused_accumulator): Likewise.
1884         (vect_get_main_loop_result): Declare.
1885         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
1886         reduc_scalar_inputs.
1887         (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs.
1888         * tree-vect-loop-manip.c (vect_get_main_loop_result): New function.
1889         (vect_do_peeling): Fill an epilogue loop's main_loop_edge,
1890         skip_main_loop_edge and skip_this_loop_edge fields.
1891         * tree-vect-loop.c (INCLUDE_ALGORITHM): Define.
1892         (vect_emit_reduction_init_stmts): New function.
1893         (get_initial_def_for_reduction): Use it.
1894         (get_initial_defs_for_reduction): Likewise.  Change the vinfo
1895         parameter to a loop_vec_info.
1896         (vect_create_epilog_for_reduction): Store the scalar results
1897         in the reduc_info.  If an epilogue loop is reusing an accumulator
1898         from the main loop, and if the epilogue loop can also be skipped,
1899         try to place the reduction code in the join block.  Record
1900         accumulators that could potentially be reused by epilogue loops.
1901         (vect_transform_cycle_phi): When vectorizing epilogue loops,
1902         try to reuse accumulators from the main loop.  Record the initial
1903         value in reduc_info for non-SLP reductions too.
1904
1905 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1906
1907         * tree-vect-loop.c (get_initial_def_for_reduction): Remove
1908         adjustment handling.  Take the neutral value as an argument,
1909         in place of the code argument.
1910         (vect_transform_cycle_phi): Update accordingly.  Handle the
1911         initial values of cond reductions separately from code reductions.
1912         Choose the adjustment here rather than in
1913         get_initial_def_for_reduction.  Sink the splat of vec_initial_def.
1914
1915 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1916
1917         * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with...
1918         (neutral_op_for_reduction): ...this, providing a more general
1919         interface.
1920         (vect_create_epilog_for_reduction): Update accordingly.
1921         (vectorizable_reduction): Likewise.
1922         (vect_transform_cycle_phi): Likewise.
1923
1924 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1925
1926         * tree-vect-loop.c (get_initial_def_for_reduction): Take the
1927         reduc_info instead of the original stmt_vec_info.
1928         (vect_transform_cycle_phi): Update accordingly.
1929
1930 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1931
1932         * tree-vect-loop.c (get_initial_defs_for_reduction): Take the
1933         reduc_info as an additional parameter.
1934         (vect_transform_cycle_phi): Update accordingly.
1935
1936 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1937
1938         * tree-vectorizer.h: Include tree-ssa-operands.h.
1939         (vect_phi_initial_value): New function.
1940         * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it.
1941         (get_initial_defs_for_reduction, info_for_reduction): Likewise.
1942         (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
1943         (vect_transform_cycle_phi, vectorizable_induction): Likewise.
1944
1945 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1946
1947         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
1948         the phi results to vectype after creating them.  Remove later
1949         conversion code that thus becomes redundant.
1950
1951 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1952
1953         * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace
1954         the new_phis vector with a reduc_inputs vector.  Combine handling
1955         of reduction chains and ncopies > 1.
1956
1957 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1958
1959         * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate
1960         scalar_results to group_size elements after reducing down from
1961         N*group_size elements.  Construct an array_slice of the live-out
1962         stmts and assert that there is one stmt per scalar result.
1963
1964 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1965
1966         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
1967         nested_in_vect_loop and use double_reduc everywhere.  Remove dead
1968         assignment to "loop".
1969
1970 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1971
1972         * internal-fn.c (vectorized_internal_fn_supported_p): Handle
1973         vector types first.  For scalar types, consider both the preferred
1974         vector mode and the alternative vector modes.
1975         * optabs-query.c (can_vec_mask_load_store_p): Use the same
1976         structure as above, in particular using related_vector_mode
1977         for modes provided by autovectorize_vector_modes.
1978
1979 2021-07-13  Jakub Jelinek  <jakub@redhat.com>
1980             Richard Biener  <rguenther@suse.de>
1981
1982         PR tree-optimization/101419
1983         * tree-pass.h (PROP_objsz): Define.
1984         (make_pass_early_object_sizes): Declare.
1985         * passes.def (pass_all_early_optimizations): Rename pass_object_sizes
1986         there to pass_early_object_sizes, drop parameter.
1987         (pass_all_optimizations): Move pass_object_sizes right after pass_ccp,
1988         drop parameter, move pass_post_ipa_warn right after that.
1989         * tree-object-size.c (pass_object_sizes::execute): Rename to...
1990         (object_sizes_execute): ... this.  Add insert_min_max_p argument.
1991         (pass_data_object_sizes): Move after object_sizes_execute.
1992         (pass_object_sizes): Likewise.  In execute method call
1993         object_sizes_execute, drop set_pass_param method and insert_min_max_p
1994         non-static data member and its initializer in the ctor.
1995         (pass_data_early_object_sizes, pass_early_object_sizes,
1996         make_pass_early_object_sizes): New.
1997         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use
1998         (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining.
1999
2000 2021-07-13  Kito Cheng  <kito.cheng@sifive.com>
2001
2002         PR target/101275
2003         * config/riscv/constraints.md ("S"): Update description and remove
2004         @internal.
2005         * doc/md.texi (Machine Constraints): Document the 'S' constraints
2006         for RISC-V.
2007
2008 2021-07-13  Richard Biener  <rguenther@suse.de>
2009
2010         Revert:
2011         2021-07-12  Richard Biener  <rguenther@suse.de>
2012
2013         * tree-vect-slp.c (vect_slp_region): Show the number of
2014         SLP graph entries in the optimization message.
2015
2016 2021-07-13  Michael Meissner  <meissner@linux.ibm.com>
2017
2018         * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable
2019         value to to long.
2020         * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change
2021         return type to long.
2022         * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return
2023         type to long.
2024
2025 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
2026
2027         * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call):
2028         Query relation between the 2 operands and use it.
2029
2030 2021-07-12  Sergei Trofimovich  <siarheit@google.com>
2031
2032         * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo.
2033
2034 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
2035
2036         PR target/101424
2037         * config/i386/predicates.md (vec_setm_sse41_operand):
2038         Rename from vec_setm_operand.
2039         (vec_setm_avx2_operand): New predicate.
2040         * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator.
2041         Use vec_setm_sse41_operand as operand 2 predicate.
2042         (vec_set<V_256_512:mode): New expander.
2043         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand
2044         as operand 2 predicate.
2045
2046 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
2047
2048         PR tree-optimization/101335
2049         * range-op.cc (operator_cast::lhs_op1_relation): Delete.
2050
2051 2021-07-12  Andrew Pinski  <apinski@marvell.com>
2052
2053         * tree-ssa-phiopt.c (match_simplify_replacement): Move
2054         insert of the sequence before the movement of the
2055         statement. Check if to see if the statement is used
2056         outside of the original phi to see if we should move it.
2057
2058 2021-07-12  Richard Biener  <rguenther@suse.de>
2059
2060         * dump-context.h (debug_dump_context::debug_dump_context):
2061         Add FILE * parameter defaulted to stderr.
2062         * dumpfile.c (debug_dump_context::debug_dump_context): Adjust.
2063         * tree-vect-slp.c (dot_slp_tree): New functions.
2064
2065 2021-07-12  Richard Biener  <rguenther@suse.de>
2066
2067         PR tree-optimization/101373
2068         * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping
2069         references when the BB may not return.
2070         (compute_avail): Pass in the function we're working on and
2071         replace cfun references with it.  Externally throwing
2072         const calls also possibly terminate the function.
2073         (pass_pre::execute): Pass down the function we're working on.
2074         * gcse.c (compute_hash_table_work): Externally throwing
2075         const/pure calls also need record_last_mem_set_info.
2076         * postreload-gcse.c (record_opr_changes): Looping or externally
2077         throwing const/pure calls also need record_last_mem_set_info.
2078
2079 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
2080
2081         * recog.c (memory_address_addr_space_p): Change the type to bool.
2082         Return true/false instead of 1/0.
2083         (offsettable_memref_p): Ditto.
2084         (offsettable_nonstrict_memref_p): Ditto.
2085         (offsettable_address_addr_space_p): Ditto.
2086         Change the type of addressp indirect function to bool.
2087         * recog.h (memory_address_addr_space_p): Change the type to bool.
2088         (strict_memory_address_addr_space_p): Ditto.
2089         (offsettable_memref_p): Ditto.
2090         (offsettable_nonstrict_memref_p): Ditto.
2091         (offsettable_address_addr_space_p): Ditto.
2092         * reload.c (maybe_memory_address_addr_space_p): Ditto.
2093         (strict_memory_address_addr_space_p): Change the type to bool.
2094         Return true/false instead of 1/0.
2095         (maybe_memory_address_addr_space_p): Change the type to bool.
2096
2097 2021-07-12  Richard Biener  <rguenther@suse.de>
2098
2099         * tree-vect-slp.c (vect_slp_region): Show the number of
2100         SLP graph entries in the optimization message.
2101
2102 2021-07-12  Richard Biener  <rguenther@suse.de>
2103
2104         PR tree-optimization/101394
2105         * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
2106         copies from abnormals for a full redundancy.
2107
2108 2021-07-12  Richard Biener  <rguenther@suse.de>
2109
2110         PR middle-end/101423
2111         * gimple.c (gimple_could_trap_p_1): Internal function calls
2112         do not trap.
2113         * tree-eh.c (tree_could_trap_p): Likewise.
2114
2115 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
2116
2117         PR target/66791
2118         * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with
2119         __a * __b.
2120         (vmulq_n_u32): Likewise.
2121         (vmul_n_f32): Gate __a * __b on __FAST_MATH__.
2122         (vmulq_n_f32): Likewise.
2123         (vmul_n_f16): Likewise.
2124         (vmulq_n_f16): Likewise.
2125
2126 2021-07-12  Martin Liska  <mliska@suse.cz>
2127
2128         PR sanitizer/101425
2129         * gcc.c (check_offload_target_name): Call
2130           candidates_list_and_hint only if we have a candidate.
2131
2132 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
2133
2134         PR target/98435
2135         * config/arm/neon.md (vec_init): Move to ...
2136         * config/arm/vec-common.md (vec_init): ... here.
2137         Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE.
2138
2139 2021-07-12  Roger Sayle  <roger@nextmovesoftware.com>
2140
2141         PR tree-optimization/101403
2142         * match.pd ((T)bswap(X)>>C): Correctly handle cases where
2143         signedness of the shift is not the same as the signedness of
2144         the type extension.
2145
2146 2021-07-09  Roger Sayle  <roger@nextmovesoftware.com>
2147             Uroš Bizjak  <ubizjak@gmail.com>
2148
2149         * config/i386/i386.md (*divmodsi4_const): Optimize SImode
2150         divmod of a constant numerator with new define_insn_and_split.
2151
2152 2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>
2153
2154         PR target/100152
2155         * config/i386/i386-expand.c (ix86_expand_call): If a call is
2156         to a non-local-binding, or local but to a public symbol, then
2157         assume that it might be indirected via the lazy symbol binder.
2158         Mark R10 and R10 as clobbered in that case.
2159
2160 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
2161
2162         PR target/101377
2163         * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in
2164         the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined
2165         and HAVE_LD_BROKEN_PE_DWARF5 is defined.
2166
2167 2021-07-09  Uroš Bizjak  <ubizjak@gmail.com>
2168
2169         * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the
2170         log2 range of operands[3] to [1,31].
2171         (*udivmodsi4_pow2_zext_2): Ditto.  Correct insn RTX pattern.
2172
2173 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
2174
2175         * doc/md.texi: Don't split @smallexample in multiple @groups.
2176
2177 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
2178
2179         * doc/md.texi: Add missing 'see' word.
2180
2181 2021-07-09  Andrew Pinski  <apinski@marvell.com>
2182
2183         * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments
2184         to take sequence and gimple_match_op.  Accept the case where
2185         op is a SSA_NAME and one statement in the sequence.
2186         Also allow constants.
2187         (gimple_simplify_phiopt): Always pass a sequence to resimplify.
2188         Update call to phiopt_early_allow.  Discard the sequence if not
2189         used.
2190
2191 2021-07-09  Xi Ruoyao  <xry111@mengyan1223.wang>
2192
2193         PR target/100760
2194         PR target/100761
2195         PR target/100762
2196         * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P
2197         instead of ISA_HAS_MSA.
2198         (mips_expand_vec_unpack): Likewise.
2199         (mips_expand_vector_init): Likewise.
2200
2201 2021-07-09  Kewen Lin  <linkw@linux.ibm.com>
2202
2203         * config/rs6000/vsx.md (mods_<mode>): Rename to...
2204         (mod<mode>3): ... this.
2205         (modu_<mode>): Rename to...
2206         (umod<mode>3): ... this.
2207         * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI,
2208         MODU_V4SI): Adjust.
2209
2210 2021-07-08  Jeff Law  <jeffreyalaw@gmail.com>
2211
2212         * config/h8300/shiftrotate.md (variable shifts): Expose condition
2213         code handling for the test before the loop.
2214
2215 2021-07-08  Martin Jambor  <mjambor@suse.cz>
2216
2217         PR ipa/101066
2218         * ipa-sra.c (class isra_call_summary): New member
2219         m_before_any_store, initialize it in the constructor.
2220         (isra_call_summary::dump): Dump the new field.
2221         (ipa_sra_call_summaries::duplicate): Copy it.
2222         (process_scan_results): Set it.
2223         (isra_write_edge_summary): Stream it.
2224         (isra_read_edge_summary): Likewise.
2225         (param_splitting_across_edge): Only override
2226         safe_to_import_accesses if m_before_any_store is set.
2227
2228 2021-07-08  Martin Sebor  <msebor@redhat.com>
2229
2230         PR bootstrap/101374
2231         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
2232         Use Object Size Type 0 instead of 1.
2233
2234 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
2235
2236         * tree-vect-loop.c (vectorizable_reduction): Remove always-true
2237         if condition.
2238
2239 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
2240
2241         * match.pd: Simplify an extend-operate-truncate sequence involving
2242         a POLY_INT_CST.
2243
2244 2021-07-08  Roger Sayle  <roger@nextmovesoftware.com>
2245             Richard Biener  <rguenther@suse.de>
2246
2247         PR tree-optimization/40210
2248         * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as
2249         (x>>C3)&C2 when possible.  Simplify bswap(x)>>C1 as ((T)x)>>C2
2250         when possible.  Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255.
2251
2252 2021-07-08  Uroš Bizjak  <ubizjak@gmail.com>
2253
2254         PR target/100637
2255         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
2256         Handle V4QI mode.
2257         * config/i386/mmx.md (V_32): New mode iterator.
2258         (mov<V_32:mode>): Use V_32 mode iterator.
2259         (*mov<V_32:mode>_internal): Ditto.
2260         (*push<V_32:mode>2_rex64): Ditto.
2261         (*push<V_32:mode>2): Ditto.
2262         (movmisalign<V_32:mode>): Ditto.
2263         (mmx_<any_shiftrt:insn>v1si3): New insn pattern.
2264         (sse4_1_<any_extend:code>v2qiv2hi2): Ditto.
2265         (vec_unpacks_lo_v4qi): New expander.
2266         (vec_unpacks_hi_v4qi): Ditto.
2267         (vec_unpacku_lo_v4qi): Ditto.
2268         (vec_unpacku_hi_v4qi): Ditto.
2269         * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode.
2270         (VALID_INT_MODE_P): Ditto.
2271
2272 2021-07-08  Michael Meissner  <meissner@linux.ibm.com>
2273
2274         PR target/100809
2275         * config/rs6000/rs6000.md (udivti3): New insn.
2276         (divti3): New insn.
2277         (umodti3): New insn.
2278         (modti3): New insn.
2279
2280 2021-07-07  Martin Sebor  <msebor@redhat.com>
2281
2282         PR tree-optimization/100137
2283         PR tree-optimization/99121
2284         PR tree-optimization/97027
2285         * builtins.c (access_ref::access_ref): Also set offmax.
2286         (access_ref::offset_in_range): Define new function.
2287         (access_ref::add_offset): Set offmax.
2288         (access_ref::inform_access): Handle access_none.
2289         (handle_mem_ref): Clear ostype.
2290         (compute_objsize_r): Handle ASSERT_EXPR.
2291         * builtins.h (struct access_ref): Add offmax member.
2292         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use
2293         compute_objsize() and simplify.
2294
2295 2021-07-07  Peter Bergner  <bergner@linux.ibm.com>
2296
2297         * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
2298         and VSX_BUILTIN_STXVP.
2299
2300 2021-07-07  Martin Sebor  <msebor@redhat.com>
2301
2302         PR target/101363
2303         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove
2304         a stray %K from error_at() missed in r12-2088.
2305
2306 2021-07-07  Richard Biener  <rguenther@suse.de>
2307
2308         PR tree-optimization/99728
2309         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record
2310         aggregate copies.
2311         (mem_refs_may_alias_p): Add assert we handled aggregate
2312         copies elsewhere.
2313         (sm_seq_valid_bb): Give up when running into aggregate copies.
2314         (ref_indep_loop_p): Handle aggregate copies as never
2315         being invariant themselves but allow other refs to be
2316         disambiguated against them.
2317         (can_sm_ref_p): Do not try to apply store-motion to aggregate
2318         copies.
2319
2320 2021-07-06  Indu Bhagat  <indu.bhagat@oracle.com>
2321
2322         PR debug/101283
2323         * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get
2324         number of bits.
2325
2326 2021-07-06  Martin Sebor  <msebor@redhat.com>
2327
2328         * gimple-pretty-print.c (percent_G_format): Remove.
2329         * tree-diagnostic.c (default_tree_printer): Remove calls.
2330         * tree-pretty-print.c (percent_K_format): Remove.
2331         * tree-pretty-print.h (percent_K_format): Remove.
2332
2333 2021-07-06  Martin Sebor  <msebor@redhat.com>
2334
2335         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
2336         Remove %K and use error_at.
2337         (aarch64_expand_fcmla_builtin): Same.
2338         (aarch64_expand_builtin_tme): Same.
2339         (aarch64_expand_builtin_memtag): Same.
2340         * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same.
2341         (arm_expand_builtin): Same.
2342         * config/arm/arm.c (bounds_check): Same.
2343
2344 2021-07-06  Martin Sebor  <msebor@redhat.com>
2345
2346         * builtins.c (warn_string_no_nul): Remove %G.
2347         (maybe_warn_for_bound): Same.
2348         (warn_for_access): Same.
2349         (check_access): Same.
2350         (check_strncat_sizes): Same.
2351         (expand_builtin_strncat): Same.
2352         (expand_builtin_strncmp): Same.
2353         (expand_builtin): Same.
2354         (expand_builtin_object_size): Same.
2355         (warn_dealloc_offset): Same.
2356         (maybe_emit_free_warning): Same.
2357         * calls.c (maybe_warn_alloc_args_overflow): Same.
2358         (maybe_warn_nonstring_arg): Same.
2359         (maybe_warn_rdwr_sizes): Same.
2360         * expr.c (expand_expr_real_1): Remove %K.
2361         * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G.
2362         (gimple_fold_builtin_strncat): Same.
2363         * gimple-ssa-sprintf.c (format_directive): Same.
2364         (handle_printf_call): Same.
2365         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same.
2366         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
2367         (maybe_diag_access_bounds): Same.  Call gimple_location.
2368         (check_bounds_or_overlap): Same.
2369         * trans-mem.c (ipa_tm_scan_irr_block): Remove %K.  Simplify.
2370         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G.
2371         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
2372         (maybe_diag_stxncpy_trunc): Same.
2373         (handle_builtin_stxncpy_strncat): Same.
2374         (maybe_warn_pointless_strcmp): Same.
2375         * tree-ssa-uninit.c (maybe_warn_operand): Same.
2376
2377 2021-07-06  Uroš Bizjak  <ubizjak@gmail.com>
2378
2379         PR target/97194
2380         * config/i386/predicates.md (vec_setm_operand): Enable
2381         register_operand for TARGET_SSE4_1.
2382         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand
2383         as operand 2 predicate.  Call ix86_expand_vector_set_var
2384         for non-constant index operand.
2385         (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate.
2386         Call ix86_expand_vector_set_var for non-constant index operand.
2387
2388 2021-07-06  Jeff Law  <jeffreyalaw@gmail.com>
2389
2390         * config/h8300/jumpcall.md (*branch): When possible, generate
2391         the comparison in CCZN mode.
2392         * config/h8300/predicates.md (simple_memory_operand): Reject all
2393         auto-increment addressing modes.
2394
2395 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
2396
2397         PR bootstrap/100246
2398         * config/i386/i386.h (struct stringop_algs): Define a CTOR for
2399         this type.
2400
2401 2021-07-06  Richard Biener  <rguenther@suse.de>
2402
2403         * doc/md.texi (vec_fmaddsub<mode>4): Document.
2404         (vec_fmsubadd<mode>4): Likewise.
2405         * optabs.def (vec_fmaddsub$a4): Add.
2406         (vec_fmsubadd$a4): Likewise.
2407         * internal-fn.def (IFN_VEC_FMADDSUB): Add.
2408         (IFN_VEC_FMSUBADD): Likewise.
2409         * tree-vect-slp-patterns.c (addsub_pattern::recognize):
2410         Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD.
2411         (addsub_pattern::build): Likewise.
2412         * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB
2413         and CFN_VEC_FMSUBADD are not transparent for permutes.
2414         * config/i386/sse.md (vec_fmaddsub<mode>4): New expander.
2415         (vec_fmsubadd<mode>4): Likewise.
2416
2417 2021-07-06  Richard Biener  <rguenther@suse.de>
2418
2419         * doc/invoke.texi (fmove-loop-stores): Document.
2420         * common.opt (fmove-loop-stores): New option.
2421         * opts.c (default_options_table): Enable -fmove-loop-stores
2422         at -O1 but not -Og.
2423         * tree-ssa-loop-im.c (pass_lim::execute): Pass
2424         flag_move_loop_stores instead of true to
2425         loop_invariant_motion_in_fun.
2426
2427 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
2428
2429         * doc/install.texi: Document --with-dsymutil.
2430
2431 2021-07-06  Andrew Pinski  <apinski@marvell.com>
2432
2433         PR tree-optimization/101256
2434         * dbgcnt.def (phiopt_edge_range): New counter.
2435         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
2436         Check to make sure the new name is defined in the same
2437         bb as the conditional before duplicating range info.
2438         Also add debug counter.
2439
2440 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
2441
2442         PR rtl-optimization/100328
2443         * config/i386/i386-options.c (ix86_option_override_internal):
2444         Set param_ira_consider_dup_in_all_alts to 0.
2445
2446 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
2447
2448         PR rtl-optimization/100328
2449         * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new
2450         parameter.
2451         * ira.c (ira_get_dup_out_num): Adjust as parameter
2452         param_ira_consider_dup_in_all_alts.
2453         * params.opt (ira-consider-dup-in-all-alts): New.
2454         * ira-conflicts.c (process_regs_for_copy): Add one parameter
2455         single_input_op_has_cstr_p.
2456         (get_freq_for_shuffle_copy): New function.
2457         (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p.
2458         * ira-int.h (ira_get_dup_out_num): Add one bool parameter.
2459
2460 2021-07-05  Jeff Law  <jeffreyalaw@gmail.com>
2461
2462         * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to
2463         generate condition code aware RTL directly.
2464
2465 2021-07-05  Andrew Pinski  <apinski@marvell.com>
2466
2467         PR tree-optimization/101039
2468         * match.pd (A CMP 0 ? A : -A): New patterns.
2469         * tree-ssa-phiopt.c (abs_replacement): Delete function.
2470         (tree_ssa_phiopt_worker): Don't call abs_replacement.
2471         Update comment about abs_replacement.
2472
2473 2021-07-05  Andrew Pinski  <apinski@marvell.com>
2474
2475         * tree-ssa-phiopt.c (gimple_simplify_phiopt):
2476         If "A ? B : C" fails to simplify, try "(!A) ? C : B".
2477
2478 2021-07-05  Andrew Pinski  <apinski@marvell.com>
2479
2480         * tree-ssa-phiopt.c (match_simplify_replacement):
2481         Add early_p argument. Call gimple_simplify_phiopt
2482         instead of gimple_simplify.
2483         (tree_ssa_phiopt_worker): Update call to
2484         match_simplify_replacement and allow unconditionally.
2485         (phiopt_early_allow): New function.
2486         (gimple_simplify_phiopt): New function.
2487
2488 2021-07-05  Andrew Pinski  <apinski@marvell.com>
2489
2490         PR middle-end/101237
2491         * fold-const.c (negate_expr_p): Remove call to element_mode
2492         and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS,
2493         HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS.
2494         (fold_negate_expr_1): Likewise.
2495         (const_unop): Likewise.
2496         (fold_cond_expr_with_comparison): Likewise.
2497         (fold_binary_loc): Likewise.
2498         (fold_ternary_loc): Likewise.
2499         (tree_call_nonnegative_warnv_p): Likewise.
2500         * match.pd (-(A + B) -> (-B) - A): Likewise.
2501
2502 2021-07-05  Iain Sandoe  <iain@sandoe.co.uk>
2503
2504         * configure.ac: Handle --with-dsymutil in the same way as we
2505         do for the assembler and linker.  (DEFAULT_DSYMUTIL): New.
2506         Extract the type and version for the dsymutil configured or
2507         found by the default searches.
2508         * config.in: Regenerated.
2509         * configure: Regenerated.
2510         * collect2.c (do_dsymutil): Handle locating dsymutil in the
2511         same way as for the assembler and  linker.
2512         * config/darwin.h (DSYMUTIL): Delete.
2513         * gcc.c: Report a configured dsymutil correctly.
2514         * exec-tool.in: Allow for dsymutil.
2515
2516 2021-07-05  Uroš Bizjak  <ubizjak@gmail.com>
2517
2518         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
2519         Handle V4QI and V2HI modes.
2520         (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1.
2521         Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes.
2522         (expand_vec_perm_pshufb): Rewrite to use switch statemets.
2523         Handle 4-byte dual operands with TARGET_XOP and single operands
2524         with TARGET_SSSE3.  Emit mmx_ppermv32 for TARGET_XOP and
2525         mmx_pshufbv4qi3 for TARGET_SSSE3.
2526         (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1.
2527         (expand_vec_perm_interleave2): Allow 4-byte vector modes.
2528         (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3.
2529         (expand_vec_perm_even_odd_1): Handle V4QI mode.
2530         (expand_vec_perm_broadcast_1): Handle V4QI mode.
2531         (ix86_vectorize_vec_perm_const): Handle V4QI mode.
2532         * config/i386/mmx.md (mmx_ppermv32): New insn pattern.
2533         (mmx_pshufbv4qi3): Ditto.
2534         (*mmx_pblendw32): Ditto.
2535         (*mmx_pblendw64): Rename from *mmx_pblendw.
2536         (mmx_punpckhbw_low): New insn_and_split pattern.
2537         (mmx_punpcklbw_low): Ditto.
2538
2539 2021-07-05  Richard Biener  <rguenther@suse.de>
2540
2541         * tree-vect-loop-manip.c (vect_loop_versioning): Do not
2542         set LOOP_C_INFINITE on the vectorized loop.
2543
2544 2021-07-05  Richard Biener  <rguenther@suse.de>
2545
2546         PR middle-end/101291
2547         * cfgloopmanip.c (loop_version): Set the loop copy of the
2548         versioned loop to the new loop.
2549
2550 2021-07-04  Iain Sandoe  <iain@sandoe.co.uk>
2551
2552         PR target/100269
2553         * config.gcc: Ensure that Darwin biarch definitions are
2554         added before i386.h.
2555         * config/i386/darwin.h (TARGET_64BIT): Remove.
2556         (PR80556_WORKAROUND): New.
2557         (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND.
2558         (DARWIN_SUBARCH_SPEC): New.
2559         * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT,
2560         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
2561         (REAL_LIBGCC_SPEC): Remove.
2562         * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT,
2563         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
2564         (REAL_LIBGCC_SPEC): Remove.
2565
2566 2021-07-03  H.J. Lu  <hjl.tools@gmail.com>
2567
2568         PR middle-end/101294
2569         * expr.c (store_constructor): Don't use vec_duplicate on vector.
2570
2571 2021-07-02  Martin Sebor  <msebor@redhat.com>
2572
2573         PR middle-end/98871
2574         PR middle-end/98512
2575         * diagnostic.c (get_any_inlining_info): New.
2576         (update_effective_level_from_pragmas): Handle inlining context.
2577         (diagnostic_enabled): Same.
2578         (diagnostic_report_diagnostic): Same.
2579         * diagnostic.h (struct diagnostic_info): Add ctor.
2580         (struct diagnostic_context): Add new member.
2581         * tree-diagnostic.c (set_inlining_locations): New.
2582         (tree_diagnostics_defaults): Set new callback pointer.
2583
2584 2021-07-02  Peter Bergner  <bergner@linux.ibm.com>
2585
2586         * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
2587         New macros.
2588         (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
2589         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand
2590         lxvp and stxvp built-ins.
2591         (mma_init_builtins): Handle lxvp and stxvp built-ins.
2592         (builtin_function_type): Likewise.
2593         * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document.
2594
2595 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
2596
2597         * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept
2598         additional argument for the code.
2599         * config/h8300/h8300.c (compute_a_shift_cc): Accept additional
2600         argument for the code.  Just return if the ZN bits are useful or
2601         not rather than the old style CC_* enums.
2602         * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before
2603         more generic shiftqi patterns.
2604         (shifthi_noscratch, shiftsi_noscratch): Similarly.
2605         (shiftqi_noscratch_set_flags): New pattern.
2606         (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise.
2607
2608 2021-07-02  Andrew MacLeod  <amacleod@redhat.com>
2609
2610         PR tree-optimization/101223
2611         * range-op.cc (build_lt): Add -1 for signed values.
2612         (built_gt): Subtract -1 for signed values.
2613
2614 2021-07-02  David Faust  <david.faust@oracle.com>
2615
2616         * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT.
2617         (btf_asm_type): Likewise.
2618
2619 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
2620
2621         * config/h8300/h8300-protos.h (output_a_shift): Make first argument
2622         an array of rtx rather than a pointer to rtx.  Add code argument.
2623         (compute_a_shift_length): Similarly.
2624         * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the
2625         shift itself isn't an operand.  Create dummy operand[0] to carry
2626         a mode and pass a suitable rtx code to compute_a_shift_length.
2627         (get_shift_alg): Adjust operand number of clobber in output templates.
2628         (output_a_shift): Make first argument an array of rtx rather than
2629         a pointer to rtx.  Add code argument for the type of shift.
2630         Adjust now that the shift itself is no longer an operand.
2631         (compute_a_shift_length): Similarly.
2632         * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an
2633         iterator rather than nshift_operator.
2634         (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise.
2635         (shiftqi_clobber_flags): Adjust to API changes in output_a_shift
2636         and compute_a_shift_length.
2637         (shiftqi_noscratch_clobber_flags): Likewise.
2638         (shifthi_noscratch_clobber_flags): Likewise.
2639         (shiftsi_noscratch_clobber_flags): Likewise.
2640
2641 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
2642
2643         PR debug/101283
2644         * config/darwin.h (DSYMUTIL_SPEC): Do not try to run
2645         dsymutil for BTF/CTF.
2646
2647 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
2648
2649         PR debug/101283
2650         * config/darwin.h (CTF_INFO_SECTION_NAME): Update the
2651         segment to include BTF.
2652         (BTF_INFO_SECTION_NAME): New.
2653
2654 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
2655
2656         * config/m32r/m32r-protos.h (call_operand): Adjust return type.
2657         (small_data_operand, memreg_operand, small_insn_p): Likewise.
2658         * config/m32r/m32r.c (call_operand): Adjust return type.
2659         (small_data_operand, memreg_operand): Likewise.
2660
2661 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
2662
2663         * config/frv/frv-protos.h  (integer_register_operand): Adjust return
2664         type.
2665         (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise.
2666         (fpr_or_int6_operand, gpr_or_int_operand); Likewise.
2667         (gpr_or_int12_operand, gpr_or_int10_operand); Likewise.
2668         (move_source_operand, move_destination_operand): Likewise.
2669         (condexec_source_operand, condexec_dest_operand): Likewise.
2670         (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise.
2671         (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise.
2672         (fcr_operand, icr_operand, cr_operand, call_operand): Likewise.
2673         (fpr_operand, even_reg_operand, odd_reg_operand): Likewise.
2674         (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise.
2675         (even_fpr_operand, odd_fpr_operand): Likewise.
2676         (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise.
2677         (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise.
2678         (uint4_operand, uint1_operand, int_2word_operand): Likewise
2679         (upper_int16_operand, uint16_operand, symbolic_operand): Likewise.
2680         (relational_operator, float_relational_operator): Likewise.
2681         (ccr_eqne_operator, minmax_operator): Likewise.
2682         (condexec_si_binary_operator, condexec_si_media_operator): Likewise.
2683         (condexec_si_divide_operator, condexec_si_unary_operator): Likewise.
2684         (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise.
2685         (intop_compare_operator, acc_operand, even_acc_operand): Likewise.
2686         (quad_acc_operand, accg_operand): Likewise.
2687
2688 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
2689
2690         * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change
2691         return type to a bool.
2692         (nonimmediate_nonstack_operand): Likewise.
2693         (xstormy16_splittable_below100_operand): Likewise.
2694         * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix
2695         return type.
2696         (xstormy16_splittable_below100_operand): Likewise.
2697
2698 2021-07-02  Richard Biener  <rguenther@suse.de>
2699
2700         PR tree-optimization/101293
2701         * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases
2702         with combined offsets.
2703         (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were
2704         combined with the rest of the offset.
2705
2706 2021-07-02  Eric Botcazou  <ebotcazou@adacore.com>
2707
2708         * config/i386/i386.c (asm_preferred_eh_data_format): Always use the
2709         PIC encodings for PE-COFF targets.
2710
2711 2021-07-02  Jakub Jelinek  <jakub@redhat.com>
2712
2713         PR target/101286
2714         * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant):
2715         Return nullptr for TImode inner mode.
2716
2717 2021-07-02  Richard Biener  <rguenther@suse.de>
2718
2719         PR tree-optimization/101280
2720         PR tree-optimization/101173
2721         * gimple-loop-interchange.cc
2722         (tree_loop_interchange::valid_data_dependences): Properly
2723         guard all dependence checks with DDR_REVERSED_P or its
2724         inverse.
2725
2726 2021-07-02  Hongyu Wang  <hongyu.wang@intel.com>
2727
2728         * config/i386/i386-expand.c (ix86_expand_builtin):
2729         Add branch to clear odata when ZF is set for asedecenc_expand
2730         and wideaesdecenc_expand.
2731
2732 2021-07-02  Eugene Rozenfeld  <erozen@microsoft.com>
2733
2734         * config/i386/gcc-auto-profile: regenerate
2735
2736 2021-07-02  liuhongt  <hongtao.liu@intel.com>
2737
2738         * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to ..
2739         (trunc<mode><pmov_dst_4_lower>2): this.
2740
2741 2021-07-01  David Malcolm  <dmalcolm@redhat.com>
2742
2743         * diagnostic.h (diagnostic_context::m_file_cache): New field.
2744         * input.c (class fcache): Rename to...
2745         (class file_cache_slot): ...this, making most members private and
2746         prefixing fields with "m_".
2747         (file_cache_slot::get_file_path): New accessor.
2748         (file_cache_slot::get_use_count): New accessor.
2749         (file_cache_slot::missing_trailing_newline_p): New accessor.
2750         (file_cache_slot::inc_use_count): New.
2751         (fcache_buffer_size): Move to...
2752         (file_cache_slot::buffer_size): ...here.
2753         (fcache_line_record_size): Move to...
2754         (file_cache_slot::line_record_size): ...here.
2755         (fcache_tab): Delete, in favor of global_dc->m_file_cache.
2756         (fcache_tab_size): Move to file_cache::num_file_slots.
2757         (diagnostic_file_cache_init): Update for move of fcache_tab
2758         to global_dc->m_file_cache.
2759         (diagnostic_file_cache_fini): Likewise.
2760         (lookup_file_in_cache_tab): Convert to...
2761         (file_cache::lookup_file): ...this.
2762         (diagnostics_file_cache_forcibly_evict_file): Update for move of
2763         fcache_tab to global_dc->m_file_cache, moving most of
2764         implementation to...
2765         (file_cache::forcibly_evict_file): ...this new function and...
2766         (file_cache_slot::evict): ...this new function.
2767         (evicted_cache_tab_entry): Convert to...
2768         (file_cache::evicted_cache_tab_entry): ...this.
2769         (add_file_to_cache_tab): Convert to...
2770         (file_cache::add_file): ...this, moving bulk of implementation
2771         to...
2772         (file_cache_slot::create): ..this new function.
2773         (file_cache::file_cache): New.
2774         (file_cache::~file_cache): New.
2775         (lookup_or_add_file_to_cache_tab): Convert to...
2776         (file_cache::lookup_or_add_file): ..this new function.
2777         (fcache::fcache): Rename to...
2778         (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes
2779         to fields.
2780         (fcache::~fcache): Rename to...
2781         (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes
2782         to fields.
2783         (needs_read): Convert to...
2784         (file_cache_slot::needs_read_p): ...this.
2785         (needs_grow): Convert to...
2786         (file_cache_slot::needs_grow_p): ...this.
2787         (maybe_grow): Convert to...
2788         (file_cache_slot::maybe_grow): ...this.
2789         (read_data): Convert to...
2790         (file_cache_slot::read_data): ...this.
2791         (maybe_read_data): Convert to...
2792         (file_cache_slot::maybe_read_data): ...this.
2793         (get_next_line): Convert to...
2794         (file_cache_slot::get_next_line): ...this.
2795         (goto_next_line): Convert to...
2796         (file_cache_slot::goto_next_line): ...this.
2797         (read_line_num): Convert to...
2798         (file_cache_slot::read_line_num): ...this.
2799         (location_get_source_line): Update for moving of globals to
2800         global_dc->m_file_cache.
2801         (location_missing_trailing_newline): Likewise.
2802         * input.h (class file_cache_slot): New forward decl.
2803         (class file_cache): New.
2804
2805 2021-07-01  Michael Meissner  <meissner@linux.ibm.com>
2806
2807         * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE
2808         128-bit floating point conditional move support.
2809         (have_compare_and_set_mask): Add IEEE 128-bit floating point
2810         types.
2811         * config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn.
2812         (mov<mode>cc_p10, IEEE128 iterator): New insn.
2813         (mov<mode>cc_invert_p10, IEEE128 iterator): New insn.
2814         (fpmask<mode>, IEEE128 iterator): New insn.
2815         (xxsel<mode>, IEEE128 iterator): New insn.
2816
2817 2021-07-01  Iain Sandoe  <iain@sandoe.co.uk>
2818
2819         PR debug/101283
2820         * config/darwin.h (CTF_INFO_SECTION_NAME): New.
2821
2822 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
2823
2824         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
2825         Make it global.
2826         * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate):
2827         New prototype.
2828         * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator.
2829         (vec_duplicate<mode>): New expander.
2830
2831 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
2832
2833         PR target/100865
2834         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
2835         New prototype.
2836         (ix86_byte_broadcast): New function.
2837         (ix86_convert_const_wide_int_to_broadcast): Likewise.
2838         (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode
2839         size is 16 bytes or bigger.
2840         (ix86_broadcast_from_integer_constant): New function.
2841         (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR
2842         to broadcast if mode size is 16 bytes or bigger.
2843         * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New
2844         prototype.
2845         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function.
2846
2847 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
2848
2849         * config/i386/predicates.md (ix86_endbr_immediate_operand):
2850         Return true/false instead of 1/0.
2851         (movq_parallel): Ditto.
2852
2853 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
2854
2855         * recog.c (general_operand): Return true/false instead of 1/0.
2856         (register_operand): Ditto.
2857         (immediate_operand): Ditto.
2858         (const_int_operand): Ditto.
2859         (const_scalar_int_operand): Ditto.
2860         (const_double_operand): Ditto.
2861         (push_operand): Ditto.
2862         (pop_operand): Ditto.
2863         (memory_operand): Ditto.
2864         (indirect_operand): Ditto.
2865
2866 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
2867
2868         * genpreds.c (write_predicate_subfunction):
2869         Change the type of written subfunction to bool.
2870         (write_one_predicate_function):
2871         Change the type of written function to bool.
2872         (write_tm_preds_h): Ditto.
2873         * recog.h (*insn_operand_predicate_fn): Change the type to bool.
2874         * recog.c (general_operand): Change the type to bool.
2875         (address_operand): Ditto.
2876         (register_operand): Ditto.
2877         (pmode_register_operand): Ditto.
2878         (scratch_operand): Ditto.
2879         (immediate_operand): Ditto.
2880         (const_int_operand): Ditto.
2881         (const_scalar_int_operand): Ditto.
2882         (const_double_operand): Ditto.
2883         (nonimmediate_operand): Ditto.
2884         (nonmemory_operand): Ditto.
2885         (push_operand): Ditto.
2886         (pop_operand): Ditto.
2887         (memory_operand): Ditto.
2888         (indirect_operand): Ditto.
2889         (ordered_comparison_operator): Ditto.
2890         (comparison_operator): Ditto.
2891         * config/i386/i386-expand.c (ix86_expand_sse_cmp):
2892         Change the type of indirect predicate function to bool.
2893         * config/rs6000/rs6000.c (easy_vector_constant):
2894         Change the type to bool.
2895         * config/mips/mips-protos.h (m16_based_address_p):
2896         Change the type of operand 3 to bool.
2897
2898 2021-07-01  Richard Biener  <rguenther@suse.de>
2899
2900         PR tree-optimization/101280
2901         PR tree-optimization/101173
2902         * gimple-loop-interchange.cc
2903         (tree_loop_interchange::valid_data_dependences): Revert
2904         previous change and instead correctly handle DDR_REVERSED_P
2905         dependence.
2906
2907 2021-07-01  Richard Biener  <rguenther@suse.de>
2908
2909         PR tree-optimization/101278
2910         * tree-ssa-dse.c (dse_classify_store): First check for
2911         uses, then ignore stmt for chaining purposes.
2912
2913 2021-07-01  Richard Biener  <rguenther@suse.de>
2914
2915         PR tree-optimization/100778
2916         * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping
2917         vectorized ops ahead of their scalar BB.
2918
2919 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
2920
2921         PR target/101044
2922         * config/i386/i386.md (*nabs<dwi>2_doubleword):
2923         New insn_and_split pattern.
2924         (*nabs<dwi>2_1): Ditto.
2925         * config/i386/i386-features.c
2926         (general_scalar_chain::compute_convert_gain):
2927         Handle (NEG (ABS (...))) RTX.  Rewrite src code
2928         scanner as switch statement.
2929         (general_scalar_chain::convert_insn):
2930         Handle (NEG (ABS (...))) RTX.
2931         (general_scalar_to_vector_candidate_p):
2932         Detect  (NEG (ABS (...))) RTX.  Reorder case statements
2933         for (AND (NOT (...) ...)) fallthrough.
2934
2935 2021-07-01  Richard Biener  <rguenther@suse.de>
2936
2937         PR tree-optimization/101178
2938         * tree-vect-slp.c (slpg_vertex::materialize): Remove.
2939         (slpg::perm_in): Add.
2940         (slpg::get_perm_in): Remove.
2941         (slpg::get_perm_materialized): Add.
2942         (vect_optimize_slp): Handle VEC_PERM nodes more optimally
2943         during permute propagation and materialization.
2944
2945 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
2946
2947         PR debug/101266
2948         * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.
2949
2950 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
2951
2952         PR middle-end/94366
2953         * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to
2954         is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type,
2955         use boolean_type_node instead of integer_type_node as NE_EXPR type.
2956         (lower_reduction_clauses): Likewise.
2957
2958 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
2959
2960         * config/gcn/gcn.c: Include dwarf2.h.
2961         (gcn_addr_space_debug): New function.
2962         (TARGET_ADDR_SPACE_DEBUG): New hook.
2963
2964 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
2965
2966         * common/config/gcn/gcn-common.c
2967         (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3.
2968         * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer
2969         when emitting CFI.
2970         (gcn_expand_prologue): Prefer the frame pointer when emitting CFI.
2971         (gcn_frame_pointer_rqd): New function.
2972         (TARGET_FRAME_POINTER_REQUIRED): New hook.
2973
2974 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
2975
2976         * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for
2977         prologue register saves.
2978         (gcn_debug_unwind_info): Use UI_DWARF2.
2979         (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC.
2980         (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span.
2981         * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define.
2982         (DWARF_LINK_REGISTER): New define.
2983         (FIRST_PSEUDO_REGISTER): Increment.
2984         (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER.
2985         (CALL_USED_REGISTERS): Likewise.
2986         (REGISTER_NAMES): Likewise.
2987
2988 2021-06-30  Richard Biener  <rguenther@suse.de>
2989
2990         PR tree-optimization/101267
2991         * tree-vect-stmts.c (vect_check_scalar_mask): Adjust
2992         API and use SLP compatible interface of vect_is_simple_use.
2993         Reject not vectorized SLP defs for callers that do not support
2994         that.
2995         (vect_check_store_rhs): Handle masked stores and pass down
2996         the appropriate operator index.
2997         (vectorizable_call): Adjust.
2998         (vectorizable_store): Likewise.
2999         (vectorizable_load): Likewise.  Handle SLP pecularity of
3000         masked loads.
3001         (vect_is_simple_use): Remove special-casing of masked stores.
3002
3003 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
3004
3005         * common.opt (foffload): Remove help as Driver only.
3006         * gcc.c (display_help): Add -foffload.
3007
3008 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
3009
3010         * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC.
3011         (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into
3012         a candidate list; better inform no offload target is configured
3013         and fix hint extraction when passed target is not '\0' at [len].
3014         * common.opt (foffload): Add tailing '.'.
3015         (foffload-options): Likewise; fix flag name in the help string.
3016
3017 2021-06-30  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
3018
3019         PR target/66791
3020         * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32.
3021         (vcage_f32): Gate comparison on __FAST_MATH__.
3022         (vcageq_f32): Likewise.
3023         (vcale_f32): Likewise.
3024         (vcaleq_f32): Likewise.
3025         (vcagt_f32): Likewise.
3026         (vcagtq_f32): Likewise.
3027         (vcalt_f32): Likewise.
3028         (vcaltq_f32): Likewise.
3029         (vcage_f16): Likewise.
3030         (vcageq_f16): Likewise.
3031         (vcale_f16): Likewise.
3032         (vcaleq_f16): Likewise.
3033         (vcagt_f16): Likewise.
3034         (vcagtq_f16): Likewise.
3035         (vcalt_f16): Likewise.
3036         (vcaltq_f16): Likewise.
3037
3038 2021-06-30  Richard Biener  <rguenther@suse.de>
3039
3040         PR tree-optimization/101264
3041         * tree-vect-slp.c (vect_optimize_slp): Propagate the
3042         computed perm_in to all "any" permute successors
3043         we cannot de-duplicate immediately.
3044
3045 2021-06-30  liuhongt  <hongtao.liu@intel.com>
3046
3047         PR target/101248
3048         * config/i386/sse.md
3049         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>):
3050         Refined to ..
3051         (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>):
3052         this.
3053         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined.
3054         * config/i386/subst.md (maskz_scalar): New define_subst.
3055         (maskz_scalar_name): New subst_attr.
3056         (maskz_scalar_op5): Ditto.
3057         (round_saeonly_maskz_scalar_op5): Ditto.
3058         (round_saeonly_maskz_scalar_operand5): Ditto.
3059
3060 2021-06-30  David Edelsohn  <dje.gcc@gmail.com>
3061
3062         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
3063         Increase code CSECT alignment to at least 32 bytes.
3064         * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte
3065         alignment designation.
3066
3067 2021-06-29  Sergei Trofimovich  <siarheit@google.com>
3068
3069         * doc/generic.texi: Fix s/net yet/not yet/ typo.
3070
3071 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
3072
3073         PR tree-optimization/101254
3074         * range-op.cc (operator_minus::op1_op2_relation_effect): Check for
3075         wrapping/non-wrapping when setting the result range.
3076
3077 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
3078
3079         * value-query.cc (gimple_range_global): Allow phis.
3080
3081 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
3082
3083         * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt.
3084         (simplify_using_ranges::op_with_boolean_value_range_p): Add a
3085         statement for location context.
3086         (check_for_binary_op_overflow): Ditto.
3087         (simplify_using_ranges::get_vr_for_comparison): Ditto.
3088         (simplify_using_ranges::compare_name_with_value): Ditto.
3089         (simplify_using_ranges::compare_names): Ditto.
3090         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto.
3091         (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto.
3092         (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto.
3093         (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto.
3094         (simplify_using_ranges::two_valued_val_range_p): Ditto.
3095         (simplify_using_ranges::simplify): Ditto.
3096         * vr-values.h: Adjust prototypes.
3097
3098 2021-06-29  Uroš Bizjak  <ubizjak@gmail.com>
3099
3100         PR target/95046
3101         * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern.
3102
3103 2021-06-29  Julian Brown  <julian@codesourcery.com>
3104
3105         * config/gcn/gcn.c (gcn_init_libfuncs): New function.
3106         (TARGET_INIT_LIBFUNCS): Define target hook using above function.
3107         * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4
3108         otherwise.
3109         (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
3110         (MAX_FIXED_MODE_SIZE): Change to 128.
3111
3112 2021-06-29  Julian Brown  <julian@codesourcery.com>
3113
3114         * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant.
3115         (s_mnemonic): Add clrsb.
3116         (gcn_flbit<mode>_int): Add insn pattern for SImode/DImode.
3117         (clrsb<mode>2): Add expander for SImode/DImode.
3118
3119 2021-06-29  Julian Brown  <julian@codesourcery.com>
3120
3121         * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm,
3122         muldi3): Add patterns.
3123
3124 2021-06-29  Julian Brown  <julian@codesourcery.com>
3125
3126         * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander.
3127         (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns.
3128
3129 2021-06-29  Julian Brown  <julian@codesourcery.com>
3130
3131         * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.
3132
3133 2021-06-29  Joseph Myers  <joseph@codesourcery.com>
3134
3135         * btfout.c, ctfout.c: Include "memmodel.h".
3136
3137 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
3138
3139         * gcc.c (check_offload_target_name): Cast len argument to
3140         %q.*s to 'int'; avoid -Wstringop-truncation warning.
3141
3142 2021-06-29  Richard Biener  <rguenther@suse.de>
3143
3144         * tree-vect-slp.c (vect_optimize_slp): Forward propagate
3145         to "any" permute nodes and relax "any" permute proapgation
3146         during iterative backward propagation.
3147
3148 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
3149
3150         PR other/67300
3151         * common.opt (-foffload=): Update description.
3152         (-foffload-options=): New.
3153         * doc/invoke.texi (C Language Options): Document
3154         -foffload and -foffload-options.
3155         * gcc.c (check_offload_target_name): New, split off from
3156         handle_foffload_option.
3157         (check_foffload_target_names): New.
3158         (handle_foffload_option): Handle -foffload=default.
3159         (driver_handle_option): Update for -foffload-options.
3160         * lto-opts.c (lto_write_options): Use -foffload-options
3161         instead of -foffload.
3162         * lto-wrapper.c (merge_and_complain, append_offload_options):
3163         Likewise.
3164         * opts.c (common_handle_option): Likewise.
3165
3166 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
3167
3168         * doc/invoke.texi (C Language Options): Sort options
3169         alphabetically in optlist and also the description itself.
3170         Remove leftover -fallow-single-precision from and add missing
3171         -fgnu-tm to the optlist.
3172
3173 2021-06-29  Richard Biener  <rguenther@suse.de>
3174
3175         * tree-vect-slp.c (slpg_vertex::visited): Remove.
3176         (vect_slp_perms_eq): Handle -1 permutes.
3177         (vect_optimize_slp): Rewrite permute propagation.
3178
3179 2021-06-29  Jakub Jelinek  <jakub@redhat.com>
3180
3181         PR c++/101210
3182         * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't
3183         perform the optimization in GENERIC when sanitizing and x has a
3184         reference type.
3185
3186 2021-06-29  Richard Biener  <rguenther@suse.de>
3187
3188         PR tree-optimization/101242
3189         * tree-vect-slp.c (vect_slp_build_vertices): Force-add
3190         PHIs with not represented initial values as leafs.
3191
3192 2021-06-29  Jan-Benedict Glaw  <jbglaw@getslash.de>
3193
3194         * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning.
3195         * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove
3196         "register" keyword.
3197         (pdp11_initial_elimination_offset) Remove unused variable.
3198         (pdp11_cmp_length) Ditto.
3199         (pdp11_insn_cost): Ditto, and fix signedness warning.
3200
3201 2021-06-29  David Edelsohn  <dje.gcc@gmail.com>
3202
3203         * btfout.c: Include tm_p.h.
3204         * ctfout.c: Same.
3205
3206 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
3207
3208         * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
3209         frame related.
3210         (bpf_expand_epilogue): Likewise.
3211         * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
3212         Do not define DBX_DEBUGGING_INFO.
3213
3214 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
3215
3216         * doc/invoke.texi: Document the CTF and BTF debug info options.
3217
3218 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
3219             David Faust  <david.faust@oracle.com>
3220             Jose E. Marchesi  <jose.marchesi@oracle.com>
3221             Weimin Pan  <weimin.pan@oracle.com>
3222
3223         * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to
3224         GTFILES.  Add new object files.
3225         * common.opt: Add CTF and BTF debug info options.
3226         * btfout.c: New file.
3227         * ctfc.c: Likewise.
3228         * ctfc.h: Likewise.
3229         * ctfout.c: Likewise.
3230         * dwarf2ctf.c: Likewise.
3231         * dwarf2ctf.h: Likewise.
3232         * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and
3233         BTF_DEBUG.
3234         * dwarf2out.c (dwarf2out_source_line): Likewise.
3235         (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to
3236         be generated.
3237         (debug_format_do_cu): New function.
3238         (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for
3239         them if requested.
3240         Include dwarf2ctf.c.
3241         * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug
3242         formats.
3243         * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG.
3244         (CTF_DEBUG): New bitmask.
3245         (BTF_DEBUG): Likewise.
3246         (enum ctf_debug_info_levels): New enum.
3247         * gengtype.c (open_base_files): Handle ctfc.h.
3248         (main): Handle uint32_t type.
3249         * flags.h (btf_debuginfo_p): New definition.
3250         (dwarf_based_debuginfo_p): Likewise.
3251         * opts.c (debug_type_names): Add entries for CTF and BTF.
3252         (btf_debuginfo_p): New function.
3253         (dwarf_based_debuginfo_p): Likewise.
3254         (common_handle_option): Handle -gctfN and -gbtf options.
3255         (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate.
3256         * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if
3257         frontend is not C.
3258
3259 2021-06-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
3260
3261         * dwarf2out.c (AT_class): Function is no longer static.
3262         (AT_int): Likewise.
3263         (AT_unsigned): Likewise.
3264         (AT_loc): Likewise.
3265         (get_AT): Likewise.
3266         (get_AT_string): Likewise.
3267         (get_AT_flag): Likewise.
3268         (get_AT_unsigned): Likewise.
3269         (get_AT_ref): Likewise.
3270         (new_die_raw): Likewise.
3271         (lookup_decl_die): Likewise.
3272         (base_type_die): Likewise.
3273         (add_name_attribute): Likewise.
3274         (add_AT_int): Likewise.
3275         (add_AT_unsigned): Likewise.
3276         (add_AT_loc): Likewise.
3277         (dw_get_die_tag): New function.
3278         (dw_get_die_child): Likewise.
3279         (dw_get_die_sib): Likewise.
3280         (struct dwarf_file_data): Move from here to dwarf2out.h
3281         (struct dw_attr_struct): Likewise.
3282         * dwarf2out.h: Analogous changes.
3283
3284 2021-06-28  Martin Jambor  <mjambor@suse.cz>
3285
3286         PR ipa/93385
3287         * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
3288         members m_dead_stmts and m_dead_ssas.
3289         * ipa-param-manipulation.c
3290         (ipa_param_body_adjustments::mark_dead_statements): New function.
3291         (ipa_param_body_adjustments::common_initialization): Call it on
3292         all removed but not split parameters.
3293         (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
3294         new mwmbers.
3295         (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that
3296         are dead.
3297         * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset
3298         dead debug statements.
3299         (copy_phis_for_bb): Do not copy dead PHI nodes.
3300
3301 2021-06-28  Martin Jambor  <mjambor@suse.cz>
3302
3303         PR ipa/93385
3304         * symtab-clones.h (clone_info): Removed member param_adjustments.
3305         * ipa-param-manipulation.h: Adjust initial comment to reflect how we
3306         deal with pass-through splits now.
3307         (ipa_param_performed_split): Removed.
3308         (ipa_param_adjustments::modify_call): Adjusted parameters.
3309         (class ipa_param_body_adjustments): Adjusted parameters of
3310         register_replacement, modify_gimple_stmt and modify_call_stmt.
3311         (ipa_verify_edge_has_no_modifications): Declare.
3312         (ipa_edge_modifications_finalize): Declare.
3313         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove
3314         performed_splits processing, pas only edge to padjs->modify_call,
3315         check that call arguments were not modified if they should not have
3316         been.
3317         * cgraphclones.c (cgraph_node::create_clone): Do not copy performed
3318         splits.
3319         * ipa-param-manipulation.c (struct pass_through_split_map): New type.
3320         (ipa_edge_modification_info): Likewise.
3321         (ipa_edge_modification_sum): Likewise.
3322         (ipa_edge_modifications): New edge summary.
3323         (ipa_verify_edge_has_no_modifications): New function.
3324         (transitive_split_p): Removed.
3325         (transitive_split_map): Likewise.
3326         (init_transitive_splits): Likewise.
3327         (ipa_param_adjustments::modify_call): Adjusted to use the new edge
3328         summary instead of performed_splits.
3329         (ipa_param_body_adjustments::register_replacement): Drop dummy
3330         parameter, set base_index of the created ipa_param_body_replacement.
3331         (phi_arg_will_live_p): New function.
3332         (ipa_param_body_adjustments::common_initialization): Do not create
3333         IPA_SRA dummy decls.
3334         (simple_tree_swap_info): Removed.
3335         (remap_split_decl_to_dummy): Likewise.
3336         (record_argument_state_1): New function.
3337         (record_argument_state): Likewise.
3338         (ipa_param_body_adjustments::modify_call_stmt): New parameter
3339         orig_stmt.  Do not work with dummy decls, save necessary info about
3340         changes to ipa_edge_modifications.
3341         (ipa_param_body_adjustments::modify_gimple_stmt): New parameter
3342         orig_stmt, pass it to modify_call_stmt.
3343         (ipa_param_body_adjustments::modify_cfun_body): Adjust call to
3344         modify_gimple_stmt.
3345         (ipa_edge_modifications_finalize): New function.
3346         * tree-inline.c (remap_gimple_stmt): Pass original statement to
3347         modify_gimple_stmt.
3348         (copy_phis_for_bb): Do not copy dead PHI nodes.
3349         (expand_call_inline): Do not remap performed_splits.
3350         (update_clone_info): Likewise.
3351         * toplev.c: Include ipa-param-manipulation.h.
3352         (toplev::finalize): Call ipa_edge_modifications_finalize.
3353
3354 2021-06-28  Andrew Pinski  <apinski@marvell.com>
3355
3356         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range
3357         info if we're the only things setting the target PHI.
3358         (value_replacement): Don't duplicate range here.
3359         (minmax_replacement): Likewise.
3360
3361 2021-06-28  Richard Biener  <rguenther@suse.de>
3362
3363         PR tree-optimization/101229
3364         * gimple-walk.c (gimple_walk_op): Handle PHIs.
3365
3366 2021-06-28  Martin Liska  <mliska@suse.cz>
3367
3368         * config/v850/v850.c (construct_dispose_instruction): Allocate
3369         a bigger buffer.
3370         (construct_prepare_instruction): Likewise.
3371
3372 2021-06-28  Martin Liska  <mliska@suse.cz>
3373
3374         * config/v850/v850.c (v850_option_override): Build default
3375         target node.
3376         (v850_can_inline_p): New.  Allow MASK_PROLOG_FUNCTION to be
3377         ignored for inlining.
3378         (TARGET_CAN_INLINE_P): New.
3379
3380 2021-06-28  Richard Biener  <rguenther@suse.de>
3381
3382         PR tree-optimization/101207
3383         * tree-vect-slp.c (vect_optimize_slp): Do BB reduction
3384         permute eliding for load permutations properly.
3385
3386 2021-06-28  Richard Biener  <rguenther@suse.de>
3387
3388         PR tree-optimization/101173
3389         * gimple-loop-interchange.cc
3390         (tree_loop_interchange::valid_data_dependences): Disallow outer
3391         loop dependence distance of zero.
3392
3393 2021-06-28  liuhongt  <hongtao.liu@intel.com>
3394
3395         PR target/100648
3396         * config/i386/sse.md (*avx_cmp<mode>3_lt): New
3397         define_insn_and_split.
3398         (*avx_cmp<mode>3_ltint): Ditto.
3399         (*avx2_pcmp<mode>3_3): Ditto.
3400         (*avx2_pcmp<mode>3_4): Ditto.
3401         (*avx2_pcmp<mode>3_5): Ditto.
3402
3403 2021-06-28  liuhongt  <hongtao.liu@intel.com>
3404
3405         * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256,
3406         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256,
3407         IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS,
3408         IX86_BUILTIN_PBLENDVB128): Replace icode with
3409         CODE_FOR_nothing.
3410         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv
3411         builtins.
3412         * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not):
3413         New pre_reload splitter.
3414
3415 2021-06-27  Andrew Pinski  <apinski@marvell.com>
3416
3417         PR middle-end/101230
3418         * fold-const.c (fold_ternary_loc): Check
3419         the return value of invert_tree_comparison.
3420
3421 2021-06-27  David Edelsohn  <dje.gcc@gmail.com>
3422
3423         * config.gcc: Add SPDX License Identifier.
3424         (powerpc-ibm-aix789): Default to aix73.h.
3425         (powerpc-ibm-aix7.2.*.*): New stanza.
3426         * config/rs6000/aix72.h: Add SPDX License Identifier.
3427         * config/rs6000/aix73.h: New file.
3428
3429 2021-06-26  Jason Merrill  <jason@redhat.com>
3430
3431         * except.c: #include "dwarf2.h" instead of "dwarf2out.h".
3432
3433 2021-06-26  Andrew Pinski  <apinski@marvell.com>
3434
3435         * genmatch.c (lower_cond): Copy for_subst_vec
3436         for the simplify also.
3437         (lower): Swap the order for lower_for and lower_cond.
3438
3439 2021-06-26  Andrew Pinski  <apinski@marvell.com>
3440
3441         * tree-ssa-phiopt.c (match_simplify_replacement): Reset
3442         flow senatitive info on the moved ssa set.
3443
3444 2021-06-26  Andrew Pinski  <apinski@marvell.com>
3445
3446         * fold-const.c (fold_cond_expr_with_comparison):
3447         Exand arg0 into comp_code, arg00, and arg01.
3448         (fold_ternary_loc): Use invert_tree_comparison
3449         instead of fold_invert_truthvalue for the case
3450         where we have A CMP B ? C : A.
3451
3452 2021-06-25  Martin Sebor  <msebor@redhat.com>
3453
3454         PR middle-end/101216
3455         * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant.
3456
3457 2021-06-25  Jeff Law  <jeffreyalaw@gmail.com>
3458
3459         * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT.
3460
3461 2021-06-25  Richard Biener  <rguenther@suse.de>
3462
3463         PR tree-optimization/101202
3464         * tree-vect-slp.c (vect_optimize_slp): Explicitely handle
3465         failed nodes.
3466
3467 2021-06-25  Richard Biener  <rguenther@suse.de>
3468
3469         * tree-vect-slp-patterns.c (addsub_pattern::build): Copy
3470         STMT_VINFO_REDUC_DEF from the original representative.
3471
3472 2021-06-25  Martin Sebor  <msebor@redhat.com>
3473
3474         * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING,
3475         gimple_no_warning_p and gimple_set_no_warning with
3476         warning_suppressed_p, and suppress_warning.
3477         (c_strlen): Same.
3478         (maybe_warn_for_bound): Same.
3479         (warn_for_access): Same.
3480         (check_access): Same.
3481         (expand_builtin_strncmp): Same.
3482         (fold_builtin_varargs): Same.
3483         * calls.c (maybe_warn_nonstring_arg): Same.
3484         (maybe_warn_rdwr_sizes): Same.
3485         * cfgexpand.c (expand_call_stmt): Same.
3486         * cgraphunit.c (check_global_declaration): Same.
3487         * fold-const.c (fold_undefer_overflow_warnings): Same.
3488         (fold_truth_not_expr): Same.
3489         (fold_unary_loc): Same.
3490         (fold_checksum_tree): Same.
3491         * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same.
3492         (array_bounds_checker::check_mem_ref): Same.
3493         (array_bounds_checker::check_addr_expr): Same.
3494         (array_bounds_checker::check_array_bounds): Same.
3495         * gimple-expr.c (copy_var_decl): Same.
3496         * gimple-fold.c (gimple_fold_builtin_strcpy): Same.
3497         (gimple_fold_builtin_strncat): Same.
3498         (gimple_fold_builtin_stxcpy_chk): Same.
3499         (gimple_fold_builtin_stpcpy): Same.
3500         (gimple_fold_builtin_sprintf): Same.
3501         (fold_stmt_1): Same.
3502         * gimple-ssa-isolate-paths.c (diag_returned_locals): Same.
3503         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
3504         * gimple-ssa-sprintf.c (handle_printf_call): Same.
3505         * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same.
3506         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
3507         * gimple-ssa-warn-restrict.h: Adjust declarations.
3508         (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING,
3509         gimple_no_warning_p and gimple_set_no_warning with
3510         warning_suppressed_p, and suppress_warning.
3511         (check_call): Same.
3512         (check_bounds_or_overlap): Same.
3513         * gimple.c (gimple_build_call_from_tree): Same.
3514         * gimplify.c (gimplify_return_expr): Same.
3515         (gimplify_cond_expr): Same.
3516         (gimplify_modify_expr_complex_part): Same.
3517         (gimplify_modify_expr): Same.
3518         (gimple_push_cleanup): Same.
3519         (gimplify_expr): Same.
3520         * omp-expand.c (expand_omp_for_generic): Same.
3521         (expand_omp_taskloop_for_outer): Same.
3522         * omp-low.c (lower_rec_input_clauses): Same.
3523         (lower_lastprivate_clauses): Same.
3524         (lower_send_clauses): Same.
3525         (lower_omp_target): Same.
3526         * tree-cfg.c (pass_warn_function_return::execute): Same.
3527         * tree-complex.c (create_one_component_var): Same.
3528         * tree-inline.c (remap_gimple_op_r): Same.
3529         (copy_tree_body_r): Same.
3530         (declare_return_variable): Same.
3531         (expand_call_inline): Same.
3532         * tree-nested.c (lookup_field_for_decl): Same.
3533         * tree-sra.c (create_access_replacement): Same.
3534         (generate_subtree_copies): Same.
3535         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.
3536         * tree-ssa-forwprop.c (combine_cond_expr_cond): Same.
3537         * tree-ssa-loop-ch.c (ch_base::copy_headers): Same.
3538         * tree-ssa-loop-im.c (execute_sm): Same.
3539         * tree-ssa-phiopt.c (cond_store_replacement): Same.
3540         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
3541         (handle_builtin_strcpy): Same.
3542         (maybe_diag_stxncpy_trunc): Same.
3543         (handle_builtin_stxncpy_strncat): Same.
3544         (handle_builtin_strcat): Same.
3545         * tree-ssa-uninit.c (get_no_uninit_warning): Same.
3546         (set_no_uninit_warning): Same.
3547         (uninit_undefined_value_p): Same.
3548         (warn_uninit): Same.
3549         (maybe_warn_operand): Same.
3550         * tree-vrp.c (compare_values_warnv): Same.
3551         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same.
3552         (test_for_singularity): Same.
3553         * gimple.h (warning_suppressed_p): New function.
3554         (suppress_warning): Same.
3555         (copy_no_warning): Same.
3556         (gimple_set_block): Call gimple_set_location.
3557         (gimple_set_location): Call copy_warning.
3558
3559 2021-06-25  Martin Sebor  <msebor@redhat.com>
3560
3561         * tree.h (warning_suppressed_at, copy_warning,
3562         warning_suppressed_p, suppress_warning): New functions.
3563
3564 2021-06-25  Martin Sebor  <msebor@redhat.com>
3565
3566         * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o.
3567         * gengtype.c (open_base_files): Add diagnostic-spec.h.
3568         * diagnostic-spec.c: New file.
3569         * diagnostic-spec.h: New file.
3570         * tree.h (no_warning, all_warnings, suppress_warning_at): New
3571         declarations.
3572         * warning-control.cc: New file.
3573
3574 2021-06-25  liuhongt  <hongtao.liu@intel.com>
3575
3576         PR target/101185
3577         * config/i386/i386.c (x86_order_regs_for_local_alloc):
3578         Revert r12-1669.
3579
3580 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
3581
3582         PR tree-optimization/101189
3583         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass
3584         LHS range of condition to postfold routine.
3585         (fold_using_range::postfold_gcond_edges): Only process the TRUE or
3586         FALSE edge if the LHS range supports it being taken.
3587         * gimple-range-fold.h (postfold_gcond_edges): Add range parameter.
3588
3589 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
3590
3591         * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks.
3592         (relation_oracle::find_relation_block): Check correct bitmap.
3593         (relation_oracle::dump): Do not dump NULL blocks.
3594
3595 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
3596
3597         * gimple-range-cache.cc (ranger_cache::propagate_cache): Call
3598         range_on_edge instead of manually calculating.
3599
3600 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
3601
3602         * range-op.cc: Fix comment.
3603
3604 2021-06-24  Uroš Bizjak  <ubizjak@gmail.com>
3605
3606         PR target/89021
3607         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
3608         Handle V8QI and V4HI modes.
3609         * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2):
3610         New insn pattern.
3611         (sse4_1_<any_extend:code>v4qiv4hi2): Ditto.
3612         (mmxpackmode): New mode attribute.
3613         (vec_pack_trunc_<mmxpackmode:mode>): New expander.
3614         (mmxunpackmode): New mode attribute.
3615         (vec_unpacks_lo_<mmxunpackmode:mode>): New expander.
3616         (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto.
3617         (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto.
3618         (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto.
3619         * config/i386/i386.md (extsuffix): Move from ...
3620         * config/i386/sse.md: ... here.
3621
3622 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
3623
3624         * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here..
3625         (dwarf2out_finish): ...instead of here.
3626
3627 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
3628
3629         * configure.ac (--gdwarf-5 option): Use objdump instead of readelf.
3630         (working --gdwarf-4/--gdwarf-5 for all sources): Likewise.
3631         (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows.
3632         * configure: Regenerate.
3633
3634 2021-06-24  Richard Biener  <rguenther@suse.de>
3635
3636         * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3,
3637         vec_addsubv8sf3, vec_addsubv4sf3): Merge into ...
3638         (vec_addsub<mode>3): ... using a new addsub_cst mode attribute.
3639
3640 2021-06-24  Richard Biener  <rguenther@suse.de>
3641
3642         * config/i386/sse.md (avx_addsubv4df3): Rename to
3643         vec_addsubv4df3.
3644         (avx_addsubv8sf3): Rename to vec_addsubv8sf3.
3645         (sse3_addsubv2df3): Rename to vec_addsubv2df3.
3646         (sse3_addsubv4sf3): Rename to vec_addsubv4sf3.
3647         * config/i386/i386-builtin.def: Adjust.
3648         * internal-fn.def (VEC_ADDSUB): New internal optab fn.
3649         * optabs.def (vec_addsub_optab): New optab.
3650         * tree-vect-slp-patterns.c (class addsub_pattern): New.
3651         (slp_patterns): Add addsub_pattern.
3652         * tree-vect-slp.c (vect_optimize_slp): Disable propagation
3653         across CFN_VEC_ADDSUB.
3654         * tree-vectorizer.h (vect_pattern::vect_pattern): Make
3655         m_ops optional.
3656         * doc/md.texi (vec_addsub<mode>3): Document.
3657
3658 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
3659
3660         PR middle-end/101170
3661         * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs
3662         where regno + subreg_regno_offset wraps around use 0 as starting
3663         regno.
3664
3665 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
3666
3667         PR middle-end/101172
3668         * stor-layout.c (finish_bitfield_representative): If nextf has
3669         error_mark_node type, set repr type to error_mark_node too.
3670
3671 2021-06-24  Ilya Leoshkevich  <iii@linux.ibm.com>
3672
3673         * config/s390/s390.c (s390_function_profiler): Ignore labelno
3674         parameter.
3675         * config/s390/s390.h (NO_PROFILE_COUNTERS): Define.
3676
3677 2021-06-24  Richard Biener  <rguenther@suse.de>
3678
3679         * tree-vect-slp.c (vect_optimize_slp): Do not propagate
3680         across operations that have different semantics on different
3681         lanes.
3682
3683 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
3684
3685         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP.
3686         * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses
3687         with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification
3688         of non-decl OMP_CLAUSE_DECL.  For OMP_CLAUSE_IN_REDUCTION on
3689         OMP_TARGET user outer_ctx instead of ctx for placeholders and
3690         initializer/combiner gimplification.
3691         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION
3692         on target constructs.
3693         (lower_rec_input_clauses): Likewise.
3694         (lower_omp_target): Likewise.
3695         * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause
3696         on target if in_reduction is present.
3697
3698 2021-06-24  Kewen Lin  <linkw@linux.ibm.com>
3699
3700         * tree-predcom.c (class pcom_worker): New class.
3701         (release_chain): Renamed to...
3702         (pcom_worker::release_chain): ...this.
3703         (release_chains): Renamed to...
3704         (pcom_worker::release_chains): ...this.
3705         (aff_combination_dr_offset): Renamed to...
3706         (pcom_worker::aff_combination_dr_offset): ...this.
3707         (determine_offset): Renamed to...
3708         (pcom_worker::determine_offset): ...this.
3709         (class comp_ptrs): New class.
3710         (split_data_refs_to_components): Renamed to...
3711         (pcom_worker::split_data_refs_to_components): ...this,
3712         and update with class comp_ptrs.
3713         (suitable_component_p): Renamed to...
3714         (pcom_worker::suitable_component_p): ...this.
3715         (filter_suitable_components): Renamed to...
3716         (pcom_worker::filter_suitable_components): ...this.
3717         (valid_initializer_p): Renamed to...
3718         (pcom_worker::valid_initializer_p): ...this.
3719         (find_looparound_phi): Renamed to...
3720         (pcom_worker::find_looparound_phi): ...this.
3721         (add_looparound_copies): Renamed to...
3722         (pcom_worker::add_looparound_copies): ...this.
3723         (determine_roots_comp): Renamed to...
3724         (pcom_worker::determine_roots_comp): ...this.
3725         (determine_roots): Renamed to...
3726         (pcom_worker::determine_roots): ...this.
3727         (single_nonlooparound_use): Renamed to...
3728         (pcom_worker::single_nonlooparound_use): ...this.
3729         (remove_stmt): Renamed to...
3730         (pcom_worker::remove_stmt): ...this.
3731         (execute_pred_commoning_chain): Renamed to...
3732         (pcom_worker::execute_pred_commoning_chain): ...this.
3733         (execute_pred_commoning): Renamed to...
3734         (pcom_worker::execute_pred_commoning): ...this.
3735         (struct epcc_data): New member worker.
3736         (execute_pred_commoning_cbck): Call execute_pred_commoning
3737         with pcom_worker pointer.
3738         (find_use_stmt): Renamed to...
3739         (pcom_worker::find_use_stmt): ...this.
3740         (find_associative_operation_root): Renamed to...
3741         (pcom_worker::find_associative_operation_root): ...this.
3742         (find_common_use_stmt): Renamed to...
3743         (pcom_worker::find_common_use_stmt): ...this.
3744         (combinable_refs_p): Renamed to...
3745         (pcom_worker::combinable_refs_p): ...this.
3746         (reassociate_to_the_same_stmt): Renamed to...
3747         (pcom_worker::reassociate_to_the_same_stmt): ...this.
3748         (stmt_combining_refs): Renamed to...
3749         (pcom_worker::stmt_combining_refs): ...this.
3750         (combine_chains): Renamed to...
3751         (pcom_worker::combine_chains): ...this.
3752         (try_combine_chains): Renamed to...
3753         (pcom_worker::try_combine_chains): ...this.
3754         (prepare_initializers_chain): Renamed to...
3755         (pcom_worker::prepare_initializers_chain): ...this.
3756         (prepare_initializers): Renamed to...
3757         (pcom_worker::prepare_initializers): ...this.
3758         (prepare_finalizers_chain): Renamed to...
3759         (pcom_worker::prepare_finalizers_chain): ...this.
3760         (prepare_finalizers): Renamed to...
3761         (pcom_worker::prepare_finalizers): ...this.
3762         (tree_predictive_commoning_loop): Renamed to...
3763         (pcom_worker::tree_predictive_commoning_loop): ...this, adjust
3764         some calls and remove some cleanup code.
3765         (tree_predictive_commoning): Adjusted to use pcom_worker instance.
3766         (static variable looparound_phis): Remove.
3767         (static variable name_expansions): Remove.
3768
3769 2021-06-24  Richard Biener  <rguenther@suse.de>
3770
3771         * tree-vect-slp.c (slpg_vertex): New struct.
3772         (vect_slp_build_vertices): Adjust.
3773         (vect_optimize_slp): Likewise.  Maintain an outgoing permute
3774         and a materialized one.
3775
3776 2021-06-24  Richard Biener  <rguenther@suse.de>
3777
3778         PR tree-optimization/101105
3779         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
3780         Only ignore steps when they are equal or scalar order is preserved.
3781
3782 2021-06-24  liuhongt  <hongtao.liu@intel.com>
3783
3784         PR target/98434
3785         * config/i386/i386-expand.c (ix86_expand_vec_interleave):
3786         Adjust comments for ix86_expand_vecop_qihi2.
3787         (ix86_expand_vecmul_qihi): Renamed to ..
3788         (ix86_expand_vecop_qihi2): Adjust function prototype to
3789         support shift operation, add static to definition.
3790         (ix86_expand_vec_shift_qihi_constant): Add static to definition.
3791         (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and
3792         ix86_expand_vec_shift_qihi_constant.
3793         * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted.
3794         (ix86_expand_vec_shift_qihi_constant): Deleted.
3795         * config/i386/sse.md (VI12_256_512_AVX512VL): New mode
3796         iterator.
3797         (mulv8qi3): Call ix86_expand_vecop_qihi directly, add
3798         condition TARGET_64BIT.
3799         (mul<mode>3): Ditto.
3800         (<insn><mode>3): Ditto.
3801         (vlshr<mode>3): Extend to support avx512 vlshr.
3802         (v<insn><mode>3): New expander for
3803         vashr/vlshr/vashl.
3804         (v<insn>v8qi3): Ditto.
3805         (vashrv8hi3<mask_name>): Renamed to ..
3806         (vashr<mode>3): And extend to support V16QImode for avx512.
3807         (vashrv16qi3): Deleted.
3808         (vashrv2di3<mask_name>): Extend expander to support avx512
3809         instruction.
3810
3811 2021-06-23  Dimitar Dimitrov  <dimitar@dinux.eu>
3812
3813         * doc/lto.texi (Design Overview): Update that slim objects are
3814         the default.
3815
3816 2021-06-23  Aaron Sawdey  <acsawdey@linux.ibm.com>
3817
3818         * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out
3819         of OTHER_POWER10_MASKS so it will not be enabled by default.
3820
3821 2021-06-23  Richard Biener  <rguenther@suse.de>
3822             Martin Jambor  <mjambor@suse.cz>
3823
3824         * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the
3825         param replacement unconditionally.  Adjust comment.
3826
3827 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
3828
3829         * Makefile.in (OBJS): Add gimple-range-fold.o
3830         * gimple-range-fold.cc: New.
3831         * gimple-range-fold.h: New.
3832         * gimple-range-gori.cc (gimple_range_calc_op1): Move to here.
3833         (gimple_range_calc_op2): Ditto.
3834         * gimple-range-gori.h: Move prototypes to here.
3835         * gimple-range.cc: Adjust include files.
3836         (fur_source:fur_source): Relocate to gimple-range-fold.cc.
3837         (fur_source::get_operand): Ditto.
3838         (fur_source::get_phi_operand): Ditto.
3839         (fur_source::query_relation): Ditto.
3840         (fur_source::register_relation): Ditto.
3841         (class fur_edge): Ditto.
3842         (fur_edge::fur_edge): Ditto.
3843         (fur_edge::get_operand): Ditto.
3844         (fur_edge::get_phi_operand): Ditto.
3845         (fur_stmt::fur_stmt): Ditto.
3846         (fur_stmt::get_operand): Ditto.
3847         (fur_stmt::get_phi_operand): Ditto.
3848         (fur_stmt::query_relation): Ditto.
3849         (class fur_depend): Relocate to gimple-range-fold.h.
3850         (fur_depend::fur_depend): Relocate to gimple-range-fold.cc.
3851         (fur_depend::register_relation): Ditto.
3852         (fur_depend::register_relation): Ditto.
3853         (class fur_list): Ditto.
3854         (fur_list::fur_list): Ditto.
3855         (fur_list::get_operand): Ditto.
3856         (fur_list::get_phi_operand): Ditto.
3857         (fold_range): Ditto.
3858         (adjust_pointer_diff_expr): Ditto.
3859         (gimple_range_adjustment): Ditto.
3860         (gimple_range_base_of_assignment): Ditto.
3861         (gimple_range_operand1): Ditto.
3862         (gimple_range_operand2): Ditto.
3863         (gimple_range_calc_op1): Relocate to gimple-range-gori.cc.
3864         (gimple_range_calc_op2): Ditto.
3865         (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc.
3866         (fold_using_range::range_of_range_op): Ditto.
3867         (fold_using_range::range_of_address): Ditto.
3868         (fold_using_range::range_of_phi): Ditto.
3869         (fold_using_range::range_of_call): Ditto.
3870         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
3871         (fold_using_range::range_of_builtin_call): Ditto.
3872         (fold_using_range::range_of_cond_expr): Ditto.
3873         (fold_using_range::range_of_ssa_name_with_loop_info): Ditto.
3874         (fold_using_range::relation_fold_and_or): Ditto.
3875         (fold_using_range::postfold_gcond_edges): Ditto.
3876         * gimple-range.h: Add gimple-range-fold.h to include files. Change
3877         GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H.
3878         (gimple_range_handler): Relocate to gimple-range-fold.h.
3879         (gimple_range_ssa_p): Ditto.
3880         (range_compatible_p): Ditto.
3881         (class fur_source): Ditto.
3882         (class fur_stmt): Ditto.
3883         (class fold_using_range): Ditto.
3884         (gimple_range_calc_op1): Relocate to gimple-range-gori.h
3885         (gimple_range_calc_op2): Ditto.
3886
3887 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
3888
3889         PR tree-optimization/101148
3890         PR tree-optimization/101014
3891         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
3892         (ranger_cache::~ranger_cache): Adjust.
3893         (ranger_cache::block_range): Check if propagation disallowed.
3894         (ranger_cache::propagate_cache): Disallow propagation if new value
3895         can't be stored properly.
3896         * gimple-range-cache.h (ranger_cache::m_propfail): New member.
3897
3898 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
3899
3900         * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype.
3901         (sbr_vector::set_bb_range): Return true.
3902         (class sbr_sparse_bitmap): Adjust.
3903         (sbr_sparse_bitmap::set_bb_range): Return value.
3904         (block_range_cache::set_bb_range): Return value.
3905         (ranger_cache::propagate_cache): Use return value to print msg.
3906         * gimple-range-cache.h (class block_range_cache): Adjust.
3907
3908 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
3909
3910         * gimple-range.cc (dump_bb): Use range_on_edge from the cache.
3911
3912 2021-06-23  Jeff Law  <jeffreyalaw@gmail.com>
3913
3914         * config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn>
3915         so this pattern can be used for test/compare removal.  Pass
3916         current insn to compute_logical_op_length and output_logical_op.
3917         * config/h8300/h8300.c (compute_logical_op_cc): Remove.
3918         (h8300_and_costs): Add argument to compute_logical_op_length.
3919         (output_logical_op): Add new argument.  Use it to determine if the
3920         condition codes are used and adjust the output accordingly.
3921         (compute_logical_op_length): Add new argument and update length
3922         computations when condition codes are used.
3923         * config/h8300/h8300-protos.h (compute_logical_op_length): Update
3924         prototype.
3925         (output_logical_op): Likewise.
3926
3927 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
3928
3929         PR target/89021
3930         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
3931         Handle 64bit modes for TARGET_XOP.  Use indirect gen_* functions.
3932         * config/i386/mmx.md (mmx_ppermv64): New insn pattern.
3933         * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ...
3934         * config/i386/sse.md (unspec): ... here.
3935
3936 2021-06-23  Martin Liska  <mliska@suse.cz>
3937
3938         PR target/98636
3939         * optc-save-gen.awk: Put back arm_fp16_format to
3940         checked_options.
3941
3942 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
3943
3944         PR target/101175
3945         * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
3946         (bsr): Ditto.
3947         (*bsrhi): Remove.
3948         (clz<mode>2): Update RTX pattern for additions.
3949
3950 2021-06-23  Jakub Jelinek  <jakub@redhat.com>
3951
3952         PR middle-end/101167
3953         * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs
3954         and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set.
3955
3956 2021-06-22  Sergei Trofimovich  <siarheit@google.com>
3957
3958         * doc/rtl.texi: drop unbalanced parenthesis.
3959
3960 2021-06-22  Richard Biener  <rguenther@suse.de>
3961
3962         PR middle-end/101156
3963         * gimplify.c (gimplify_expr): Remove premature incorrect
3964         optimization.
3965
3966 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
3967
3968         PR tree-optimization/101159
3969         * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some
3970         comment typos.
3971
3972 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
3973
3974         PR middle-end/101160
3975         * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type
3976         clear crtl->return_rtx instead of keeping it referencing a pseudo.
3977
3978 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
3979             Andrew Pinski  <apinski@marvell.com>
3980
3981         PR tree-optimization/101162
3982         * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer
3983         types.
3984
3985 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
3986
3987         * range-op.cc (range_relational_tests): New.
3988         (range_op_tests): Call range_relational_tests.
3989
3990 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
3991
3992         * range-op.cc (operator_cast::lhs_op1_relation): New.
3993         (operator_identity::lhs_op1_relation): Mew.
3994
3995 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
3996
3997         * range-op.cc (operator_minus::op1_op2_relation_effect): New.
3998
3999 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
4000
4001         * range-op.cc (operator_plus::lhs_op1_relation): New.
4002         (operator_plus::lhs_op2_relation): New.
4003
4004 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
4005
4006         * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a
4007         relation_oracle if dominators exist.
4008         (ranger_cache::~ranger_cache): Dispose of oracle.
4009         (ranger_cache::dump_bb): Dump oracle.
4010         * gimple-range.cc (fur_source::fur_source): New.
4011         (fur_source::get_operand): Use mmeber query.
4012         (fur_source::get_phi_operand): Use member_query.
4013         (fur_source::query_relation): New.
4014         (fur_source::register_dependency): Delete.
4015         (fur_source::register_relation): New.
4016         (fur_edge::fur_edge): Adjust.
4017         (fur_edge::get_phi_operand): Fix comment.
4018         (fur_edge::query): Delete.
4019         (fur_stmt::fur_stmt): Adjust.
4020         (fur_stmt::query): Delete.
4021         (fur_depend::fur_depend): Adjust.
4022         (fur_depend::register_relation): New.
4023         (fur_depend::register_relation): New.
4024         (fur_list::fur_list): Adjust.
4025         (fur_list::get_operand): Use member query.
4026         (fold_using_range::range_of_range_op): Process and query relations.
4027         (fold_using_range::range_of_address): Adjust dependency call.
4028         (fold_using_range::range_of_phi): Ditto.
4029         (gimple_ranger::gimple_ranger): New.  Use ranger_ache oracle.
4030         (fold_using_range::relation_fold_and_or): New.
4031         (fold_using_range::postfold_gcond_edges): New.
4032         * gimple-range.h (class gimple_ranger): Adjust.
4033         (class fur_source): Adjust members.
4034         (class fur_stmt): Ditto.
4035         (class fold_using_range): Ditto.
4036
4037 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
4038
4039         * range-op.cc (range_operator::wi_fold): Apply relation effect.
4040         (range_operator::fold_range): Adjust and apply relation effect.
4041         (*::fold_range): Add relation parameters.
4042         (*::op1_range): Ditto.
4043         (*::op2_range): Ditto.
4044         (range_operator::lhs_op1_relation): New.
4045         (range_operator::lhs_op2_relation): New.
4046         (range_operator::op1_op2_relation): New.
4047         (range_operator::op1_op2_relation_effect): New.
4048         (relop_early_resolve): New.
4049         (operator_equal::op1_op2_relation): New.
4050         (operator_equal::fold_range): Call relop_early_resolve.
4051         (operator_not_equal::op1_op2_relation): New.
4052         (operator_not_equal::fold_range): Call relop_early_resolve.
4053         (operator_lt::op1_op2_relation): New.
4054         (operator_lt::fold_range): Call relop_early_resolve.
4055         (operator_le::op1_op2_relation): New.
4056         (operator_le::fold_range): Call relop_early_resolve.
4057         (operator_gt::op1_op2_relation): New.
4058         (operator_gt::fold_range): Call relop_early_resolve.
4059         (operator_ge::op1_op2_relation): New.
4060         (operator_ge::fold_range): Call relop_early_resolve.
4061         * range-op.h (class range_operator): Adjust parameters and methods.
4062
4063 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
4064
4065         * Makefile.in (OBJS): Add value-relation.o.
4066         * gimple-range.h: Adjust include files.
4067         * tree-data-ref.c: Adjust include file order.
4068         * value-query.cc (range_query::get_value_range): Default to no oracle.
4069         (range_query::query_relation): New.
4070         (range_query::query_relation): New.
4071         * value-query.h (class range_query): Adjust.
4072         * value-relation.cc: New.
4073         * value-relation.h: New.
4074
4075 2021-06-22  Richard Biener  <rguenther@suse.de>
4076
4077         PR tree-optimization/101151
4078         * tree-ssa-sink.c (statement_sink_location): Expand irreducible
4079         region check.
4080
4081 2021-06-22  Jojo R  <rjiejie@linux.alibaba.com>
4082
4083         * config/riscv/riscv.c (thead_c906_tune_info): New.
4084         (riscv_tune_info_table): Use new tune.
4085
4086 2021-06-22  Richard Biener  <rguenther@suse.de>
4087
4088         PR tree-optimization/101158
4089         * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand
4090         checking after checking for matching operation.
4091
4092 2021-06-22  Richard Biener  <rguenther@suse.de>
4093
4094         PR tree-optimization/101159
4095         * tree-vect-patterns.c (vect_recog_popcount_pattern): Add
4096         missing NULL vectype check.
4097
4098 2021-06-22  Richard Biener  <rguenther@suse.de>
4099
4100         PR tree-optimization/101154
4101         * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access.
4102
4103 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
4104
4105         PR target/11877
4106         * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare.
4107         * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable.
4108         * config/i386/i386.c (ix86_expand_prologue): Clear it.
4109         * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx):
4110         Remove "" from match_operand.  Emit new insns using emit_move_insn and
4111         set ix86_last_zero_store_uid to INSN_UID of the last store.
4112         Add peephole2s for 1/2/4 stores of const0_rtx following previous
4113         successful peep2s.
4114
4115 2021-06-22  Martin Liska  <mliska@suse.cz>
4116
4117         * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format
4118         was changed.
4119
4120 2021-06-22  Martin Liska  <mliska@suse.cz>
4121
4122         * gcov-io.h: Remove padding entries.
4123
4124 2021-06-22  liuhongt  <hongtao.liu@intel.com>
4125
4126         PR tree-optimization/97770
4127         * tree-vect-patterns.c (vect_recog_popcount_pattern):
4128         New.
4129         (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern.
4130
4131 2021-06-22  liuhongt  <hongtao.liu@intel.com>
4132
4133         PR target/100267
4134         * config/i386/i386-builtin.def (BDESC): Adjust builtin name.
4135         * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to ..
4136         (expand<mode>_mask): this ..
4137         (*expand<mode>_mask): New pre_reload splitter to transform
4138         v{,p}expand* to vmov* when mask is zero, all ones, or has all
4139         ones in it's lower part, otherwise still generate
4140         v{,p}expand*.
4141
4142 2021-06-22  liuhongt  <hongtao.liu@intel.com>
4143
4144         PR target/100310
4145         * config/i386/i386-expand.c
4146         (ix86_expand_special_args_builtin): Keep constm1_operand only
4147         if it satisfies insn's operand predicate.
4148
4149 2021-06-21  Jason Merrill  <jason@redhat.com>
4150
4151         PR target/88529
4152         * df-scan.c (df_ref_record): Check that regno < endregno.
4153         * function.c (assign_parms, expand_function_end): Do nothing with a
4154         TYPE_EMPTY_P result.
4155
4156 2021-06-21  Richard Biener  <rguenther@suse.de>
4157
4158         PR tree-optimization/101120
4159         * tree-vect-data-refs.c (bump_vector_ptr): Fold the
4160         built increment.
4161         * tree-vect-slp.c (vect_transform_slp_perm_load): Add
4162         DR chain DCE capability.
4163         * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
4164         * tree-vect-stmts.c (vectorizable_load): Remove unused
4165         loads in the DR chain for SLP.
4166
4167 2021-06-21  Jakub Jelinek  <jakub@redhat.com>
4168
4169         PR inline-asm/100785
4170         * gimplify.c (gimplify_asm_expr): Don't diagnose errors if
4171         output or input operands were already error_mark_node.
4172         * cfgexpand.c (expand_asm_stmt): If errors are emitted,
4173         remove all inputs, outputs and clobbers from the asm and
4174         set template to "".
4175
4176 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
4177
4178         * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b.
4179         (vceq_s16): Likewise.
4180         (vceq_s32): Likewise.
4181         (vceq_u8): Likewise.
4182         (vceq_u16): Likewise.
4183         (vceq_u32): Likewise.
4184         (vceq_p8): Likewise.
4185         (vceqq_s8): Likewise.
4186         (vceqq_s16): Likewise.
4187         (vceqq_s32): Likewise.
4188         (vceqq_u8): Likewise.
4189         (vceqq_u16): Likewise.
4190         (vceqq_u32): Likewise.
4191         (vceqq_p8): Likewise.
4192         (vceq_f32): Gate __a == __b on __FAST_MATH__.
4193         (vceqq_f32): Likewise.
4194         (vceq_f16): Likewise.
4195         (vceqq_f16): Likewise.
4196
4197 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
4198
4199         PR target/97906
4200         * config/arm/iterators.md (NEON_VACMP): Remove.
4201         * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE
4202         iterator.
4203         (neon_vca<cmp_op><mode>_insn): Likewise.
4204         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of
4205         NEON_VACMP.
4206
4207 2021-06-21  Richard Biener  <rguenther@suse.de>
4208
4209         PR tree-optimization/101121
4210         * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally
4211         when we just lack a stmt with the desired op when doing permutation.
4212         (vect_build_slp_tree): When caching a failed SLP build attempt
4213         assert that at least one lane is marked as not matching.
4214
4215 2021-06-21  liuhongt  <hongtao.liu@intel.com>
4216
4217         PR target/101142
4218         * config/i386/i386.md: (*anddi_1): Disparage slightly the mask
4219         register alternative.
4220         (*and<mode>_1): Ditto.
4221         (*andqi_1): Ditto.
4222         (*andn<mode>_1): Ditto.
4223         (*<code><mode>_1): Ditto.
4224         (*<code>qi_1): Ditto.
4225         (*one_cmpl<mode>2_1): Ditto.
4226         (*one_cmplsi2_1_zext): Ditto.
4227         (*one_cmplqi2_1): Ditto.
4228         * config/i386/i386.c (x86_order_regs_for_local_alloc): Change
4229         the order of mask registers to be before general registers.
4230
4231 2021-06-21  Roger Sayle  <roger@nextmovesoftware.com>
4232
4233         PR target/11877
4234         * config/i386/i386.md: New define_peephole2s to shrink writing
4235         1, 2 or 4 consecutive zeros to memory when optimizing for size.
4236
4237 2021-06-18  Jeff Law  <jeffreyalaw@gmail.com>
4238
4239         * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF.
4240         * config/h8300/logical.md (<code><mode>3 logcial expander): Generate
4241         more efficient code when the source can be trivially simplified.
4242
4243 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
4244
4245         * gimple-range-cache.cc (ranger_cache::range_of_def):  Calculate
4246         a range if global is not available.
4247         (ranger_cache::entry_range): Fallback to range_of_def.
4248         * gimple-range-cache.h (range_of_def): Adjust prototype.
4249
4250 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
4251
4252         PR tree-optimization/101014
4253         * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor
4254         value list.
4255         (ranger_cache::~ranger_cache): Ditto.
4256         (ranger_cache::enable_new_values): Delete.
4257         (ranger_cache::push_poor_value): Delete.
4258         (ranger_cache::range_of_def): Remove poor value processing.
4259         (ranger_cache::entry_range): Ditto.
4260         (ranger_cache::fill_block_cache): Ditto.
4261         * gimple-range-cache.h (class ranger_cache): Remove poor value members.
4262         * gimple-range.cc (gimple_ranger::range_of_expr): Remove call.
4263         * gimple-range.h (class gimple_ranger): Adjust.
4264
4265 2021-06-18  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
4266
4267         PR target/100856
4268         * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function
4269         derived from arm_canon_arch.
4270         (arm_canon_arch_option): Call it.
4271         (arm_canon_arch_multilib_option): New function.
4272         * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup.
4273         * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype.
4274         (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro.
4275         (MULTILIB_ARCH_CANONICAL_SPECS): New macro.
4276         (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS.
4277         * config/arm/arm.opt (mlibarch): New option.
4278         * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use
4279         of march on RHS with mlibarch.
4280
4281 2021-06-18  Marcel Vollweiler  <marcel@codesourcery.com>
4282
4283         * config.in: Regenerate.
4284         * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
4285         functions.
4286         * configure: Regenerate.
4287         * configure.ac: Fix for global_load assembler functions.
4288
4289 2021-06-18  Richard Biener  <rguenther@suse.de>
4290
4291         PR tree-optimization/101112
4292         * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition
4293         to lookup a pattern stmt def.
4294
4295 2021-06-18  Jakub Jelinek  <jakub@redhat.com>
4296
4297         PR middle-end/101062
4298         * stor-layout.c (finish_bitfield_layout): Don't add bitfield
4299         representatives in QUAL_UNION_TYPE.
4300
4301 2021-06-18  Andrew Pinski  <apinski@marvell.com>
4302
4303         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
4304         Add counting of how many times it is done.
4305         (factor_out_conditional_conversion): Likewise.
4306         (match_simplify_replacement): Likewise.
4307         (value_replacement): Likewise.
4308         (spaceship_replacement): Likewise.
4309         (cond_store_replacement): Likewise.
4310         (cond_if_else_store_replacement_1): Likewise.
4311         (hoist_adjacent_loads): Likewise.
4312
4313 2021-06-18  Andrew Pinski  <apinski@marvell.com>
4314
4315         * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset
4316         types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR.
4317         (verify_gimple_assign_binary): Reject point and offset types on
4318         MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR,
4319         FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR,
4320         FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR.
4321
4322 2021-06-18  Michael Meissner  <meissner@linux.ibm.com>
4323
4324         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA
4325         3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions.
4326         * config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator):
4327         New insns.
4328
4329 2021-06-17  Aaron Sawdey  <acsawdey@linux.ibm.com>
4330
4331         * config/rs6000/genfusion.pl (gen_logical_addsubf): Add
4332         earlyclobber to alts 0/1.
4333         (gen_addadd): Add earlyclobber to alts 0/1.
4334         * config/rs6000/fusion.md: Regenerate file.
4335
4336 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4337
4338         * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec.
4339
4340 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
4341
4342         * gimple-range-cache.cc: Comment cleanups.
4343         * gimple-range-gori.cc: Comment cleanups.
4344         * gimple-range.cc: Comment/spacing cleanups
4345         * value-range.h: Comment cleanups.
4346
4347 2021-06-17  H.J. Lu  <hjl.tools@gmail.com>
4348
4349         PR target/100704
4350         * calls.c (expand_call): Replace PUSH_ARGS with
4351         targetm.calls.push_argument (0).
4352         (emit_library_call_value_1): Likewise.
4353         * defaults.h (PUSH_ARGS): Removed.
4354         (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with
4355         targetm.calls.push_argument (0).
4356         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
4357         (emit_push_insn): Pass the number bytes to push to
4358         targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0.
4359         * hooks.c (hook_bool_uint_true): New.
4360         * hooks.h (hook_bool_uint_true): Likewise.
4361         * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with
4362         targetm.calls.push_argument (0).
4363         * target.def (push_argument): Add a targetm.calls hook.
4364         * targhooks.c (default_push_argument): New.
4365         * targhooks.h (default_push_argument): Likewise.
4366         * config/bpf/bpf.h (PUSH_ARGS): Removed.
4367         * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New.
4368         * config/cr16/cr16.h (PUSH_ARGS): Removed.
4369         * config/i386/i386.c (ix86_push_argument): New.
4370         (TARGET_PUSH_ARGUMENT): Likewise.
4371         * config/i386/i386.h (PUSH_ARGS): Removed.
4372         * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New.
4373         * config/m32c/m32c.h (PUSH_ARGS): Removed.
4374         * config/nios2/nios2.h (PUSH_ARGS): Likewise.
4375         * config/pru/pru.h (PUSH_ARGS): Likewise.
4376         * doc/tm.texi.in: Remove PUSH_ARGS documentation.  Add
4377         TARGET_PUSH_ARGUMENT hook.
4378         * doc/tm.texi: Regenerated.
4379
4380 2021-06-17  Uroš Bizjak  <ubizjak@gmail.com>
4381
4382         PR target/97194
4383         * config/i386/i386-expand.c (expand_vector_set_var):
4384         Handle V2FS mode remapping.  Pass TARGET_MMX_WITH_SSE to
4385         ix86_expand_vector_init_duplicate.
4386         (ix86_expand_vector_init_duplicate): Emit insv_1 for
4387         QImode for !TARGET_PARTIAL_REG_STALL.
4388         * config/i386/predicates.md (vec_setm_mmx_operand): New predicate.
4389         * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand
4390         as operand 2 predicate.  Call ix86_expand_vector_set_var
4391         for non-constant index operand.
4392         (vec_setv2si): Ditto.
4393         (vec_setv4hi): Ditto.
4394         (vec_setv8qi): ditto.
4395
4396 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
4397
4398         PR tree-optimization/100790
4399         * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz
4400         code.
4401
4402 2021-06-17  Martin Liska  <mliska@suse.cz>
4403
4404         * doc/invoke.texi: Use consistently -O1 instead of -O.
4405
4406 2021-06-17  Martin Liska  <mliska@suse.cz>
4407
4408         * gcov-io.h: Update documentation entry about string format.
4409
4410 2021-06-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
4411
4412         PR target/100871
4413         * config/s390/vecintrin.h (vec_doublee): Fix to use
4414           __builtin_s390_vflls.
4415         (vec_floate): Fix to use __builtin_s390_vflrd.
4416
4417 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4418
4419         * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>.
4420         * dominance.h (get_dominated_to_depth): Likewise.
4421         (get_all_dominated_blocks): Likewise.
4422         * cfgcleanup.c (delete_unreachable_blocks): Adjust.
4423         * gcse.c (hoist_code): Likewise.
4424         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
4425         * tree-parloops.c (oacc_entry_exit_ok): Likewise.
4426         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
4427         * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise.
4428
4429 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4430
4431         * dominance.c (get_dominated_by_region): Return auto_vec<basic_block>.
4432         * dominance.h (get_dominated_by_region): Likewise.
4433         * tree-cfg.c (gimple_duplicate_sese_region): Adjust.
4434         (gimple_duplicate_sese_tail): Likewise.
4435         (move_sese_region_to_fn): Likewise.
4436
4437 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4438
4439         * dominance.c (get_dominated_by): Return auto_vec<basic_block>.
4440         * dominance.h (get_dominated_by): Likewise.
4441         * auto-profile.c (afdo_find_equiv_class): Adjust.
4442         * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise.
4443         * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
4444         * tree-cfg.c (test_linear_chain): Likewise.
4445         (test_diamond): Likewise.
4446
4447 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4448
4449         * cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>.
4450         * cfgloopanal.c (get_loop_hot_path): Likewise.
4451         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
4452
4453 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4454
4455         * cgraph.c (cgraph_node::collect_callers): Return
4456         auto_vec<cgraph_edge *>.
4457         * cgraph.h (cgraph_node::collect_callers): Likewise.
4458         * ipa-cp.c (create_specialized_node): Adjust.
4459         (decide_about_value): Likewise.
4460         (decide_whether_version_node): Likewise.
4461         * ipa-sra.c (process_isra_node_results): Likewise.
4462
4463 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4464
4465         * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec.
4466         (auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy
4467         constructor.
4468         (auto_vec<T, 0>::operator=): Define move assignment and delete copy
4469         assignment.
4470
4471 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
4472
4473         * gimple-range.cc (debug_seed_ranger): New.
4474         (dump_ranger): New.
4475         (debug_ranger): New.
4476
4477 2021-06-17  Richard Biener   <rguenther@suse.de>
4478
4479         PR tree-optimization/54400
4480         * tree-vectorizer.h (enum slp_instance_kind): Add
4481         slp_inst_kind_bb_reduc.
4482         (reduction_fn_for_scalar_code): Declare.
4483         * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
4484         Check SLP_INSTANCE_KIND instead of looking at the
4485         representative.
4486         (vect_slp_analyze_instance_alignment): Likewise.
4487         * tree-vect-loop.c (reduction_fn_for_scalar_code): Export.
4488         * tree-vect-slp.c (vect_slp_linearize_chain): Split out
4489         chain linearization from vect_build_slp_tree_2 and generalize
4490         for the use of BB reduction vectorization.
4491         (vect_build_slp_tree_2): Adjust accordingly.
4492         (vect_optimize_slp): Elide permutes at the root of BB reduction
4493         instances.
4494         (vectorizable_bb_reduc_epilogue): New function.
4495         (vect_slp_prune_covered_roots): Likewise.
4496         (vect_slp_analyze_operations): Use them.
4497         (vect_slp_check_for_constructors): Recognize associatable
4498         chains for BB reduction vectorization.
4499         (vectorize_slp_instance_root_stmt): Generate code for the
4500         BB reduction epilogue.
4501
4502 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
4503
4504         * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with
4505         may_recompute_p.
4506         (gori_compute::may_recompute_p): New.
4507         (gori_compute::outgoing_edge_range_p): Perform recomputations.
4508         * gimple-range-gori.h (class gori_compute): Add prototype.
4509
4510 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
4511
4512         * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return
4513         true when a range can be calculated.
4514         * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p.
4515
4516 2021-06-16  Martin Sebor  <msebor@redhat.com>
4517
4518         * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete):
4519         Correct documented defaults.
4520
4521 2021-06-16  Andrew MacLeod  <amacleod@redhat.com>
4522
4523         * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize
4524         m_new_value_p directly.
4525
4526 2021-06-16  Uroš Bizjak  <ubizjak@gmail.com>
4527
4528         PR target/89021
4529         * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv):
4530         Handle 64bit modes for TARGET_SSE4_1.
4531         (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3.
4532         (expand_vec_perm_even_odd_pack): Handle V4HI mode.
4533         (expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via
4534         expand_vec_perm_pshufb2 for TARGET_SSSE3 and via
4535         expand_vec_perm_even_odd_pack for TARGET_SSE4_1.
4536         * config/i386/mmx.md (mmx_packusdw): New insn pattern.
4537
4538 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
4539
4540         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>):
4541         Change to an expander that emits the correct instruction
4542         depending on endianness.
4543         (aarch64_<sur><addsub>hn<mode>_insn_le): Define.
4544         (aarch64_<sur><addsub>hn<mode>_insn_be): Define.
4545
4546 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
4547
4548         * config/aarch64/aarch64-simd-builtins.def: Split generator
4549         for aarch64_<su>qmovn builtins into scalar and vector
4550         variants.
4551         * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le):
4552         Define.
4553         (aarch64_<su>qmovn<mode>_insn_be): Define.
4554         (aarch64_<su>qmovn<mode>): Split into scalar and vector
4555         variants. Change vector variant to an expander that emits the
4556         correct instruction depending on endianness.
4557
4558 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
4559
4560         * config/aarch64/aarch64-simd-builtins.def: Split generator
4561         for aarch64_sqmovun builtins into scalar and vector variants.
4562         * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>):
4563         Split into scalar and vector variants. Change vector variant
4564         to an expander that emits the correct instruction depending
4565         on endianness.
4566         (aarch64_sqmovun<mode>_insn_le): Define.
4567         (aarch64_sqmovun<mode>_insn_be): Define.
4568
4569 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
4570
4571         * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le):
4572         Define - modeling zero-high-half semantics.
4573         (aarch64_xtn<mode>): Change to an expander that emits the
4574         appropriate instruction depending on endianness.
4575         (aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half
4576         semantics.
4577         (aarch64_xtn2<mode>_le): Rename to...
4578         (aarch64_xtn2<mode>_insn_le): This.
4579         (aarch64_xtn2<mode>_be): Rename to...
4580         (aarch64_xtn2<mode>_insn_be): This.
4581         (vec_pack_trunc_<mode>): Emit truncation instruction instead
4582         of aarch64_xtn.
4583         * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
4584         attribute iterator.
4585
4586 2021-06-16  Martin Jambor  <mjambor@suse.cz>
4587
4588         PR tree-optimization/100453
4589         * tree-sra.c (create_access): Disqualify any const candidates
4590         which are written to.
4591         (sra_modify_expr): Do not store sub-replacements back to a const base.
4592         (handle_unscalarized_data_in_subtree): Likewise.
4593         (sra_modify_assign): Likewise.  Earlier, use TREE_READONLy test
4594         instead of constant_decl_p.
4595
4596 2021-06-16  Jakub Jelinek  <jakub@redhat.com>
4597
4598         PR middle-end/101062
4599         * stor-layout.c (finish_bitfield_representative): For fields in unions
4600         assume nextf is always NULL.
4601         (finish_bitfield_layout): Compute bit field representatives also in
4602         unions, but handle it as if each bitfield was the only field in the
4603         aggregate.
4604
4605 2021-06-16  Richard Biener  <rguenther@suse.de>
4606
4607         PR tree-optimization/101088
4608         * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for
4609         supported refs on edges.  Do not assert same ref but
4610         different kind stores are unsuported but mark them so.
4611         (hoist_memory_references): Only look for supported refs
4612         on exits.
4613
4614 2021-06-16  Roger Sayle  <roger@nextmovesoftware.com>
4615
4616         PR rtl-optimization/46235
4617         * config/i386/i386.md: New define_split for bt followed by cmov.
4618         (*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc.
4619         (*bt<mode>_setncqi): New define_insn_and_split for bt then setnc.
4620         (*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed
4621         by setnc with zero extension.
4622
4623 2021-06-16  Richard Biener  <rguenther@suse.de>
4624
4625         PR tree-optimization/101083
4626         * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get
4627         vectype as argument.
4628         (vect_build_slp_tree_2): Adjust.
4629
4630 2021-06-15  Martin Sebor  <msebor@redhat.com>
4631
4632         PR middle-end/100876
4633         * builtins.c: (gimple_call_return_array): Account for size_t
4634         mangling as either unsigned int or unsigned long
4635
4636 2021-06-15  Jeff Law  <jeffreyalaw@gmail.com>
4637
4638         * compare-elim.c (try_eliminate_compare): Run DCE to clean things
4639         up before eliminating comparisons.
4640
4641 2021-06-15  Aldy Hernandez  <aldyh@redhat.com>
4642
4643         * range-op.cc (operator_bitwise_or::wi_fold): Make sure
4644         nonzero|X is nonzero.
4645         (range_op_bitwise_and_tests): Add tests for above.
4646
4647 2021-06-15  Carl Love  <cel@us.ibm.com>
4648
4649         PR target/101022
4650         * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the
4651         enum definition.
4652         (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2
4653         definitions.
4654
4655 2021-06-15  Tobias Burnus  <tobias@codesourcery.com>
4656
4657         PR fortran/92568
4658         * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET.
4659         (struct gimplify_omp_ctx): Extend defaultmap array by one.
4660         (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET].
4661         (omp_notice_variable): Update type classification for Fortran.
4662         (gimplify_scan_omp_clauses): Update calls for new argument; handle
4663         GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY.
4664         * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument.
4665         * langhooks.c (lhd_omp_scalar_p): Likewise.
4666         (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
4667         (LANG_HOOKS_DECLS): Add them.
4668         * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update
4669         omp_scalar_p pointer type to include the new bool argument.
4670
4671 2021-06-15  David Malcolm  <dmalcolm@redhat.com>
4672
4673         * doc/analyzer.texi
4674         (Special Functions for Debugging the Analyzer): Add
4675         __analyzer_dump_capacity.
4676
4677 2021-06-15  Jakub Jelinek  <jakub@redhat.com>
4678
4679         PR target/101046
4680         * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
4681         case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.
4682
4683 2021-06-15  Richard Biener  <rguenther@suse.de>
4684
4685         * cfgloopanal.c (mark_irreducible_loops): Use a dominance
4686         check to identify loop latches.
4687         * cfgloop.c (verify_loop_structure): Likewise.
4688         * loop-init.c (apply_loop_flags): Allow marked irreducible
4689         regions even with multiple latches.
4690         * predict.c (rebuild_frequencies): Simplify.
4691
4692 2021-06-15  Richard Biener  <rguenther@suse.de>
4693
4694         * tree-ssa-threadupdate.c
4695         (jump_thread_path_registry::mark_threaded_blocks): Assert we
4696         have marked irreducible regions.
4697
4698 2021-06-14  Martin Sebor  <msebor@redhat.com>
4699
4700         PR c++/100876
4701         * builtins.c (gimple_call_return_array): Check for attribute fn spec.
4702         Handle calls to placement new.
4703         (ndecl_dealloc_argno): Avoid placement delete.
4704
4705 2021-06-14  Peter Bergner  <bergner@linux.ibm.com>
4706
4707         PR target/100777
4708         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
4709         create_tmp_reg_or_ssa_name().
4710
4711 2021-06-14  Andrew MacLeod  <amacleod@redhat.com>
4712
4713         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
4714         (ranger_cache::enable_new_values): Set to specified value and
4715         return the old value.
4716         (ranger_cache::disable_new_values): Delete.
4717         (ranger_cache::fill_block_cache): Disable non 1st order derived
4718         poor values.
4719         * gimple-range-cache.h (ranger_cache): Adjust prototypes.
4720         * gimple-range.cc (gimple_ranger::range_of_expr): Adjust.
4721
4722 2021-06-14  Uroš Bizjak  <ubizjak@gmail.com>
4723
4724         PR target/101058
4725         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
4726         Return true early when testing with V2HImode.
4727         * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1.
4728
4729 2021-06-14  Christophe Lyon  <christophe.lyon@linaro.org>
4730
4731         * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern.
4732         (mve_vec_unpack<US>_hi_<mode>): New pattern.
4733         (@mve_vec_pack_trunc_lo_<mode>): New pattern.
4734         (mve_vmovntq_<supf><mode>): Prefix with '@'.
4735         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to
4736         vec-common.md.
4737         (vec_unpack<US>_lo_<mode>): Likewise.
4738         (vec_pack_trunc_<mode>): Rename to
4739         neon_quad_vec_pack_trunc_<mode>.
4740         * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New
4741         pattern.
4742         (vec_unpack<US>_lo_<mode>): New.
4743         (vec_pack_trunc_<mode>): New.
4744
4745 2021-06-14  Richard Biener  <rguenther@suse.de>
4746
4747         PR tree-optimization/100934
4748         * tree-ssa-dom.c (pass_dominator::execute): Properly
4749         mark irreducible regions.
4750
4751 2021-06-14  Martin Liska  <mliska@suse.cz>
4752
4753         * doc/invoke.texi: Put r{...} on the same line as @item.
4754
4755 2021-06-14  Martin Liska  <mliska@suse.cz>
4756
4757         * doc/invoke.texi: Add missing newline.
4758
4759 2021-06-14  Martin Liska  <mliska@suse.cz>
4760
4761         * doc/invoke.texi: Remove '+' charasters.
4762
4763 2021-06-14  Claudiu Zissulescu  <claziss@synopsys.com>
4764
4765         * config.gcc (arc): Add support for with_cpu option.
4766         * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu.
4767
4768 2021-06-14  Richard Biener  <rguenther@suse.de>
4769
4770         PR tree-optimization/101031
4771         * tree-ssa-strlen.c (maybe_invalidate): Increment max_size
4772         instead of size when accounting for a possibly string
4773         terminating nul.
4774
4775 2021-06-14  Martin Liska  <mliska@suse.cz>
4776
4777         * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].
4778
4779 2021-06-14  Aldy Hernandez  <aldyh@redhat.com>
4780
4781         * value-query.cc (gimple_range_global): Call get_range_global
4782         if called after inlining.
4783
4784 2021-06-13  Uroš Bizjak  <ubizjak@gmail.com>
4785
4786         PR target/101021
4787         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
4788         Emit constant permutation insn directly from here.
4789
4790 2021-06-13  Trevor Saunders  <tbsaunde@tbsaunde.org>
4791
4792         * attribs.c (find_attribute_namespace): Iterate over vec<> with
4793         range based for.
4794         * auto-profile.c (afdo_find_equiv_class): Likewise.
4795         * gcc.c (do_specs_vec): Likewise.
4796         (do_spec_1): Likewise.
4797         (driver::set_up_specs): Likewise.
4798         * gimple-loop-jam.c (any_access_function_variant_p): Likewise.
4799         * gimple-ssa-store-merging.c (compatible_load_p): Likewise.
4800         (imm_store_chain_info::try_coalesce_bswap): Likewise.
4801         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
4802         (get_location_for_stmts): Likewise.
4803         * graphite-poly.c (print_iteration_domains): Likewise.
4804         (free_poly_bb): Likewise.
4805         (remove_gbbs_in_scop): Likewise.
4806         (free_scop): Likewise.
4807         (dump_gbb_cases): Likewise.
4808         (dump_gbb_conditions): Likewise.
4809         (print_pdrs): Likewise.
4810         (print_scop): Likewise.
4811         * ifcvt.c (cond_move_process_if_block): Likewise.
4812         * lower-subreg.c (decompose_multiword_subregs): Likewise.
4813         * regcprop.c (pass_cprop_hardreg::execute): Likewise.
4814         * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
4815         * sel-sched-dump.c (dump_insn_vector): Likewise.
4816         * store-motion.c (store_ops_ok): Likewise.
4817         (store_killed_in_insn): Likewise.
4818         * timevar.c (timer::named_items::print): Likewise.
4819         * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise.
4820         (cleanup_tree_cfg_noloop): Likewise.
4821         * tree-data-ref.c (dump_data_references): Likewise.
4822         (print_dir_vectors): Likewise.
4823         (print_dist_vectors): Likewise.
4824         (dump_data_dependence_relations): Likewise.
4825         (dump_dist_dir_vectors): Likewise.
4826         (dump_ddrs): Likewise.
4827         (create_runtime_alias_checks): Likewise.
4828         (free_subscripts): Likewise.
4829         (save_dist_v): Likewise.
4830         (save_dir_v): Likewise.
4831         (invariant_access_functions): Likewise.
4832         (same_access_functions): Likewise.
4833         (access_functions_are_affine_or_constant_p): Likewise.
4834         (find_data_references_in_stmt): Likewise.
4835         (graphite_find_data_references_in_stmt): Likewise.
4836         (free_dependence_relations): Likewise.
4837         (free_data_refs): Likewise.
4838         * tree-inline.c (copy_debug_stmts): Likewise.
4839         * tree-into-ssa.c (dump_currdefs): Likewise.
4840         (rewrite_update_phi_arguments): Likewise.
4841         * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
4842         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
4843         Likewise.
4844         (vect_slp_analyze_node_dependences): Likewise.
4845         (vect_slp_analyze_instance_dependence): Likewise.
4846         (vect_record_base_alignments): Likewise.
4847         (vect_get_peeling_costs_all_drs): Likewise.
4848         (vect_peeling_supportable): Likewise.
4849         * tree-vectorizer.c (vec_info::~vec_info): Likewise.
4850         (vec_info::free_stmt_vec_infos): Likewise.
4851
4852 2021-06-13  Jeff Law  <jeffreyalaw@gmail.com>
4853
4854         * config/h8300/logical.md (<code>qi3_1<cczn>): New pattern.
4855         (andqi3_1<cczn>): Removed.
4856         (<ors>qi3_1): Do not split for IOR/XOR a single bit.
4857         (H8/SX bit logicals): Split out from other patterns.
4858         * config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from
4859         mulqihi3_const_clobber_flags.
4860         (mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly
4861
4862 2021-06-13  H.J. Lu  <hjl.tools@gmail.com>
4863
4864         PR target/101023
4865         * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used
4866         to true if red zone is used.
4867         (ix86_output_indirect_jmp): Replace ix86_red_zone_size with
4868         ix86_red_zone_used.
4869         * config/i386/i386.h (machine_function): Add red_zone_used.
4870         (ix86_red_zone_size): Removed.
4871         (ix86_red_zone_used): New.
4872         * config/i386/i386.md (peephole2 patterns): Replace
4873         ix86_red_zone_size with ix86_red_zone_used.
4874
4875 2021-06-12  Jason Merrill  <jason@redhat.com>
4876
4877         * doc/extend.texi (unused variable attribute): Applies to
4878         structure fields as well.
4879
4880 2021-06-12  Eugene Rozenfeld  <erozen@microsoft.com>
4881
4882         * auto-profile.c (read_profile): fix a typo in an error string
4883
4884 2021-06-11  Thomas Schwinge  <thomas@codesourcery.com>
4885
4886         * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
4887         default argument.
4888         * tree-pretty-print.c (dump_omp_clauses): Update.
4889         (dump_generic_node) <OMP_CLAUSE>: Use it.
4890
4891 2021-06-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
4892
4893         PR target/101016
4894         * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0,
4895         int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for
4896         the polymorphic variants matching code.
4897         (__arm_vld1q_z): Likewise.
4898         (__arm_vld2q): Likewise.
4899         (__arm_vld4q): Likewise.
4900         (__arm_vldrbq_gather_offset): Likewise.
4901         (__arm_vldrbq_gather_offset_z): Likewise.
4902
4903 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
4904
4905         PR tree-optimization/96392
4906         * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype.
4907
4908 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
4909
4910         PR tree-optimization/96392
4911         * fold-const.c (fold_real_zero_addition_p): Take both arguments
4912         of the addition or subtraction, not just the zero.  Use this
4913         other argument in tests for signaling NaNs and signed zeros.
4914         (tree_expr_maybe_real_minus_zero_p): New predicate.
4915         * fold-const.h (fold_real_zero_addition_p): Update prototype.
4916         (tree_expr_maybe_real_minus_zero_p): New function prototype.
4917         * match.pd: Update calls to fold_real_zero_addition_p.
4918         Replace HONOR_NANS with tree_expr_maybe_nan_p.
4919         Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p.
4920         Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p.
4921         * tree-ssa-reassoc.c (eliminate_using_constants): Update
4922         call to fold_real_zero_addition_p.
4923
4924 2021-06-11  Richard Biener  <rguenther@suse.de>
4925
4926         PR tree-optimization/101025
4927         * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process
4928         all refs that require dependence checking.
4929
4930 2021-06-11  Richard Biener  <rguenther@suse.de>
4931
4932         PR tree-optimization/101028
4933         * tree-vect-slp.c (vect_build_slp_tree_2): When SLP
4934         reassoc discovery fails fatally, mark appropriate lanes
4935         in matches[] so.
4936
4937 2021-06-11  Richard Biener  <rguenther@suse.de>
4938
4939         PR tree-optimization/101026
4940         * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we
4941         have a representative for the associated chain nodes.
4942
4943 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
4944
4945         PR rtl-optimization/101008
4946         * simplify-rtx.c (relational_result): New function.
4947         (simplify_logical_relational_operation,
4948         simplify_relational_operation): Use it.
4949
4950 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
4951
4952         PR target/101007
4953         * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2.
4954
4955 2021-06-11  Uroš Bizjak  <ubizjak@gmail.com>
4956
4957         PR target/101021
4958         * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return
4959         false if the permutation can be implemented with constant
4960         permutation instruction in wider mode.
4961         (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb.
4962         Handle V8QImode and V4HImode.
4963
4964 2021-06-11  Martin Liska  <mliska@suse.cz>
4965
4966         PR gcov-profile/100788
4967         * common.opt: Add new option.
4968         * coverage.c (coverage_begin_function): Emit warning instead on
4969         the internal compiler error.
4970         * doc/invoke.texi: Document the option.
4971         * toplev.c (process_options): Enable it by default.
4972
4973 2021-06-11  Richard Biener  <rguenther@suse.de>
4974
4975         PR middle-end/101009
4976         * tree-data-ref.c (build_classic_dist_vector_1): Make sure
4977         to set *init_b to true when we encounter a constant equal
4978         index pair.
4979         (compute_affine_dependence): Also dump the actual DR_REF.
4980
4981 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
4982
4983         PR tree-optimization/100984
4984         * gimple-ssa-evrp.c  (ssa_equiv_stack): Use auto_vec for
4985         replacements table.
4986         (ssa_equiv_stack::~ssa_equiv_stack): Remove.
4987
4988 2021-06-11  Kewen Lin  <linkw@linux.ibm.com>
4989
4990         * config/rs6000/rs6000.md
4991         (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New
4992         define_insn_and_split.
4993
4994 2021-06-11  Richard Biener  <rguenther@suse.de>
4995
4996         * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
4997         to sort operands of the associative chain.
4998
4999 2021-06-11  Richard Biener  <rguenther@suse.de>
5000
5001         * system.h (gcc_stablesort_r): Declare.
5002         * sort.cc (gcc_sort_r): Support stable sort.
5003         (gcc_stablesort_r): Define.
5004         * vec.h (vec<>::stablesort): Add.
5005
5006 2021-06-10  Uroš Bizjak  <ubizjak@gmail.com>
5007
5008         PR target/89021
5009         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
5010         Handle V2SF mode.  Emit SHUFPS to fixup unpack-high for V2SF mode.
5011         (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1.
5012         (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3.
5013         (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1.
5014         (expand_vec_perm_interleave2): Handle 64bit modes.
5015         (expand_vec_perm_even_odd_pack): Handle V8QI mode.
5016         (expand_vec_perm_even_odd_1): Ditto.
5017         (ix86_vectorize_vec_perm_const): Ditto.
5018         * config/i386/i386.md (UNSPEC_PSHUFB): Move from ...
5019         * config/i386/sse.md: ... here.
5020         * config/i386/mmx.md (*vec_interleave_lowv2sf):
5021         New insn_and_split pattern.
5022         (*vec_interleave_highv2sf): Ditto.
5023         (mmx_pshufbv8qi3): New insn pattern.
5024         (*mmx_pblendw): Ditto.
5025
5026 2021-06-10  Peter Bergner  <bergner@linux.ibm.com>
5027
5028         * config/rs6000/rs6000-builtin.def (build_pair): New built-in.
5029         (build_acc): Likewise.
5030         * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble
5031         source operands in little-endian mode.
5032         (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR.
5033         (mma_init_builtins): Likewise.
5034         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness
5035         ordering for the MMA assemble and build source operands.
5036         * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair):
5037         Document.
5038         (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
5039         documentation.
5040
5041 2021-06-10  Jeff Law  <jeffreyalaw@gmail.com>
5042
5043         * config/h8300/h8300.c (select_cc_mode): Handle MEM.  Use
5044         REG_P.
5045         * config/h8300/extensions.md: Replace _clobber_flags patterns
5046         with <cczn>.
5047
5048 2021-06-10  Robin Dapp  <rdapp@linux.ibm.com>
5049
5050         * config/s390/vector.md (vcond_mask_<mode><mode>): Change to
5051         (vcond_mask_<mode><tointvec>): this.
5052
5053 2021-06-10  Andrew Stubbs  <ams@codesourcery.com>
5054             Thomas Schwinge  <thomas@codesourcery.com>
5055
5056         * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into...
5057         (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these.
5058         * gimple.h (enum gf_mask): Split
5059         'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into
5060         'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and
5061         'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'.
5062         (is_gimple_omp_oacc): Update.
5063         * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
5064         * gimplify.c (gimplify_omp_target_update): Likewise.
5065         * omp-expand.c (expand_omp_target, build_omp_regions_1)
5066         (omp_make_gimple_edges): Likewise.
5067         * omp-low.c (check_omp_nesting_restrictions, lower_omp_target):
5068         Likewise.
5069
5070 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
5071
5072         * value-query.cc (value_query::value_on_edge): Rename name to
5073         expr.
5074         (range_query::range_on_edge): Same.
5075         (range_query::value_of_expr): Same.
5076         (range_query::value_on_edge): Same.
5077         * value-query.h (class value_query): Same.
5078         (class range_query): Same.
5079
5080 2021-06-10  Richard Biener  <rguenther@suse.de>
5081
5082         PR tree-optimization/101003
5083         * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately
5084         use the pattern stmt defs when linearizing a chain.
5085
5086 2021-06-10  Jakub Jelinek  <jakub@redhat.com>
5087
5088         PR debug/100852
5089         * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use
5090         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
5091
5092 2021-06-10  Clement Chigot  <clement.chigot@atos.net>
5093
5094         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive.
5095         * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
5096
5097 2021-06-09  Andrew Pinski  <apinski@marvell.com>
5098
5099         PR tree-optimization/100925
5100         * match.pd (a ? CST1 : CST2): Limit transformations
5101         that would produce a negative to integeral types only.
5102         Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also.
5103
5104 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
5105
5106         Revert:
5107         2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
5108
5109         * doc/tm.texi: Correctly update.
5110
5111 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
5112
5113         * doc/tm.texi: Correctly update.
5114
5115 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
5116
5117         PR other/100735
5118         * doc/tm.texi.in (Trampolines): Add a missing blank line.
5119
5120 2021-06-09  Paul Eggert  <eggert@cs.ucla.edu>
5121
5122         PR other/100735
5123         * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines
5124         and -ftrampolines work only with Ada.
5125         * doc/tm.texi.in (Trampolines): Likewise.
5126         * doc/tm.texi: Regenerated.
5127
5128 2021-06-09  Carl Love  <cel@us.ibm.com>
5129
5130         * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq):
5131         Add define for new builtins.
5132         * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand.
5133         * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL):  Add
5134         overloaded builtin definitions.
5135         (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D,
5136         VSIGNEXTSD2Q):  Add builtin expansions.
5137         (SIGNEXT): Add P10 overload definition.
5138         * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL,
5139         P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions.
5140         * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn.
5141         (vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>,
5142         vsignextend_si_v2di)[VIlong]: Add define_expand.
5143         Make define_insn vsx_sign_extend_si_v2di visible.
5144         * doc/extend.texi:  Add documentation for the vec_signexti,
5145         vec_signextll builtins and vec_signextq.
5146
5147 2021-06-09  Carl Love  <cel@us.ibm.com>
5148
5149         * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf,
5150         __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw,
5151         __floattikf_sw, __floatuntikf_sw respectively.
5152         * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
5153         fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add
5154         define_insn for mode IEEE 128.
5155
5156 2021-06-09  Carl Love  <cel@us.ibm.com>
5157
5158         * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq):
5159         Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI.
5160         * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md.
5161         (vashlv1ti3): Change to vashl<mode>3, mode VEC_TI.
5162         (vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI.
5163         * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update
5164         uses of VSX_TI to VEC_TI.
5165
5166 2021-06-09  Carl Love  <cel@us.ibm.com>
5167
5168         * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns.
5169
5170 2021-06-09  Carl Love  <cel@us.ibm.com>
5171
5172         * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new
5173         builtins.
5174         * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD,
5175         UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs.
5176         (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud,
5177         altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq,
5178         altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm,
5179         altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq,
5180         altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New
5181         define_insn.
5182         (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di,
5183         vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi,
5184         altivec_vrlqnm): New define_expands.
5185         * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P,
5186         VCMPGTUT_P): Add macro expansions.
5187         (BU_P10V_AV_P): Add builtin predicate definition.
5188         (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI,
5189         CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P,
5190         VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ,
5191         VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI,
5192         MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions.
5193         (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions.
5194         * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT,
5195         P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI,
5196         P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST,
5197         P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI,
5198         P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI,
5199         P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD,
5200         P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD,
5201         P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS,
5202         P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI,
5203         P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ,
5204         P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ,
5205         P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P,
5206         P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P,
5207         P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET,
5208         P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P,
5209         P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI,
5210         P10V_BUILTIN_MODU_V1TI):
5211         New overloaded definitions.
5212         (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT,
5213         P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI,
5214         P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT,
5215         P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI,
5216         P10V_BUILTIN_CMPLE_U1TI]: New case statements.
5217         (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]:
5218         New assignments.
5219         (altivec_init_builtins): New E_V1TImode case statement.
5220         (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD,
5221         P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI,
5222         P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI,
5223         P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements.
5224         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode,
5225         E_V1TImode]: New case statements.
5226         * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum
5227         value RS6000_BTI_bool_V1TI.
5228         * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti,
5229         vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti,
5230         vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p,
5231         vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3,
5232         vlshrv1ti3, vashrv1ti3): New define_expands.
5233         * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ,
5234         UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ,
5235         UNSPEC_VSX_MODUQ): New unspecs.
5236         (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti,
5237         vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New
5238         define_insns.
5239         (vcmpnet): New define_expand.
5240         * doc/extend.texi: Add documentation for the new builtins vec_rl,
5241         vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo,
5242         vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt,
5243         vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt,
5244         vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt,
5245         vec_any_ge, vec_any_le.
5246
5247 2021-06-09  Carl Love  <cel@us.ibm.com>
5248
5249         * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix
5250         bug in argument generation.
5251
5252 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
5253
5254         * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S.
5255         (VCLZQ): Remove.
5256         * config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix,
5257         remove <supf> iterator.
5258         (mve_vclzq_u<mode>): New.
5259         * config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>.
5260         (neon_vclz<mode): Move to ...
5261         * config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove.
5262         * config/arm/vec-common.md: ... here. Add support for MVE.
5263
5264 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
5265
5266         * config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'.
5267         (@mve_vrhaddq_<supf><mode): Likewise.
5268         * config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise.
5269         * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
5270         (avg<mode>3_ceil", uavg<mode>3_ceil): New patterns.
5271
5272 2021-06-09  imba-tjd  <109224573@qq.com>
5273
5274         * doc/invoke.texi: Fix typo.
5275
5276 2021-06-09  Roger Sayle  <roger@nextmovesoftware.com>
5277
5278         PR middle-end/53267
5279         * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]:
5280         Support evaluation of fmod/fmodf/fmodl at compile-time.
5281
5282 2021-06-09  Richard Biener  <rguenther@suse.de>
5283
5284         PR tree-optimization/100981
5285         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
5286         gimple_get_lhs to also handle calls.
5287         * tree-vect-slp-patterns.c (complex_pattern::build): Transfer
5288         reduction info.
5289
5290 2021-06-09  Richard Biener  <rguenther@suse.de>
5291
5292         PR tree-optimization/97832
5293         * tree-vectorizer.h (_slp_tree::failed): New.
5294         * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
5295         failed member.
5296         (_slp_tree::~_slp_tree): Free failed.
5297         (vect_build_slp_tree): Retain failed nodes and record
5298         matches in them, copying that back out when running
5299         into a cached fail.  Dump start and end of discovery.
5300         (dt_sort_cmp): New.
5301         (vect_build_slp_tree_2): Handle associatable chains
5302         together doing more aggressive operand swapping.
5303
5304 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
5305
5306         PR target/100896
5307         * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
5308         GNU targets.
5309         * doc/install.texi: Require glibc 2.1 and binutils 2.12 for
5310         Linux and GNU targets.
5311
5312 2021-06-09  Richard Biener  <rguenther@suse.de>
5313
5314         * tree-vect-stmts.c (vect_is_simple_use): Always get dt
5315         from the stmt.
5316
5317 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
5318
5319         * config/arc/arc.md (loop_end): Change it to
5320         define_insn_and_split.
5321
5322 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
5323
5324         * config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
5325         (machi): New pattern.
5326         (umaddhisi4): Use VMAC2HU instruction.
5327         (umachi): New pattern.
5328
5329 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
5330
5331         * config/arc/arc-protos.h (arc_split_move_p): New prototype.
5332         * config/arc/arc.c (arc_split_move_p): New function.
5333         (arc_split_move): Clean up.
5334         * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
5335         (movdf_insn): Likewise.
5336         * config/arc/simdext.md (mov<VWH>_insn): Likewise.
5337
5338 2021-06-09  Uroš Bizjak  <ubizjak@gmail.com>
5339
5340         PR target/100936
5341         * config/i386/i386.c (print_operand_address_as): Rename "no_rip"
5342         argument to "raw".  Do not emit segment overrides when "raw" is true.
5343
5344 2021-06-09  Martin Liska  <mliska@suse.cz>
5345
5346         * doc/gcov.texi: Create a proper JSON files.
5347         * doc/invoke.texi: Remove dots in order to make it a valid
5348         JSON object.
5349
5350 2021-06-09  Xionghu Luo  <luoxhu@linux.ibm.com>
5351
5352         * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New.
5353         (insn_is_load_p): Use pattern_is_rotate64.
5354         (insn_is_swap_p): Likewise.
5355         (quad_aligned_load_p): Likewise.
5356         (const_load_sequence_p): Likewise.
5357         (replace_swapped_aligned_load): Likewise.
5358         (recombine_lvx_pattern): Likewise.
5359         (recombine_stvx_pattern): Likewise.
5360
5361 2021-06-09  Andrew MacLeod  <amacleod@redhat.com>
5362
5363         * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a
5364         fur_stmt source record.
5365         * gimple-range.cc (fur_source::get_operand): Generic range query.
5366         (fur_source::get_phi_operand): New.
5367         (fur_source::register_dependency): New.
5368         (fur_source::query): New.
5369         (class fur_edge): New.  Edge source for operands.
5370         (fur_edge::fur_edge): New.
5371         (fur_edge::get_operand): New.
5372         (fur_edge::get_phi_operand): New.
5373         (fur_edge::query): New.
5374         (fur_stmt::fur_stmt): New.
5375         (fur_stmt::get_operand): New.
5376         (fur_stmt::get_phi_operand): New.
5377         (fur_stmt::query): New.
5378         (class fur_depend): New.  Statement source and process dependencies.
5379         (fur_depend::fur_depend): New.
5380         (fur_depend::register_dependency): New.
5381         (class fur_list): New.  List source for operands.
5382         (fur_list::fur_list): New.
5383         (fur_list::get_operand): New.
5384         (fur_list::get_phi_operand): New.
5385         (fold_range): New.  Instantiate appropriate fur_source class and fold.
5386         (fold_using_range::range_of_range_op): Use new API.
5387         (fold_using_range::range_of_address): Ditto.
5388         (fold_using_range::range_of_phi): Ditto.
5389         (imple_ranger::fold_range_internal): Use fur_depend class.
5390         (fold_using_range::range_of_ssa_name_with_loop_info): Use new API.
5391         * gimple-range.h (class fur_source): Now a base class.
5392         (class fur_stmt): New.
5393         (fold_range): New prototypes.
5394         (fur_source::fur_source): Delete.
5395
5396 2021-06-08  Andrew Pinski  <apinski@marvell.com>
5397
5398         PR tree-optimization/25290
5399         * tree-ssa-phiopt.c (xor_replacement): Delete.
5400         (tree_ssa_phiopt_worker): Delete use of xor_replacement.
5401         (match_simplify_replacement): Allow one cheap preparation
5402         statement that can be moved to before the if.
5403
5404 2021-06-08  Pat Haugen  <pthaugen@linux.ibm.com>
5405
5406         * config/rs6000/power10.md (power10-fused-load, power10-fused-store,
5407         power10-fused_alu, power10-fused-vec, power10-fused-branch): New.
5408
5409 2021-06-08  Jeff Law  <jeffreyalaw@gmail.com>
5410
5411         * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split.
5412         Create length attribute on define_insn_and_split.  Only split for cases which we
5413         know will use AND.
5414         (andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags.  Only handle AND here and
5415         fix length computation.
5416         (b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator.
5417
5418 2021-06-08  Richard Biener  <rguenther@suse.de>
5419
5420         PR tree-optimization/100923
5421         * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
5422         the operand vector to be valueized.
5423         (valueize_refs): Likewise.
5424         (valueize_shared_reference_ops_from_ref): Adjust.
5425         (valueize_shared_reference_ops_from_call): Likewise.
5426         (vn_reference_lookup_3): Likewise.
5427         (vn_reference_lookup_pieces): Likewise.  Re-valueize
5428         with honoring availability when we are about to create
5429         the ao_ref and valueized before.
5430         (vn_reference_lookup): Likewise.
5431         (vn_reference_insert_pieces): Adjust.
5432
5433 2021-06-08  Richard Biener  <rguenther@suse.de>
5434
5435         * tree-vectorizer.h (_slp_instance::root_stmt): Change to...
5436         (_slp_instance::root_stmts): ... a vector.
5437         (SLP_INSTANCE_ROOT_STMT): Rename to ...
5438         (SLP_INSTANCE_ROOT_STMTS): ... this.
5439         (slp_root::root): Change to...
5440         (slp_root::roots): ... a vector.
5441         (slp_root::slp_root): Adjust.
5442         * tree-vect-slp.c (_slp_instance::location): Adjust.
5443         (vect_free_slp_instance): Release the root stmt vector.
5444         (vect_build_slp_instance): Adjust.
5445         (vect_analyze_slp): Likewise.
5446         (_bb_vec_info::~_bb_vec_info): Likewise.
5447         (vect_slp_analyze_operations): Likewise.
5448         (vect_bb_vectorization_profitable_p): Likewise.  Adjust
5449         costs for the root stmt.
5450         (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs
5451         as root stmts.
5452         (vect_slp_analyze_bb_1): Simplify by marking all root stmts
5453         as pure_slp.
5454         (vectorize_slp_instance_root_stmt): Adjust.
5455         (vect_schedule_slp): Likewise.
5456
5457 2021-06-08  Aldy Hernandez  <aldyh@redhat.com>
5458
5459         * gimple-ssa-evrp.c (class ssa_equiv_stack): New.
5460         (ssa_equiv_stack::ssa_equiv_stack): New.
5461         (ssa_equiv_stack::~ssa_equiv_stack): New.
5462         (ssa_equiv_stack::enter): New.
5463         (ssa_equiv_stack::leave): New.
5464         (ssa_equiv_stack::push_replacement): New.
5465         (ssa_equiv_stack::get_replacement): New.
5466         (is_pointer_ssa): New.
5467         (class pointer_equiv_analyzer): New.
5468         (pointer_equiv_analyzer::pointer_equiv_analyzer): New.
5469         (pointer_equiv_analyzer::~pointer_equiv_analyzer): New.
5470         (pointer_equiv_analyzer::set_global_equiv): New.
5471         (pointer_equiv_analyzer::set_cond_equiv): New.
5472         (pointer_equiv_analyzer::get_equiv): New.
5473         (pointer_equiv_analyzer::enter): New.
5474         (pointer_equiv_analyzer::leave): New.
5475         (pointer_equiv_analyzer::get_equiv_expr): New.
5476         (pta_valueize): New.
5477         (pointer_equiv_analyzer::visit_stmt): New.
5478         (pointer_equiv_analyzer::visit_edge): New.
5479         (hybrid_folder::value_of_expr): Call PTA.
5480         (hybrid_folder::value_on_edge): Same.
5481         (hybrid_folder::pre_fold_bb): New.
5482         (hybrid_folder::post_fold_bb): New.
5483         (hybrid_folder::pre_fold_stmt): New.
5484         (rvrp_folder::pre_fold_bb): New.
5485         (rvrp_folder::post_fold_bb): New.
5486         (rvrp_folder::pre_fold_stmt): New.
5487         (rvrp_folder::value_of_expr): Call PTA.
5488         (rvrp_folder::value_on_edge): Same.
5489
5490 2021-06-08  Jakub Jelinek  <jakub@redhat.com>
5491
5492         PR c++/100957
5493         * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't
5494         check TREE_CODE if OMP_CLAUSE_DECL is NULL.
5495
5496 2021-06-08  Richard Biener  <rguenther@suse.de>
5497
5498         PR middle-end/100951
5499         * tree-vect-generic.c (expand_vector_piecewise): Build a
5500         VECTOR_CST if all elements are constant.
5501         (expand_vector_condition): Likewise.
5502         (lower_vec_perm): Likewise.
5503         (expand_vector_conversion): Likewise.
5504
5505 2021-06-08  Martin Liska  <mliska@suse.cz>
5506
5507         * doc/invoke.texi: Document new param evrp-sparse-threshold.
5508
5509 2021-06-08  Martin Liska  <mliska@suse.cz>
5510
5511         * genautomata.c (create_automata): Fix typo.
5512
5513 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
5514
5515         PR tree-optimization/100794
5516         * tree-predcom.c (tree_predictive_commoning_loop): Add parameter
5517         allow_unroll_p and only allow unrolling when it's true.
5518         (tree_predictive_commoning): Add parameter allow_unroll_p and
5519         adjust for it.
5520         (run_tree_predictive_commoning): Likewise.
5521         (pass_predcom::gate): Check flag_tree_loop_vectorize and
5522         global_options_set.x_flag_predictive_commoning.
5523         (pass_predcom::execute): Adjust for allow_unroll_p.
5524
5525 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
5526
5527         * tree-predcom.c (execute_pred_commoning): Remove update_ssa call.
5528         (tree_predictive_commoning_loop): Factor some cleanup stuffs into
5529         lambda function cleanup, remove scev_reset call, and adjust return
5530         value.
5531         (tree_predictive_commoning): Adjust for different changed values,
5532         only set flag TODO_update_ssa_only_virtuals if changed.
5533         (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals
5534         from todo_flags_finish.
5535
5536 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
5537
5538         * gimple-range-cache.cc (class sbr_sparse_bitmap): New.
5539         (sbr_sparse_bitmap::sbr_sparse_bitmap): New.
5540         (sbr_sparse_bitmap::bitmap_set_quad): New.
5541         (sbr_sparse_bitmap::bitmap_get_quad): New.
5542         (sbr_sparse_bitmap::set_bb_range): New.
5543         (sbr_sparse_bitmap::get_bb_range): New.
5544         (sbr_sparse_bitmap::bb_range_p): New.
5545         (block_range_cache::block_range_cache): initialize bitmap obstack.
5546         (block_range_cache::~block_range_cache): Destruct obstack.
5547         (block_range_cache::set_bb_range): Decide when to utilze the
5548         sparse on entry cache.
5549         * gimple-range-cache.h (block_range_cache): Add bitmap obstack.
5550         * params.opt (-param=evrp-sparse-threshold): New.
5551
5552 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
5553
5554         * bitmap.c (bitmap_set_aligned_chunk): New.
5555         (bitmap_get_aligned_chunk): New.
5556         (test_aligned_chunk): New.
5557         (bitmap_c_tests): Call test_aligned_chunk.
5558         * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New.
5559
5560 2021-06-07  Uroš Bizjak  <ubizjak@gmail.com>
5561
5562         PR target/100637
5563         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
5564         Handle V4QI mode.
5565         (ix86_expand_vector_init_one_nonzero): Ditto.
5566         (ix86_expand_vector_init_one_var): Ditto.
5567         (ix86_expand_vector_init_general): Ditto.
5568         * config/i386/mmx.md (vec_initv4qiqi): New expander.
5569
5570 2021-06-07  Jeff Law  <jeffreyalaw@gmail.com>
5571
5572         * config/h8300/movepush.md: Change most _clobber_flags
5573         patterns to instead use <cczn> subst.
5574         (movsi_cczn): New pattern with usable CC cases split out.
5575         (movsi_h8sx_cczn): Likewise.
5576
5577 2021-06-07  Martin Liska  <mliska@suse.cz>
5578
5579         * common/common-target.def: Split long lines and replace them
5580         with '\n\'.
5581         * target.def: Likewise.
5582         * doc/tm.texi: Re-generated.
5583
5584 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
5585
5586         PR target/100887
5587         * fold-const.c (fold_read_from_vector): Return NULL if trying to
5588         read from a CONSTRUCTOR with vector type elements.
5589
5590 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
5591
5592         PR middle-end/100898
5593         * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy
5594         should copy any arguments.  Don't call gimple_call_num_args
5595         on id->call_stmt or call_stmt more than once.
5596
5597 2021-06-07  liuhongt  <hongtao.liu@intel.com>
5598
5599         PR target/100885
5600         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine
5601         constraints.
5602         (<insn>v4siv4di2): Delete constraints for define_expand.
5603
5604 2021-06-07  liuhongt  <hongtao.liu@intel.com>
5605
5606         PR target/82735
5607         * config/i386/i386-expand.c (ix86_expand_builtin): Remove
5608         assignment of cfun->machine->has_explicit_vzeroupper.
5609         * config/i386/i386-features.c
5610         (ix86_add_reg_usage_to_vzerouppers): Delete.
5611         (ix86_add_reg_usage_to_vzeroupper): Ditto.
5612         (rest_of_handle_insert_vzeroupper): Remove
5613         ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end
5614         of the function.
5615         (gate): Remove cfun->machine->has_explicit_vzeroupper.
5616         * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper):
5617         Declared.
5618         * config/i386/i386.c (ix86_insn_callee_abi): New function.
5619         (ix86_initialize_callee_abi): Ditto.
5620         (ix86_expand_avx_vzeroupper): Ditto.
5621         (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper
5622         ABI.
5623         (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi.
5624         (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper
5625         directly.
5626         * config/i386/i386.h (struct GTY(()) machine_function): Delete
5627         has_explicit_vzeroupper.
5628         * config/i386/i386.md (enum unspec): New member
5629         UNSPEC_CALLEE_ABI.
5630         (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New
5631         define_constants for insn callee abi index.
5632         * config/i386/predicates.md (vzeroupper_pattern): Adjust.
5633         * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted.
5634         (avx_vzeroupper): Call ix86_expand_avx_vzeroupper.
5635         (*avx_vzeroupper): Rename to ..
5636         (avx_vzeroupper_callee_abi): .. this, and adjust pattern as
5637         call_insn which has a special vzeroupper ABI.
5638         (*avx_vzeroupper_1): Deleted.
5639
5640 2021-06-07  liuhongt  <hongtao.liu@intel.com>
5641
5642         PR target/82735
5643         * df-scan.c (df_get_call_refs): When call_insn is a fake call,
5644         it won't use stack pointer reg.
5645         * final.c (leaf_function_p): When call_insn is a fake call, it
5646         won't affect caller as a leaf function.
5647         * reg-stack.c (callee_clobbers_any_stack_reg): New.
5648         (subst_stack_regs): When call_insn doesn't clobber any stack
5649         reg, don't clear the arguments.
5650         * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is
5651         a insn.
5652         * shrink-wrap.c (requires_stack_frame_p): No need for stack
5653         frame for a fake call.
5654         * rtl.h (FAKE_CALL_P): New macro.
5655
5656 2021-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5657
5658         * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename
5659         to...
5660         (sparc_order_regs_for_local_alloc): ...this.
5661         (sparc_leaf_reg_remap): Declare.
5662         * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust.
5663         (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap.
5664         * config/sparc/sparc.c (leaf_reg_remap): Delete.
5665         (order_regs_for_local_alloc): Rename to...
5666         (sparc_order_regs_for_local_alloc): ...this.
5667         (sparc_leaf_reg_remap): New function.
5668         (sparc_conditional_register_usage): Do not modify leaf_reg_remap.
5669
5670 2021-06-06  David Edelsohn  <dje.gcc@gmail.com>
5671
5672         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common):
5673         Use assemble_name to output BSS section name.
5674
5675 2021-06-06  Uroš Bizjak  <ubizjak@gmail.com>
5676
5677         * config/i386/constraints.md (Bs):
5678         Remove boolean operators from match_test RTX.
5679         (Bw): Ditto.
5680         (L): Ditto.
5681         (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
5682         (Wz): Ditto.
5683
5684 2021-06-06  Martin Liska  <mliska@suse.cz>
5685
5686         * doc/extend.texi: Add missing @headitem.
5687         * doc/invoke.texi: Likewise.
5688         * doc/objc.texi: Likewise.
5689
5690 2021-06-06  Martin Liska  <mliska@suse.cz>
5691
5692         * genhooks.c (emit_findices): Remove unused function.
5693         (emit_documentation): Do not call emit_findices
5694         and do not search for @Fcode directives.
5695
5696 2021-06-06  Martin Liska  <mliska@suse.cz>
5697
5698         * doc/invoke.texi: Remove extra character.
5699
5700 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
5701
5702         * config/sh/sh.md (doloop_end_split): Fix empty split condition.
5703
5704 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
5705
5706         * config/sparc/sparc.md (*snedi<W:mode>_zero_vis3,
5707         *neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero,
5708         *plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero,
5709         *minus_minus_snedi<W:mode>_zero): Fix empty split condition.
5710
5711 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
5712
5713         * config/or1k/or1k.md (*movdi): Fix empty split condition.
5714
5715 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
5716
5717         * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty
5718         split condition.
5719
5720 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
5721
5722         * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec,
5723         *zero_extendsidi2): Fix empty split condition.
5724
5725 2021-06-05  Jeff Law  <jeffreyalaw@gmail.com>
5726
5727         * config/h8300/addsub.md: Fix split condition in define_insn_and_split
5728         patterns.
5729         * config/h8300/bitfield.md: Likewise.
5730         * config/h8300/combiner.md: Likewise.
5731         * config/h8300/divmod.md: Likewise.
5732         * config/h8300/extensions.md: Likewise.
5733         * config/h8300/jumpcall.md: Likewise.
5734         * config/h8300/movepush.md: Likewise.
5735         * config/h8300/multiply.md: Likewise.
5736         * config/h8300/other.md: Likewise.
5737         * config/h8300/shiftrotate.md: Likewise.
5738         * config/h8300/logical.md: Likewise.  Fix split pattern to use
5739         code iterator that somehow slipped through.
5740
5741 2021-06-04  Tobias Burnus  <tobias@codesourcery.com>
5742
5743         PR middle-end/100905
5744         * tree-nested.c (convert_nonlocal_omp_clauses,
5745         convert_local_omp_clauses): Handle OMP_CLAUSE_BIND.
5746
5747 2021-06-04  Martin Sebor  <msebor@redhat.com>
5748
5749         PR middle-end/100732
5750         * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls
5751         with either source or destination argument of invalid type.
5752         * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking
5753         calls with arguments of invalid type.
5754
5755 2021-06-04  Martin Sebor  <msebor@redhat.com>
5756
5757         * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected
5758         order.
5759         (attr_access::vla_bounds): Also handle VLA bounds.
5760
5761 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
5762
5763         * config/i386/predicates.md (GOT_memory_operand):
5764         Implement using match_code RTXes.
5765         (GOT32_symbol_operand): Ditto.
5766
5767 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
5768
5769         PR target/100637
5770         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
5771         Handle V2HI mode.
5772         (ix86_expand_vector_init_general): Ditto.
5773         Use SImode instead of word_mode for logic operations
5774         when GET_MODE_SIZE (mode) < UNITS_PER_WORD.
5775         (expand_vec_perm_even_odd_1): Assert that V2HI mode should be
5776         implemented by expand_vec_perm_1.
5777         (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes
5778         should be implemented using standard shuffle patterns.
5779         (ix86_vectorize_vec_perm_const): Handle V2HImode.  Add V4HI and
5780         V2HI modes to modes, implementable with shuffle for one operand.
5781         * config/i386/mmx.md (*punpckwd): New insn_and_split pattern.
5782         (*pshufw_1): New insn pattern.
5783         (*vec_dupv2hi): Ditto.
5784         (vec_initv2hihi): New expander.
5785
5786 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
5787
5788         * config/arm/vfp.md (no_literal_pool_df_immediate,
5789         no_literal_pool_sf_immediate): Fix empty split condition.
5790
5791 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
5792
5793         * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext,
5794         *tls_dynamic_gnu2_combine_32): Fix empty split condition.
5795         * config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt,
5796         *<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt,
5797         *<sse4_1_avx2>_pblendvb_lt): Likewise.
5798
5799 2021-06-04  Jakub Jelinek  <jakub@redhat.com>
5800
5801         PR target/100887
5802         * config/i386/i386-expand.c (ix86_expand_vector_init): Handle
5803         concatenation from half-sized modes with TImode elements.
5804
5805 2021-06-04  Claudiu Zissulescu  <claziss@synopsys.com>
5806
5807         * config/arc/arc.c (arc_override_options): Disable millicode
5808         thunks when RF16 is on.
5809
5810 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
5811
5812         * config/rs6000/rs6000.h (PROMOTE_MODE): Remove.
5813
5814 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
5815
5816         * config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
5817         Replace PROMOTE_MODE marco with its content.
5818
5819 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
5820
5821         * config/cris/cris.md (*addi_reload): Fix empty split condition.
5822
5823 2021-06-03  Jim Wilson  <jimw@sifive.com>
5824
5825         * config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
5826         turn it on for all riscv targets.
5827
5828 2021-06-03  Uroš Bizjak  <ubizjak@gmail.com>
5829
5830         PR target/100637
5831         * config/i386/i386-expand.c (ix86_expand_vector_set):
5832         Handle V2HI and V4QI modes.
5833         (ix86_expand_vector_extract): Ditto.
5834         * config/i386/mmx.md (*pinsrw): New insn pattern.
5835         (*pinsrb): Ditto.
5836         (*pextrw): Ditto.
5837         (*pextrw_zext): Ditto.
5838         (*pextrb): Ditto.
5839         (*pextrb_zext): Ditto.
5840         (vec_setv2hi): New expander.
5841         (vec_extractv2hihi): Ditto.
5842         (vec_setv4qi): Ditto.
5843         (vec_extractv4qiqi): Ditto.
5844         (vec_setv8qi): Enable only for TARGET_SSE4_1.
5845         (vec_extractv8qiqi): Ditto.
5846
5847 2021-06-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
5848
5849         * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input
5850         order to subf instruction.
5851         * config/rs6000/fusion.md: Regenerate.
5852
5853 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
5854
5855         * calls.c (get_size_range): Use range_of_expr instead of
5856         determine_value_range.
5857         * tree-affine.c (expr_to_aff_combination): Same.
5858         * tree-data-ref.c (split_constant_offset): Same.
5859         * tree-vrp.c (determine_value_range_1): Remove.
5860         (determine_value_range): Remove.
5861         * tree-vrp.h (determine_value_range): Remove.
5862
5863 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
5864
5865         * function-tests.c (test_ranges): Call gimple_range_tests.
5866         * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt
5867         to get_tree_range.
5868         * gimple-range.cc (fur_source::get_operand): Do not call
5869         get_tree_range or gimple_range_global.
5870         get_tree_range.
5871         (get_tree_range): Move to value-query.cc.
5872         Call get_arith_expr_range.
5873         (gimple_ranger::range_of_expr): Add argument to get_tree_range.
5874         Include gimple-range-tests.cc.
5875         * gimple-range.h (fold_range): Add argument.
5876         (get_tree_range): Remove.
5877         * selftest.h (gimple_range_tests): New.
5878         * value-query.cc (global_range_query::range_of_expr): Add
5879         stmt argument.
5880         (range_query::get_tree_range): Move from gimple-range.cc.
5881         * value-query.h (class range_query): Add get_tree_range and
5882         get_arith_expr_range.  Make fur_source a friend.
5883         * vr-values.c (vr_values::range_of_expr): Pass stmt to
5884         get_tree_range.
5885         * gimple-range-tests.cc: New file.
5886
5887 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
5888
5889         * gimple-range.cc (gimple_ranger::export_global_ranges): Call
5890           update_global_range.
5891         * value-query.cc (update_global_range): New.
5892         * value-query.h (update_global_range): New.
5893
5894 2021-06-03  David Malcolm  <dmalcolm@redhat.com>
5895
5896         * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject
5897         printing the same location twice if there are fix-it hints,
5898         multiple locations, or a label.
5899
5900 2021-06-03  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5901
5902         * tree-vect-loop.c (vect_transform_loop): Use main loop's various'
5903         thresholds to narrow the upper bound on epilogue iterations.
5904
5905 2021-06-03  Christophe Lyon  <christophe.lyon@linaro.org>
5906
5907         * config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec.
5908         (mve_vabsq_s<mode>): Likewise.
5909         * config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2.
5910         * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete.
5911         * config/arm/vec-common.md (neg<mode>2): Rename to
5912         <absneg_str><mode>2.
5913
5914 2021-06-03  Claudiu Zissulescu  <claziss@synopsys.com>
5915
5916         * common/config/arc/arc-common.c (arc_option_optimization_table):
5917         Remove malign-call.
5918         * config/arc/arc.c (arc_unalign_branch_p): Remove unused function.
5919         * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro.
5920         (INDEX_REG_CLASS): Only refer to GENERAL_REGS.
5921         * config/arc/arc.md (abssi2_mixed): Remove pattern.
5922         * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete.
5923         (malign-call): Likewise.
5924         (mmixed-code): Likewise.
5925         * doc/invoke.texi (ARC): Update doc.
5926
5927 2021-06-03  Martin Liska  <mliska@suse.cz>
5928
5929         * common.opt: Use proper Enum values.
5930         * opts.c (COVERAGE_SANITIZER_OPT): Remove.
5931         (parse_sanitizer_options): Handle only sanitizer_opts.
5932         (common_handle_option): Just assign value.
5933
5934 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
5935
5936         PR ipa/99122
5937         * tree-inline.c (inline_forbidden_p): Remove test on return type.
5938
5939 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
5940
5941         * dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate
5942         DW_OP_GNU_variable_value referencing an existing DIE at file scope.
5943         (type_byte_size): Inline into...
5944         (add_byte_size_attribute): ...this and call add_scalar_info.
5945
5946 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
5947
5948         * dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo.
5949         (typed_binop_from_tree): New function.
5950         (loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type,
5951         turn a divide by a power of 2 into a shift.
5952         <CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the
5953         size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a
5954         typed divide by calling typed_binop_from_tree.
5955
5956 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
5957
5958         * dwarf2out.c (scompare_loc_descriptor): Fix head comment.
5959         (is_handled_procedure_type): Likewise.
5960         (struct loc_descr_context): Add strict_signedness field.
5961         (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type,
5962         DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret.
5963         (resolve_args_picking): Minor tweak.
5964         (function_to_dwarf_procedure): Initialize strict_signedness field.
5965         (type_byte_size): Likewise.
5966         (field_byte_offset): Likewise.
5967         (gen_descr_array_type_die): Likewise.
5968         (gen_variant_part): Likewise.
5969         (loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness
5970         to true when a context is present before evaluating the arguments.
5971         <COND_EXPR>: Do not generate a useless comparison with zero.
5972         When dereferencing an address, if strict_signedness is true and the
5973         type is small and signed, use DW_OP_deref_type to do the dereference
5974         and then DW_OP_convert to convert back to the generic type.
5975
5976 2021-06-03  Jakub Jelinek  <jakub@redhat.com>
5977
5978         PR c++/100859
5979         * tree-inline.c (copy_tree_body_r): Handle iterators on
5980         OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND.
5981
5982 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
5983
5984         * config/arc/arc.md (*bbit_di): Remove.
5985
5986 2021-06-02  Christoph Muellner  <cmuellner@gcc.gnu.org>
5987
5988         PR rtl-optimization/100264
5989         * ree.c (get_sub_rtx): Ignore SET expressions without register
5990         destinations and remove assertion, as it is not valid anymore
5991         with this new behaviour.
5992         (merge_def_and_ext): Eliminate destination check for register
5993         as such SET expressions can't occur anymore.
5994         (combine_reaching_defs): Likewise.
5995
5996 2021-06-02  Jakub Jelinek  <jakub@redhat.com>
5997
5998         PR target/100841
5999         * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid
6000         -Wtype-limits warnings.
6001         (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition
6002         in operands to avoid -Wsign-compare warnings.
6003
6004 2021-06-02  Pat Haugen  <pthaugen@linux.ibm.com>
6005
6006         * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
6007         gen_frame_store.
6008
6009 2021-06-02  Vineet Gupta  <vgupta@synopsys.com>
6010
6011         * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux.
6012
6013 2021-06-02  Ilya Leoshkevich  <iii@linux.ibm.com>
6014
6015         * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single
6016         constraint.
6017         * config/s390/subst.md(cconly_subst): Use a single constraint
6018         in (match_scratch).
6019
6020 2021-06-02  Martin Liska  <mliska@suse.cz>
6021
6022         * ipa-icf.h: Use auto_vec for memory_access_types.
6023
6024 2021-06-02  Jeff Law  <jeffreyalaw@gmail.com>
6025
6026         * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused
6027         argument from prototype.
6028         (output_logical_op): Add rtx_code argument.
6029         (compute_logical_op_length): Likewise.
6030         * config/h8300/h8300.c (h8300_and_costs): Pass additional argument
6031         to compute_a_shift_length.
6032         (output_logical_op); New argument with the rtx code rather than
6033         extracting it from an operand.  Handle QImode too.
6034         (compute_logical_op_length): Similary.
6035         (compute_a_shift_length): Drop unused argument.
6036         * config/h8300/h8300.md (logicals): New code iterator.
6037         * config/h8300/logical.md (<code><mode>3 expander): Combine
6038         the "and" expander with the "ior"/"xor" expander.
6039         (bclr<mode>msx): Combine the QI/HI mode patterns.
6040         (<logical><mode>3 insns): Use code iterator rather than match_operator.
6041         Handle QImode as well.   Update call to output_logical_op and
6042         compute_logical_op_length to pass in rtx_code
6043         Fix split condition on all define_insn_and_split patterns.
6044         (one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering
6045         the flags and setting ZN via existing define_subst.
6046         * config/h8300/shiftrotate.md: Drop unused argument from
6047         calls to compute_a_shift_length.
6048         Signed-off-by: Jeff Law <jeffreyalaw@gmail.com>
6049
6050 2021-06-01  Andrew Pinski  <apinski@marvell.com>
6051
6052         PR tree-optimization/25290
6053         * tree-ssa-phiopt.c (match_simplify_replacement):
6054         New function.
6055         (tree_ssa_phiopt_worker): Use match_simplify_replacement.
6056         (two_value_replacement): Change the comment about
6057         conditional_replacement.
6058         (conditional_replacement): Delete.
6059
6060 2021-06-01  Andrew Pinski  <apinski@marvell.com>
6061
6062         PR tree-optimization/95481
6063         * tree-tailcall.c (find_tail_calls): Handle empty typed
6064         return decls.
6065
6066 2021-06-01  Andrew Pinski  <apinski@marvell.com>
6067
6068         * gimplify.c (zero_sized_field_decl): Delete
6069         (zero_sized_type): Delete
6070         (gimplify_init_ctor_eval): Use is_empty_type instead
6071         of zero_sized_field_decl.
6072         (gimplify_modify_expr): Use is_empty_type instead of
6073         zero_sized_type.
6074
6075 2021-06-01  Jason Merrill  <jason@redhat.com>
6076
6077         PR c++/91859
6078         * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment.
6079
6080 2021-06-01  Jason Merrill  <jason@redhat.com>
6081
6082         PR c++/94492
6083         * diagnostic.h (warning_enabled_at): Declare.
6084         * diagnostic.c (diagnostic_enabled): Factor out from...
6085         (diagnostic_report_diagnostic): ...here.
6086         (warning_enabled_at): New.
6087
6088 2021-06-01  Aldy Hernandez  <aldyh@redhat.com>
6089
6090         * gimple-ssa-evrp.c: Enable exporting of global ranges.
6091
6092 2021-06-01  Martin Liska  <mliska@suse.cz>
6093
6094         PR other/100826
6095         * doc/invoke.texi: Mention that -fgcse-after-reload
6096         is enabled with -O3.
6097
6098 2021-06-01  liuhongt  <hongtao.liu@intel.com>
6099
6100         PR tree-optimization/98365
6101         * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function.
6102         (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction.
6103         (convert_scalar_cond_reduction): Ditto.
6104         (predicate_scalar_phi): Ditto.
6105
6106 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
6107
6108         PR tree-optimization/100781
6109         * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new
6110         value calculation by default.
6111         (ranger_cache::enable_new_values): New.
6112         (ranger_cache::disable_new_values): New.
6113         (ranger_cache::push_poor_value): Check if new values are allowed.
6114         * gimple-range-cache.h (class ranger_cache): New member/methods.
6115         * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug
6116         statement, and disable/renable new value calculation.
6117
6118 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
6119
6120         * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete.
6121         (ranger_cache::range_of_def): New.
6122         (ranger_cache::entry_range): New.
6123         (ranger_cache::exit_range): New.
6124         (ranger_cache::range_of_expr): Adjust.
6125         (ranger_cache::range_on_edge): Adjust.
6126         (ranger_cache::propagate_cache): Call exit_range directly.
6127         * gimple-range-cache.h (class ranger_cache): Adjust.
6128
6129 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
6130
6131         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for
6132         gori_compute being a member rather than base class.
6133         dervied call to member call.
6134         (ranger_cache::dump): No longer dump gori_map.
6135         (ranger_cache::dump_bb): New.
6136         (ranger_cache::get_non_stale_global_range): Adjust for gori_compute
6137         being a member rather than base class.
6138         (ranger_cache::set_global_range): Ditto.
6139         (ranger_cache::ssa_range_in_bb): Ditto.
6140         (ranger_cache::range_of_expr): New.
6141         (ranger_cache::range_on_edge): New.
6142         (ranger_cache::block_range): Adjust for gori_computes.  Debug changes.
6143         (ranger_cache::propagate_cache):  Adjust debugging output.
6144         (ranger_cache::fill_block_cache): Adjust for gori_computes.  Debug
6145         output changes.
6146         * gimple-range-cache.h (class ranger_cache): Make gori_compute a
6147         member, and inherit from range_query instead.
6148         (ranger_cache::dump_bb): New. split from dump.
6149         * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete.
6150         (gori_compute::expr_range_at_stmt): Delete.
6151         (gori_compute::compute_name_range_op): Delete.
6152         (gori_compute::compute_operand_range_switch): Add fur_source.
6153         (gori_compute::compute_operand_range): Add fur_source param, inline
6154         old compute_name_range_op and optimize_logical_operands.
6155         (struct tf_range): Delete.
6156         (gori_compute::logical_combine): Adjust
6157         (gori_compute::optimize_logical_operands): Delete.
6158         (gori_compute::compute_logical_operands_in_chain): Delete.
6159         (gori_compute::compute_logical_operands): Adjust.
6160         (gori_compute::compute_operand1_range): Adjust to fur_source.
6161         (gori_compute::compute_operand2_range): Ditto.
6162         (gori_compute::compute_operand1_and_operand2_range): Ditto.
6163         (gori_compute::outgoing_edge_range_p): Add range_query parameter,
6164         and adjust to fur_source.
6165         * gimple-range-gori.h (class gori_compute): Simplify and adjust to
6166         range_query and fur_source.
6167         * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge
6168         from the ranger_cache..
6169         (gimple_ranger::fold_range_internal): Adjust to base class change of
6170         ranger_cache.
6171         (gimple_ranger::dump_bb): Adjust dump.
6172         * gimple-range.h (gimple_ranger):export gori computes object.
6173
6174 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
6175
6176         PR tree-optimization/100774
6177         * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range):
6178         Constant values are also not stale.
6179         (ranger_cache::set_global_range): Range invariant values should also
6180         have the correct timestamp.
6181
6182 2021-05-31  Martin Liska  <mliska@suse.cz>
6183
6184         * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
6185         Unpack FUNCTION_DECL_DECL_TYPE.
6186         * tree-streamer-out.c (pack_ts_function_decl_value_fields):
6187         Stream FUNCTION_DECL_DECL_TYPE instead of
6188         DECL_IS_OPERATOR_NEW_P.
6189         * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE
6190         macro.
6191         (DECL_IS_OPERATOR_NEW_P): Likewise.
6192         (DECL_IS_OPERATOR_DELETE_P): Likewise.
6193         (DECL_LAMBDA_FUNCTION_P): Likewise.
6194
6195 2021-05-31  Richard Biener  <rguenther@suse.de>
6196
6197         PR c++/88601
6198         * internal-fn.c (expand_SHUFFLEVECTOR): Define.
6199         * internal-fn.def (SHUFFLEVECTOR): New.
6200         * internal-fn.h (expand_SHUFFLEVECTOR): Declare.
6201         * doc/extend.texi: Document __builtin_shufflevector.
6202
6203 2021-05-31  Peter Bergner  <bergner@linux.ibm.com>
6204
6205         PR target/99842
6206         * config/rs6000/predicates.md(mma_assemble_input_operand): Allow
6207         indexed form addresses.
6208
6209 2021-05-29  Jeff Law  <jlaw@tachyum.com>
6210
6211         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused
6212         parameter.  Call callers fixed.
6213         (push): Likewise.
6214         (output_plussi): Add FALLTHRU markers.
6215         (h8300_shift_needs_scratch_p): Add gcc_unreachable marker.
6216
6217 2021-05-29  Jakub Jelinek  <jakub@redhat.com>
6218
6219         PR middle-end/99928
6220         * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd
6221         combined with parallel, make sure to add shared clause to
6222         parallel for explicit linear clause.
6223
6224 2021-05-29  Aldy Hernandez  <aldyh@redhat.com>
6225
6226         PR tree-optimization/100787
6227         * gimple-ssa-evrp.c: Disable exporting of global ranges.
6228
6229 2021-05-28  Jason Merrill  <jason@redhat.com>
6230
6231         * tree-iterator.h (struct tree_stmt_iterator): Add operator++,
6232         operator--, operator*, operator==, and operator!=.
6233         (class tsi_range): New.
6234
6235 2021-05-28  Richard Biener  <rguenther@suse.de>
6236
6237         PR tree-optimization/100778
6238         * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly
6239         trapping ops in different BBs.
6240
6241 2021-05-28  Richard Biener  <rguenther@suse.de>
6242
6243         PR ipa/100791
6244         * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
6245         copy fntype from original call.
6246
6247 2021-05-28  Martin Liska  <mliska@suse.cz>
6248
6249         PR gcov-profile/100751
6250         * doc/gcov.texi: Revert partially a hunk that was wrong.
6251
6252 2021-05-28  Cooper Qu  <cooper.qu@linux.alibaba.com>
6253
6254         * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi):
6255         Defined.
6256         (HAVE_sync_compare_and_swaphi): Likewise.
6257         (HAVE_sync_compare_and_swapsi): Likewise.
6258
6259 2021-05-28  Jakub Jelinek  <jakub@redhat.com>
6260
6261         PR middle-end/99928
6262         * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define.
6263
6264 2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
6265
6266         * gimplify.c (gimplify_omp_affinity): New.
6267         (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards.
6268         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY.
6269         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY.
6270         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause.
6271         (walk_tree_1): Handle OMP_CLAUSE_AFFINITY.
6272
6273 2021-05-28  Joern Rennecke  <joern.rennecke@riscy-ip.com>
6274             Richard Biener   <rguenther@suse.de>
6275
6276         * match.pd <popcount & / + pattern matching>:
6277         When generating popcount directly fails, try doing it in two halves.
6278
6279 2021-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6280
6281         * Makefile.in (generated_files): Add gimple-match.c and
6282         generic-match.c
6283
6284 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
6285
6286         * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP.
6287
6288 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
6289
6290         * gensupport.c (alter_constraints): Add MATCH_SCRATCH case.
6291
6292 2021-05-28  Kewen Lin  <linkw@linux.ibm.com>
6293
6294         PR tree-optimization/99398
6295         * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases
6296         where the fed operands are CTOR/CST and propagated through
6297         VIEW_CONVERT_EXPR.  Call vec_perm_indices::new_shrunk_vector.
6298         * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New
6299         function.
6300         * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New
6301         declare.
6302
6303 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
6304
6305         * config/i386/mmx.md (addv2sf3): Do not call
6306         ix86_fixup_binary_operands_no_copy.
6307         (subv2sf3): Ditto.
6308         (mulv2sf3): Ditto.
6309         (<smaxmin:code>v2sf3): Ditto.
6310         (<plusminus:insn><MMXMODEI:mode>3): Ditto.
6311         (<plusminus:insn><VI_32:mode>3): Remove expander.
6312         (<plusminus:insn><VI_32:mode>3): Rename from
6313         "*<plusminus:insn><VI_32:mode>3".
6314         (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy.
6315         (mulv2hi3): Remove expander.
6316         (mulv2hi3): Rename from *mulv2hi3.
6317         (<s>mulv2hi3_highpart): Remove expander.
6318         (<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart.
6319         (<smaxmin:code><MMXMODE14:mode>3): Rename from
6320         "*mmx_<smaxmin:code><MMXMODE14:mode>3".
6321         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander.
6322         (SMAXMIN_MMXMODEI): Remove mode iterator.
6323         (<smaxmin:code>v4hi3): New expander.
6324         (<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3.
6325         (<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3.
6326         (<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
6327         (SMAXMIN_VI_32): Remove mode iterator.
6328         (<umaxmin:code><MMXMODE24:mode>3): Rename from
6329         "*mmx_<umaxmin:code><MMXMODE24:mode>3".
6330         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander.
6331         (UMAXMIN_MMXMODEI): Remove mode iterator.
6332         (<umaxmin:code>v8qi3): New expander.
6333         (<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3.
6334         (<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3.
6335         (<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
6336         (UMAXMIN_VI_32): Remove mode iterator.
6337         (<any_shift:insn>v2hi3): Remove expander.
6338         (<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3.
6339         (<any_logic:code><MMXMODEI:mode>3): Do not call
6340         ix86_fixup_binary_operands_no_copy.
6341         (<any_logic:code><VI_32:mode>3): Remove expander.
6342         (<any_logic:code><VI_32:mode>3): Rename from
6343         "*<any_logic:code><VI_32:mode>3".
6344         (uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy.
6345         * config/i386/sse.md (div<VF2:mode>3): Do not call
6346         ix86_fixup_binary_operands_no_copy.
6347         (div<VF1:mode>3): Ditto.
6348         (<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto.
6349         (smulhrsv4hi3): Ditto.
6350         (smulhrsv2hi3): Ditto.
6351
6352 2021-05-27  Martin Sebor  <msebor@redhat.com>
6353
6354         * ggc.h (gt_ggc_mx): Add overloads for all integers.
6355         (gt_pch_nx):  Same.
6356         * hash-map.h (class hash_map): Add pch_nx_helper overloads for all
6357         integers.
6358         (hash_map::operator==): New function.
6359
6360 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
6361
6362         PR target/100637
6363         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
6364         For TARGET_XOP bypass SSE comparisons for all supported vector modes.
6365         * config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern.
6366         (*xop_maskcmp<VI_32:mode>3): Ditto.
6367         (*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto.
6368         (*xop_maskcmp_uns<VI_32:mode>3): Ditto.
6369
6370 2021-05-27  Richard Earnshaw  <rearnsha@arm.com>
6371
6372         PR target/100767
6373         * config/arm/arm.c (arm_configure_build_target): Remove parameter
6374         opts_set, directly check opts parameters for being non-null.
6375         (arm_option_restore): Update call to arm_configure_build_target.
6376         (arm_option_override): Likewise.
6377         (arm_can_inline_p): Likewise.
6378         (arm_valid_target_attribute_tree): Likewise.
6379         * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
6380         * config/arm/arm-protos.h (arm_configure_build_target): Adjust
6381         prototype.
6382
6383 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
6384
6385         * vr-values.c (simplify_conversion_using_ranges): Use
6386         get_range_query instead of get_global_range_query.
6387
6388 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
6389
6390         * gimple-range.cc (get_range_global): Move to value-query.cc.
6391         (gimple_range_global): Same.
6392         (get_global_range_query): Same.
6393         (global_range_query::range_of_expr): Same.
6394         * gimple-range.h (class global_range_query): Move to
6395         value-query.h.
6396         (gimple_range_global): Same.
6397         * tree-ssanames.c (get_range_info): Move to value-query.cc.
6398         (get_ptr_nonnull): Same.
6399         * tree-ssanames.h (get_range_info): Remove.
6400         (get_ptr_nonnull): Remove.
6401         * value-query.cc (get_ssa_name_range_info): Move from
6402         tree-ssanames.c.
6403         (get_ssa_name_ptr_info_nonnull): Same.
6404         (get_range_global): Move from gimple-range.cc.
6405         (gimple_range_global): Same.
6406         (get_global_range_query): Same.
6407         (global_range_query::range_of_expr): Same.
6408         * value-query.h (class global_range_query): Move from
6409         gimple-range.h.
6410         (gimple_range_global): Same.
6411
6412 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
6413
6414         PR target/100637
6415         * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern.
6416         (uavgv2hi3_ceil): Ditto.
6417
6418 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
6419
6420         PR c/100653
6421         * doc/extend.texi (scalar_storage_order): Rephrase slightly.
6422
6423 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
6424
6425         * tree-ssanames.c (get_range_info): Merge both copies of
6426         get_range_info into one that works with irange.
6427         * tree-ssanames.h (get_range_info): Remove version that works on
6428         wide_ints.
6429
6430 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
6431
6432         * builtins.c (check_nul_terminated_array): Convert to get_range_query.
6433         (expand_builtin_strnlen): Same.
6434         (determine_block_size): Same.
6435         * fold-const.c (expr_not_equal_to): Same.
6436         * gimple-fold.c (size_must_be_zero_p): Same.
6437         * gimple-match-head.c: Include gimple-range.h.
6438         * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query.
6439         * gimple-ssa-warn-restrict.c
6440         (builtin_memref::extend_offset_range): Same.
6441         * graphite-sese-to-poly.c (add_param_constraints): Same.
6442         * internal-fn.c (get_min_precision): Same.
6443         * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same.
6444         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
6445         * match.pd: Same.
6446         * tree-data-ref.c (split_constant_offset): Same.
6447         (dr_step_indicator): Same.
6448         * tree-dfa.c (get_ref_base_and_extent): Same.
6449         * tree-scalar-evolution.c (iv_can_overflow_p): Same.
6450         * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same.
6451         (determine_value_range): Same.
6452         (record_nonwrapping_iv): Same.
6453         (infer_loop_bounds_from_signedness): Same.
6454         (scev_var_range_cant_overflow): Same.
6455         * tree-ssa-phiopt.c (two_value_replacement): Same.
6456         * tree-ssa-pre.c (insert_into_preds_of_block): Same.
6457         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same.
6458         * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same.
6459         (get_range): Same.
6460         (dump_strlen_info): Same.
6461         (set_strlen_range): Same.
6462         (maybe_diag_stxncpy_trunc): Same.
6463         (get_len_or_size): Same.
6464         (handle_integral_assign): Same.
6465         * tree-ssa-structalias.c (find_what_p_points_to): Same.
6466         * tree-ssa-uninit.c (find_var_cmp_const): Same.
6467         * tree-switch-conversion.c (bit_test_cluster::emit): Same.
6468         * tree-vect-patterns.c (vect_get_range_info): Same.
6469         (vect_recog_divmod_pattern): Same.
6470         * tree-vrp.c (intersect_range_with_nonzero_bits): Same.
6471         (register_edge_assert_for_2): Same.
6472         (determine_value_range_1): Same.
6473         * tree.c (get_range_pos_neg): Same.
6474         * vr-values.c (vr_values::get_lattice_entry): Same.
6475         (vr_values::update_value_range): Same.
6476         (simplify_conversion_using_ranges): Same.
6477
6478 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
6479
6480         * gimple-ssa-warn-alloca.c (alloca_call_type): Use
6481           get_range_query instead of query argument.
6482         (pass_walloca::execute): Enable and disable global ranger.
6483
6484 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
6485
6486         * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
6487         enable_ranger.
6488         (rvrp_folder::~rvrp_folder): Call disable_ranger.
6489         (hybrid_folder::hybrid_folder): Call enable_ranger.
6490         (hybrid_folder::~hybrid_folder): Call disable_ranger.
6491
6492 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
6493
6494         * function.c (allocate_struct_function): Set cfun->x_range_query.
6495         * function.h (struct function): Declare x_range_query.
6496         (get_range_query): New.
6497         (get_global_range_query): New.
6498         * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache):
6499         Remove call to safe_grow_cleared.
6500         * gimple-range.cc (get_range_global): New.
6501         (gimple_range_global): Move from gimple-range.h.
6502         (get_global_range_query): New.
6503         (global_range_query::range_of_expr): New.
6504         (enable_ranger): New.
6505         (disable_ranger): New.
6506         * gimple-range.h (gimple_range_global): Move to gimple-range.cc.
6507         (class global_range_query): New.
6508         (enable_ranger): New.
6509         (disable_ranger): New.
6510         * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename
6511         dump_all_value_ranges to dump.
6512         * tree-vrp.c (vrp_prop::finalize): Same.
6513         * value-query.cc (range_query::dump): New.
6514         * value-query.h (range_query::dump): New.
6515         * vr-values.c (vr_values::dump_all_value_ranges): Rename to...
6516         (vr_values::dump): ...this.
6517         * vr-values.h (class vr_values): Rename dump_all_value_ranges to
6518         dump and make virtual.
6519
6520 2021-05-26  Uroš Bizjak  <ubizjak@gmail.com>
6521
6522         * config/i386/i386.c (ix86_autovectorize_vector_modes):
6523         Add V4QImode and V16QImode for TARGET_SSE2.
6524         * doc/sourcebuild.texi (Vector-specific attributes):
6525         Add vect64 and vect32 description.
6526
6527 2021-05-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6528
6529         * gimple-range-gori.cc (range_def_chain::register_dependency):
6530         Resize m_def_chain when needed.
6531
6532 2021-05-26  Christophe Lyon  <christophe.lyon@linaro.org>
6533
6534         * config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'.
6535         * config/arm/neon.md (reduc_plus_scal_<mode>): Move to ..
6536         * config/arm/vec-common.md: .. here. Add support for MVE.
6537
6538 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
6539
6540         * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove
6541         register keywords.
6542         * config/microblaze/microblaze.c (microblaze_legitimize_address,
6543         call_internal1,
6544         microblaze_option_override, print_operand): Likewise.
6545         * config/microblaze/microblaze.md (call_internal_plt,
6546         call_value_intern_plt, call_value_intern): Likewise.
6547         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise.
6548         * config/iq2000/iq2000.md (call_internal1, call_value_internal1,
6549         call_value_multiple_internal1): Likewise.
6550         * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise.
6551
6552 2021-05-26  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
6553
6554         * config/arc/arc.c (arc_address_cost, arc_print_operand_address,
6555         arc_ccfsm_advance, symbolic_reference_mentioned_p,
6556         arc_raw_symbolic_reference_mentioned_p): Remove register
6557         keyword.
6558
6559 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
6560
6561         PR libgomp/100573
6562         * omp-low.c: Include omp-offload.h.
6563         (create_omp_child_function): If current_function_decl has
6564         "omp declare target" attribute and is_gimple_omp_offloaded,
6565         remove that attribute from the copy of attribute list and
6566         add "omp target entrypoint" attribute instead.
6567         (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.*
6568         variables for offloading if in omp_maybe_offloaded_ctx.
6569         * omp-offload.c (pass_omp_target_link::execute): Nullify second
6570         argument to GOMP_target_data_ext in offloaded code.
6571
6572 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
6573
6574         * config/csky/csky.c (csky_can_change_mode_class): Delete.
6575         For csky, HF/SF mode use the low bits of VREGS.
6576
6577 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
6578
6579         * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a
6580         DECL which is a reference for OMP.
6581
6582 2021-05-26  Martin Liska  <mliska@suse.cz>
6583
6584         PR gcov-profile/100751
6585         * doc/gcov.texi: Document that __gcov_dump can be called just
6586         once and that __gcov_reset resets run-time counters.
6587
6588 2021-05-26  Martin Liska  <mliska@suse.cz>
6589
6590         * doc/install.texi: Port relevant part from install-old.texi
6591         and re-generate list of CPUs and systems.
6592
6593 2021-05-26  Martin Liska  <mliska@suse.cz>
6594
6595         * Makefile.in: Remove it.
6596         * doc/include/fdl.texi: Update next/previous chapters.
6597         * doc/install.texi: Likewise.
6598         * doc/install-old.texi: Removed.
6599
6600 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
6601
6602         * config/csky/csky.c (ck810_legitimate_index_p): Support
6603         "base + index" with DF mode.
6604         * config/csky/constraints.md ("Y"): New constraint for memory operands
6605         without index register.
6606         * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m"
6607         when mov between memory and general registers, and lower their priority.
6608         * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise.
6609
6610 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
6611
6612         * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete.
6613
6614 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
6615
6616         * config/csky/csky.md (untyped_call): Emit clobber for return
6617         registers to mark them used.
6618
6619 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
6620
6621         * config/csky/csky.md (cskyv2_sextend_ldbs): New.
6622
6623 2021-05-26  Andrew Pinski  <apinski@marvell.com>
6624
6625         * match.pd (x < 0 ? ~y : y): New patterns.
6626
6627 2021-05-26  Andrew Pinski  <apinski@marvell.com>
6628
6629         * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0,
6630         A?POW2:0 and A?0:POW2.
6631
6632 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6633
6634         * gimple-range-gori.cc (class logical_stmt_cache): Delete
6635         (logical_stmt_cache::logical_stmt_cache ): Delete.
6636         (logical_stmt_cache::~logical_stmt_cache): Delete.
6637         (logical_stmt_cache::cache_entry::dump): Delete.
6638         (logical_stmt_cache::get_range): Delete.
6639         (logical_stmt_cache::cached_name ): Delete.
6640         (logical_stmt_cache::same_cached_name): Delete.
6641         (logical_stmt_cache::cacheable_p): Delete.
6642         (logical_stmt_cache::slot_diagnostics ): Delete.
6643         (logical_stmt_cache::dump): Delete.
6644         (gori_compute_cache::gori_compute_cache): Delete.
6645         (gori_compute_cache::~gori_compute_cache): Delete.
6646         (gori_compute_cache::compute_operand_range): Delete.
6647         (gori_compute_cache::cache_stmt): Delete.
6648         * gimple-range-gori.h (gori_compute::compute_operand_range): Remove
6649         virtual.
6650         (class gori_compute_cache): Delete.
6651
6652 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6653
6654         * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori
6655         intead of m_cache.
6656         (fold_using_range::range_of_address): Adjust.
6657         (fold_using_range::range_of_phi): Adjust.
6658         * gimple-range.h (class fur_source): Adjust.
6659         (fur_source::fur_source): Adjust.
6660
6661 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6662
6663         * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename
6664         from expr_range_in_bb and adjust.
6665         (gori_compute::compute_name_range_op): Adjust.
6666         (gori_compute::optimize_logical_operands): Adjust.
6667         (gori_compute::compute_logical_operands_in_chain): Adjust.
6668         (gori_compute::compute_operand1_range): Adjust.
6669         (gori_compute::compute_operand2_range): Adjust.
6670         (ori_compute_cache::cache_stmt): Adjust.
6671         * gimple-range-gori.h (gori_compute): Rename prototype.
6672
6673 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6674
6675         * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be
6676         checked only after range_of_stmt, not range_on_entry.
6677         (gimple_ranger::range_on_entry): Check for non-null in any
6678         predecessor block, if it is not already non-null.
6679         (gimple_ranger::range_on_exit): DOnt check for non-null after
6680         range on entry call.
6681         (gimple_ranger::dump_bb): New.  Split from dump.
6682         (gimple_ranger::dump): Adjust.
6683         * gimple-range.h (class gimple_ranger): Adjust.
6684
6685 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6686
6687         * gimple-range-cache.cc (struct range_timestamp): Delete.
6688         (class temporal_cache): Adjust.
6689         (temporal_cache::get_timestamp): Delete.
6690         (temporal_cache::set_dependency): Delete.
6691         (temporal_cache::temporal_value): Adjust.
6692         (temporal_cache::current_p): Take dependencies as params.
6693         (temporal_cache::set_timestamp): Adjust.
6694         (temporal_cache::set_always_current): Adjust.
6695         (ranger_cache::get_non_stale_global_range): Adjust.
6696         (ranger_cache::register_dependency): Delete.
6697         * gimple-range-cache.h (class range_cache): Adjust.
6698
6699 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6700
6701         * gimple-range-gori.cc (range_def_chain::range_def_chain): init
6702         bitmap obstack.
6703         (range_def_chain::~range_def_chain): Dispose of obstack rather than
6704         each individual bitmap.
6705         (range_def_chain::set_import): New.
6706         (range_def_chain::get_imports): New.
6707         (range_def_chain::chain_import_p): New.
6708         (range_def_chain::register_dependency): Rename from build_def_chain
6709         and set imports.
6710         (range_def_chain::def_chain_in_bitmap_p): New.
6711         (range_def_chain::add_def_chain_to_bitmap): New.
6712         (range_def_chain::has_def_chain): Just check first depenedence.
6713         (range_def_chain::get_def_chain): Process imports, use generic
6714         register_dependency routine.
6715         (range_def_chain::dump): New.
6716         (gori_map::gori_map): Allocate import list.
6717         (gori_map::~gori_map): Release imports.
6718         (gori_map::exports): Check for past allocated block size.
6719         (gori_map::imports): New.
6720         (gori_map::def_chain_in_export_p): Delete.
6721         (gori_map::is_import_p): New.
6722         (gori_map::maybe_add_gori): Handle imports.
6723         (gori_map::dump): Adjust output, add imports.
6724         (gori_compute::has_edge_range_p): Remove def_chain_in_export call.
6725         (gori_export_iterator::gori_export_iterator): New.
6726         (gori_export_iterator::next): New.
6727         (gori_export_iterator::get_name): New.
6728         * gimple-range-gori.h (range_def_chain): Add imports and direct
6729         dependecies via struct rdc.
6730         (range_def_chain::depend1): New.
6731         (range_def_chain::depend2): New.
6732         (class gori_map): Adjust.
6733         (FOR_EACH_GORI_IMPORT_NAME): New.
6734         (FOR_EACH_GORI_EXPORT_NAME): New.
6735         (class gori_export_iterator): New.
6736
6737 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6738
6739         * gimple-range-cache.cc (ranger_cache::ranger_cache):  Move initial
6740         export cache filling to here.
6741         * gimple-range-gori.cc (gori_compute::gori_compute) : From Here.
6742
6743 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6744
6745         * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h.
6746         (gori_map): Move to gimple-range-gori.h.
6747         (gori_compute::gori_compute): Adjust.
6748         (gori_compute::~gori_compute): Delete.
6749         (gori_compute::compute_operand_range_switch): Adjust.
6750         (gori_compute::compute_operand_range): Adjust.
6751         (gori_compute::compute_logical_operands): Adjust.
6752         (gori_compute::has_edge_range_p ): Adjust.
6753         (gori_compute::set_range_invariant): Delete.
6754         (gori_compute::dump): Adjust.
6755         (gori_compute::outgoing_edge_range_p): Adjust.
6756         * gimple-range-gori.h (class range_def_chain): Relocate here.
6757         (class gori_map): Relocate here.
6758         (class gori_compute): Inherit from gori_map, and adjust.
6759
6760 2021-05-25  Aldy Hernandez  <aldyh@redhat.com>
6761
6762         * value-range.cc (range_tests_legacy): Use
6763         build_nonstandard_integer_type instead of int and short.
6764
6765 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6766
6767         * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL
6768         when really creating an initialization statement for it.
6769
6770 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6771
6772         * tree-inline.c (setup_one_parameter): Fix thinko in new condition.
6773
6774 2021-05-25  Kito Cheng  <kito.cheng@sifive.com>
6775
6776         * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax.
6777
6778 2021-05-25  Martin Liska  <mliska@suse.cz>
6779
6780         PR tree-optimization/92860
6781         PR target/99592
6782         * optc-save-gen.awk: Remove exceptions.
6783
6784 2021-05-25  Martin Liska  <mliska@suse.cz>
6785
6786         * asan.h (sanitize_coverage_p): New function.
6787         * doc/extend.texi: Document it.
6788         * fold-const.c (fold_range_test): Use sanitize_flags_p
6789         instead of flag_sanitize_coverage.
6790         (fold_truth_andor): Likewise.
6791         * sancov.c: Likewise.
6792         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
6793         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle
6794         -fsanitize-coverage when inlining.
6795
6796 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
6797
6798         * config/csky/csky-modes.def : Fix copyright.
6799
6800 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
6801
6802         * config/csky/csky-modes.def : Amend copyright.
6803         * config/csky/csky_insn_fpuv2.md : Likewise.
6804         * config/csky/csky_insn_fpuv3.md : Likewise.
6805
6806 2021-05-25  Richard Biener  <rguenther@suse.de>
6807
6808         PR middle-end/100727
6809         * calls.c (initialize_argument_information): Explicitely test
6810         for WITH_SIZE_EXPR.
6811         * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.
6812
6813 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
6814
6815         * config/csky/csky.h (FRAME_POINTER_REGNUM): Use
6816         HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of
6817         the signle definition. The signle definition may not work well
6818         at simplify_subreg_regno().
6819         (HARD_FRAME_POINTER_REGNUM): New.
6820         (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM.
6821         * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate,
6822         csky_initial_elimination_offset, csky_expand_prologue,
6823         csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM.
6824
6825 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
6826
6827         * config/csky/csky.c (csky_option_override):
6828         Init csky_arch_isa_features[] in advance, so TARGET_DSP
6829         and TARGET_DIV can be set well.
6830
6831 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
6832
6833         * config/csky/constraints.md ("l", "h"): Delete.
6834         * config/csky/csky.h (reg_class, REG_CLASS_NAMES,
6835         REG_CLASS_CONTENTS):  Delete LO_REGS and HI_REGS.
6836         * config/csky/csky.c (regno_reg_classm,
6837         csky_secondary_reload, csky_register_move_cost):
6838         Use HILO_REGS instead of LO_REGS and HI_REGS.
6839
6840 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
6841
6842         * config/csky/constraints.md ("W"): New constriant for mem operand
6843         with base reg, index register.
6844         ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to
6845         "csky_valid_mem_constraint_operand" to deal with both "Q" and "W"
6846         constraint.
6847         ("Dv"): New constraint for const double value that can be used at
6848         fmovi instruction.
6849         * config/csky/csky-modes.def (HFmode): New mode.
6850         * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename
6851         to "csky_valid_mem_constraint_operand" and support new constraint
6852         "W".
6853         (csky_get_movedouble_length): New.
6854         (fpuv3_output_move): New.
6855         (fpuv3_const_double): New.
6856         * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3.
6857         (decompose_csky_address): Refine.
6858         (csky_print_operand): New "CONST_DOUBLE" operand.
6859         (csky_output_move): Support fpv3 instructions.
6860         (csky_get_movedouble_length): New.
6861         (fpuv3_output_move): New.
6862         (fpuv3_const_double): New.
6863         (csky_emit_compare): Cover float comparsion.
6864         (csky_emit_compare_float): Refine.
6865         (csky_vaild_fpuv2_mem_operand): Rename to
6866         "csky_valid_mem_constraint_operand" and support new constraint "W".
6867         (ck860_rtx_costs): New.
6868         (csky_rtx_costs): Add the cost calculation of CK860.
6869         (regno_reg_class): New vregs for fpuv3.
6870         (csky_dbx_regno): Likewise.
6871         (csky_cpu_cpp_builtins): New builtin macro for fpuv3.
6872         (csky_conditional_register_usage): Suporrot fpuv3.
6873         (csky_dwarf_register_span): Suporrot fpuv3.
6874         (csky_init_builtins, csky_mangle_type): Support "__fp16" type.
6875         (ck810_legitimate_index_p): Support fp16.
6876         * config/csky/csky.h (TARGET_TLS): ADD CK860.
6877         (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3.
6878         (TARGET_SINGLE_FPU): Support fpuv3.
6879         (TARGET_SUPPORT_FPV3): New.
6880         (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers.
6881         (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES,
6882          REG_CLASS_CONTENTS): Support fpuv3.
6883         * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine.
6884         (csky_movsf_fpv2): Likewise.
6885         (ck801_movsf): Likewise.
6886         (csky_movsf): Likewise.
6887         (movdf): Likewise.
6888         (csky_movdf_fpv2): Likewise.
6889         (ck801_movdf): Likewise.
6890         (csky_movdf): Likewise.
6891         (movsicc): Refine. Use "comparison_operatior" instead of
6892         "ordered_comparison_operatior".
6893         (addsicc): Likewise.
6894         (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant.
6895         (call_value_internal_vh): New.
6896         * config/csky/csky_cores.def (CK860): New arch and cpu.
6897         (fpv3_hf): New.
6898         (fpv3_hsf): New.
6899         (fpv3_sdf): New.
6900         (fpv3): New.
6901         * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns
6902         into emit-patterns and match-patterns, remain the emit-patterns here,
6903         and move the match-patterns to csky_insn_fpuv2.md or
6904         csky_insn_fpuv3.md.
6905         * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions.
6906         * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3
6907         isntructions.
6908         * config/csky/csky_isa.def (fcr): New.
6909         (fpv3_hi): New.
6910         (fpv3_hf): New.
6911         (fpv3_sf): New.
6912         (fpv3_df): New.
6913         (CK860): New definition for ck860.
6914         * config/csky/csky_tables.opt (ck860): New processors ck860,
6915         ck860f. And new arch ck860.
6916         (fpv3_hf): New.
6917         (fpv3_hsf): New.
6918         (fpv3_hdf): New.
6919         (fpv3): New.
6920         * config/csky/predicates.md (csky_float_comparsion_operator): Delete
6921         "geu", "gtu", "leu", "ltu", which will never appear at float comparison.
6922         * config/csky/t-csky-elf: Support 860.
6923         * config/csky/t-csky-linux: Likewise.
6924         * doc/md.texi: Add "Q" and "W" constraints for C-SKY.
6925
6926 2021-05-24  Aaron Sawdey  <acsawdey@linux.ibm.com>
6927
6928         * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to
6929         add generation of logical-add and add-logical fusion pairs.
6930         * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask
6931         and powerpc mask.
6932         * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on
6933         logical-add and add-logical fusion by default.
6934         * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and
6935         -mpower10-fusion-add-logical options.
6936         * config/rs6000/fusion.md: Regenerate file.
6937
6938 2021-05-24  Aldy Hernandez  <aldyh@redhat.com>
6939
6940         * value-range.cc (irange::legacy_equal_p): Check type when
6941         comparing VR_VARYING types.
6942         (range_tests_legacy): Test comparing VARYING ranges of different
6943         sizes.
6944
6945 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
6946
6947         * config/aarch64/aarch64.c (neoversen1_tunings):
6948         Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
6949
6950 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
6951
6952         * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for
6953         extern weak symbols.  Limit symbol offsets for non-GOT symbols with
6954         PIC/PIE.
6955
6956 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
6957
6958         * config/arm/neon.md (vec_load_lanesxi<mode>)
6959         (vec_store_lanexoi<mode>): Move ...
6960         * config/arm/vec-common.md: here.
6961
6962 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
6963
6964         * config/arm/neon.md (vec_load_lanesoi<mode>)
6965         (vec_store_lanesoi<mode>): Move ...
6966         * config/arm/vec-common.md: here.
6967
6968 2021-05-24  liuhongt  <hongtao.liu@intel.com>
6969
6970         PR target/100660
6971         * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing
6972         stmt with GIMPLE_NOP when lhs doesn't exist.
6973
6974 2021-05-23  Uroš Bizjak  <ubizjak@gmail.com>
6975
6976         PR target/100722
6977         * config/i386/mmx.md (*push<VI_32:mode>2_rex64):
6978         New instruction pattern.
6979         (*push<VI_32:mode>2): Ditto.
6980         (push splitter for SSE registers): New splitter.
6981
6982 2021-05-23  Andrew Pinski  <apinski@marvell.com>
6983
6984         * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types.
6985
6986 2021-05-22  Aaron Sawdey  <acsawdey@linux.ibm.com>
6987
6988         * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types.
6989         * config/rs6000/fusion.md: Regenerate file.
6990
6991 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
6992
6993         * config/rs6000/genfusion.pl (gen_addadd): New function.
6994         * config/rs6000/fusion.md: Regenerate file.
6995         * config/rs6000/rs6000-cpus.def: Add
6996         OPTION_MASK_P10_FUSION_2ADD to masks.
6997         * config/rs6000/rs6000.c (rs6000_option_override_internal):
6998         Handle default value of OPTION_MASK_P10_FUSION_2ADD.
6999         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add.
7000
7001 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
7002
7003         PR middle-end/99928
7004         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define.
7005         * gimplify.c (enum gimplify_omp_var_data): Fix up
7006         GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT.
7007         (omp_lastprivate_for_combined_outer_constructs): If combined target
7008         has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to
7009         GOVD_MAP | GOVD_SEEN.
7010         (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for
7011         firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT.
7012         (gimplify_adjust_omp_clauses): For firstprivate clauses with
7013         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and
7014         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and
7015         let it be replaced by implicit map clause.
7016
7017 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
7018
7019         PR middle-end/99928
7020         * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New
7021         function.
7022         (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it.
7023         (gimplify_omp_for): Likewise.
7024
7025 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
7026
7027         PR middle-end/90115
7028         * omp-low.c (oacc_privatization_candidate_p): Reject 'static',
7029         'external' in blocks.
7030
7031 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
7032
7033         PR middle-end/90115
7034         * flag-types.h (enum openacc_privatization): New.
7035         * params.opt (-param=openacc-privatization): New.
7036         * doc/invoke.texi (openacc-privatization): Document it.
7037         * omp-general.h (get_openacc_privatization_dump_flags): New
7038         function.
7039         * omp-low.c (oacc_privatization_candidate_p): Add diagnostics.
7040         * omp-offload.c (execute_oacc_device_lower)
7041         <IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics.
7042         * target.def (goacc.adjust_private_decl): Add 'location_t'
7043         parameter.
7044         * doc/tm.texi: Regenerate.
7045         * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust.
7046         * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise.
7047         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl):
7048         Likewise.  Preserve it for...
7049         (nvptx_goacc_expand_var_decl): ... use here.
7050
7051 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
7052
7053         * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__'
7054         DejaGnu selector.
7055
7056 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
7057
7058         PR middle-end/90115
7059         * omp-low.c (oacc_privatization_candidate_p): New function.
7060         (oacc_privatization_scan_clause_chain)
7061         (oacc_privatization_scan_decl_chain): Use it.  Also
7062         'gcc_checking_assert' that we're not seeing duplicates.
7063
7064 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
7065
7066         PR middle-end/90115
7067         * omp-offload.c (execute_oacc_device_lower): Skip processing if no
7068         work to be done.
7069
7070 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
7071
7072         PR middle-end/90115
7073         * omp-offload.c (execute_oacc_device_lower): Explain.
7074
7075 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
7076
7077         PR middle-end/90115
7078         * omp-offload.c (execute_oacc_device_lower)
7079         <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1'
7080         case, too.
7081         * internal-fn.c (expand_UNIQUE): Don't expect
7082         'IFN_UNIQUE_OACC_PRIVATE'.
7083
7084 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
7085
7086         PR middle-end/90115
7087         * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses.
7088
7089 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
7090
7091         PR middle-end/90115
7092         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl)
7093         (nvptx_goacc_expand_var_decl): Tighten.
7094
7095 2021-05-21  Julian Brown  <julian@codesourcery.com>
7096             Chung-Lin Tang  <cltang@codesourcery.com>
7097             Thomas Schwinge  <thomas@codesourcery.com>
7098
7099         PR middle-end/90115
7100         * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL)
7101         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks.
7102         * doc/tm.texi: Regenerate.
7103         * expr.c (expand_expr_real_1): Expand decls using the
7104         expand_var_decl OpenACC hook if defined.
7105         * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE.
7106         * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE.
7107         * omp-low.c (omp_context): Add oacc_privatization_candidates
7108         field.
7109         (lower_oacc_reductions): Add PRIVATE_MARKER parameter.  Insert
7110         before fork.
7111         (lower_oacc_head_tail): Add PRIVATE_MARKER parameter.  Modify
7112         private marker's gimple call arguments, and pass it to
7113         lower_oacc_reductions.
7114         (oacc_privatization_scan_clause_chain)
7115         (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
7116         New functions.
7117         (lower_omp_for, lower_omp_target, lower_omp_1): Use these.
7118         * omp-offload.c (convert.h): Include.
7119         (oacc_loop_xform_head_tail): Treat private-variable markers like
7120         fork/join when transforming head/tail sequences.
7121         (struct var_decl_rewrite_info): Add struct.
7122         (oacc_rewrite_var_decl, is_sync_builtin_call): New functions.
7123         (execute_oacc_device_lower): Support rewriting gang-private
7124         variables using target hook, and fix up addr_expr and var_decl
7125         nodes afterwards.
7126         * target.def (adjust_private_decl, expand_var_decl): New hooks.
7127         * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl):
7128         Rename to...
7129         (gcn_goacc_adjust_private_decl): ...this.
7130         * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl):
7131         Rename to...
7132         (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter.
7133         * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename
7134         definition using gcn_goacc_adjust_gangprivate_decl...
7135         (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using
7136         gcn_goacc_adjust_private_decl.
7137         * config/nvptx/nvptx.c (tree-pretty-print.h): Include.
7138         (gang_private_shared_size): New global variable.
7139         (gang_private_shared_align): Likewise.
7140         (gang_private_shared_sym): Likewise.
7141         (gang_private_shared_hmap): Likewise.
7142         (nvptx_option_override): Initialize these.
7143         (nvptx_file_end): Output gang_private_shared_sym.
7144         (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl):
7145         New functions.
7146         (nvptx_set_current_function): Clear gang_private_shared_hmap.
7147         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook.
7148         (TARGET_GOACC_EXPAND_VAR_DECL): Likewise.
7149
7150 2021-05-21  H.J. Lu  <hjl.tools@gmail.com>
7151
7152         * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed.
7153
7154 2021-05-21  Richard Biener  <rguenther@suse.de>
7155             H.J. Lu  <hjl.tools@gmail.com>
7156
7157         PR middle-end/90773
7158         * expr.c (expand_constructor): Elide expand_constructor if
7159         move by pieces is preferred.
7160
7161 2021-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7162
7163         * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
7164         Take a flag and mode value as arguments.
7165         (aarch64_modifies_global_state_p): Likewise.
7166         (aarch64_reads_global_state_p): Likewise.
7167         (aarch64_could_trap_p): Likewise.
7168         (aarch64_get_attributes): Likewise.
7169         (aarch64_init_simd_builtins): Adjust callsite of above.
7170         (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get
7171         function attributes to apply to builtins.
7172         (aarch64_init_crc32_builtins): Likewise.
7173         (aarch64_init_builtin_rsqrt): Likewise.
7174
7175 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
7176
7177         * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion.
7178         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types.
7179         (gen_2logical): Use new fusion types.
7180         * config/rs6000/fusion.md: Regenerate.
7181
7182 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
7183
7184         PR target/100637
7185         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
7186         Handle V4QI and V2HI modes.
7187         (ix86_expand_sse_movcc): Ditto.
7188         * config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3):
7189         New instruction pattern.
7190         (*eq<VI_32:mode>3): Ditto.
7191         (*gt<VI_32:mode>3): Ditto.
7192         (*xop_pcmov_<VI_32:mode>): Ditto.
7193         (mmx_pblendvb32): Ditto.
7194         (mmx_pblendvb64): Rename from mmx_pblendvb.
7195         (vec_cmp<VI_32:mode><VI_32:mode>): New expander.
7196         (vec_cmpu<VI_32:mode><VI_32:mode>): Ditto.
7197         (vcond<VI_32:mode><VI_32:mode>): Ditto.
7198         (vcondu<VI_32:mode><VI_32:mode>): Ditto.
7199         (vcond_mask_<VI_32:mode><VI_32:mode>): Ditto.
7200
7201 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
7202
7203         PR tree-optimization/94589
7204         * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and
7205         rhs2, treat x <= 4 equivalently to x < 5 etc.  In cmp1 and cmp2 (if
7206         not the same as cmp3) treat <= the same as < and >= the same as >.
7207         Don't require that cond2_phi_edge is true edge, instead take
7208         false/true edges into account based on cmp1/cmp2 comparison kinds.
7209
7210 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
7211
7212         PR target/100637
7213         * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator.
7214         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander
7215         from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3
7216         using SMAXMIN_MMXMODEI mode iterator.
7217         (*<smaxmin:code>v4qi3): New insn pattern.
7218         (*<smaxmin:code>v2hi3): Ditto.
7219         (SMAXMIN_VI_32): New mode iterator.
7220         (<smaxmin:code><SMAXMIN_VI_32>mode3): New expander.
7221         (UMAXMIN_MMXMODEI): New mode iterator.
7222         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander
7223         from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3
7224         using UMAXMIN_MMXMODEI mode iterator.
7225         (*<umaxmin:code>v4qi3): New insn pattern.
7226         (*<umaxmin:code>v2hi3): Ditto.
7227         (UMAXMIN_VI_32): New mode iterator.
7228         (<umaxmin:code><UMAXMIN_VI_32>mode3): New expander.
7229         (abs<VI_32:mode>2): New insn pattern.
7230         (ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ...
7231         * config/i386/sse.md: ... here.
7232
7233 2021-05-20  Clement Chigot  <clement.chigot@atos.net>
7234             David Edelsohn  <dje.gcc@gmail.com>
7235
7236         * collect2.c (scan_prog_file): Issue non-fatal warning for
7237         non-COFF files.
7238
7239 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
7240
7241         * doc/invoke.texi (-Wno-c++11-extensions)
7242         (-Wno-c++14-extensions, -Wno-c++17-extensions)
7243         (-Wno-c++20-extensions, -Wno-c++23-extensions): Document
7244         new options.
7245
7246 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
7247
7248         * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p.
7249         * config/darwin.c (darwin_override_options): Likewise.
7250         * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
7251         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
7252         (DWARF2_FRAME_REG_OUT): Likewise.
7253         * config/mips/mips.c (mips_output_filename): Likewise.
7254         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name):
7255         Likewise.
7256         (rs6000_dbx_register_number): Likewise.
7257         * dbxout.c: Include flags.h.
7258         * dwarf2cfi.c (cfi_label_required_p): Likewise.
7259         (dwarf2out_do_frame): Likewise.
7260         * except.c: Include flags.h.
7261         * final.c (dwarf2_debug_info_emitted_p): Likewise.
7262         (final_scan_insn_1): Likewise.
7263         * flags.h (dwarf_debuginfo_p): New function declaration.
7264         * opts.c (dwarf_debuginfo_p): New function definition.
7265         * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p.
7266         * toplev.c (process_options): Likewise.
7267
7268 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
7269
7270         * common.opt: Change type to support bitmasks.
7271         * flag-types.h (enum debug_info_type): Rename enumerator constants.
7272         (NO_DEBUG): New bitmask.
7273         (DBX_DEBUG): Likewise.
7274         (DWARF2_DEBUG): Likewise.
7275         (XCOFF_DEBUG): Likewise.
7276         (VMS_DEBUG): Likewise.
7277         (VMS_AND_DWARF2_DEBUG): Likewise.
7278         * flags.h (debug_set_to_format): New function declaration.
7279         (debug_set_count): Likewise.
7280         (debug_set_names): Likewise.
7281         * opts.c (debug_type_masks): Array of bitmasks for debug formats.
7282         (debug_set_to_format): New function definition.
7283         (debug_set_count): Likewise.
7284         (debug_set_names): Likewise.
7285         (set_debug_level): Update access to debug_type_names.
7286         * toplev.c: Likewise.
7287
7288 2021-05-20  Martin Sebor  <msebor@redhat.com>
7289
7290         PR middle-end/100684
7291         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda.
7292
7293 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
7294
7295         PR target/100701
7296         * config/i386/i386.md (isa): Remove x64_bmi.
7297         (enabled): Remove x64_bmi.
7298         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
7299         Remove general register alternative.
7300         (*andnot<VI_32:mode>3): Ditto.
7301         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
7302         (*<any_logic:code><VI_32:mode>3): Ditto.
7303
7304 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
7305
7306         * config/arm/arm.c: Include head files tree-vectorizer.h and
7307         cfgloop.h.
7308
7309 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
7310
7311         PR target/100637
7312         * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes.
7313         (*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint.
7314         (<s>mulv4hi3_highpart): New expander.
7315         (*<s>mulv2hi3_highpart): New insn pattern.
7316         (<s>mulv2hi3_higpart): New expander.
7317         (*<any_shift:insn>v2hi3): New insn pattern.
7318         (<any_shift:insn>v2hi3): New expander.
7319         * config/i386/sse.md (smulhrsv2hi3): New expander.
7320         (*smulhrsv2hi3): New insn pattern.
7321
7322 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
7323
7324         * doc/invoke.texi (vect-inner-loop-cost-factor): Document new
7325         parameter.
7326         * params.opt (vect-inner-loop-cost-factor): New.
7327         * targhooks.c (default_add_stmt_cost): Replace hardcoded factor
7328         50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file
7329         tree-vectorizer.h and its required ones.
7330         * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace
7331         hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR.
7332         * config/arm/arm.c (arm_add_stmt_cost): Likewise.
7333         * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
7334         * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
7335         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
7336         Likewise.
7337         (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor.
7338         * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor.
7339         (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro.
7340
7341 2021-05-20  Christophe Lyon  <christophe.lyon@linaro.org>
7342             Torbjörn Svensson  <torbjorn.svensson@st.com>
7343
7344         PR c/42579
7345         * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__.
7346
7347 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
7348
7349         PR middle-end/99928
7350         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For
7351         explicit linear clause when combined with target, make it map(tofrom:)
7352         instead of no clause or firstprivate.
7353
7354 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
7355
7356         PR tree-optimization/94589
7357         * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence
7358         of integral conversions.
7359
7360 2021-05-19  Andrew MacLeod  <amacleod@redhat.com>
7361
7362         * gimple-range.cc (fur_source::get_operand): New.
7363         (gimple_range_fold): Delete.
7364         (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt.
7365         (fold_using_range::range_of_range_op): Move from gimple_ranger.
7366         (fold_using_range::range_of_address): Ditto.
7367         (fold_using_range::range_of_phi): Ditto.
7368         (fold_using_range::range_of_call): Ditto.
7369         (fold_using_range::range_of_builtin_ubsan_call): Move from
7370         range_of_builtin_ubsan_call.
7371         (fold_using_range::range_of_builtin_call): Move from
7372         range_of_builtin_call.
7373         (gimple_ranger::range_of_builtin_call): Delete.
7374         (fold_using_range::range_of_cond_expr): Move from gimple_ranger.
7375         (gimple_ranger::fold_range_internal): New.
7376         (gimple_ranger::range_of_stmt): Use new fold_using_range API.
7377         (fold_using_range::range_of_ssa_name_with_loop_info): Move from
7378         gimple_ranger.  Improve ranges of SSA_NAMES when possible.
7379         * gimple-range.h (gimple_ranger): Remove various range_of routines.
7380         (class fur_source): New.
7381         (class fold_using_range): New.
7382         (fur_source::fur_source): New.
7383         (fold_range): New.
7384         * vr-values.c (vr_values::extract_range_basic): Use fold_using_range
7385         instead of range_of_builtin_call.
7386
7387 2021-05-19  Jonathan Wakely  <jwakely@redhat.com>
7388
7389         * doc/cpp.texi (Common Predefined Macros): Update documentation
7390         for the __GXX_EXPERIMENTAL_CXX0X__ macro.
7391
7392 2021-05-19  Alex Coplan  <alex.coplan@arm.com>
7393
7394         PR target/100333
7395         * config/arm/arm.md (nonsecure_call_internal): Always ensure
7396         callee's address is in a register.
7397
7398 2021-05-19  Geng Qi  <gengqi@linux.alibaba.com>
7399
7400         * common/config/riscv/riscv-common.c
7401         (riscv_subset_list::parsing_subset_version): Properly parse the letter
7402         'p' in '-march'.
7403         (riscv_subset_list::parse_std_ext,
7404          riscv_subset_list::parse_multiletter_ext): To handle errors generated
7405         in riscv_subset_list::parsing_subset_version.
7406
7407 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
7408
7409         * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
7410         type attribute in patterns generating XTN(2).
7411
7412 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
7413
7414         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>):
7415         Remove as duplicate of...
7416         (aarch64_xtn<mode>): This.
7417         (aarch64_xtn2<mode>_le): Move position in file.
7418         (aarch64_xtn2<mode>_be): Move position in file.
7419         (aarch64_xtn2<mode>): Move position in file.
7420         (vec_pack_trunc_<mode>): Define as an expander.
7421
7422 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
7423
7424         * config/aarch64/aarch64-simd-builtins.def: Split builtin
7425         generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into
7426         separate scalar and vector generators.
7427         * config/aarch64/aarch64-simd.md
7428         (aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and
7429         split into...
7430         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and...
7431         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This.
7432         * config/aarch64/iterators.md: Define SD_HSDI iterator.
7433
7434 2021-05-19  Jonathn Wright  <jonathan.wright@arm.com>
7435
7436         * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead
7437         of UNSPEC_SQXTUN2.
7438         * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2.
7439
7440 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
7441
7442         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>):
7443         Implement as an expand emitting a big/little endian
7444         instruction pattern.
7445         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define.
7446         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define.
7447
7448 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
7449
7450         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>):
7451         Implement as an expand emitting a big/little endian
7452         instruction pattern.
7453         (aarch64_<sur><addsub>hn2<mode>_insn_le): Define.
7454         (aarch64_<sur><addsub>hn2<mode>_insn_be): Define.
7455         * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and
7456         UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator.
7457
7458 2021-05-19  Richard Biener  <rguenther@suse.de>
7459
7460         PR middle-end/100672
7461         * fold-const.c (fold_negate_expr_1): Use element_precision.
7462         (negate_expr_p): Likewise.
7463
7464 2021-05-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
7465
7466         * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator.
7467         (pred_load): New int attribute.
7468         * config/aarch64/aarch64-sve.md
7469         (aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use
7470         SVE_PRED_LOAD enum iterator and corresponding pred_load attribute.
7471         * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to
7472         code_for_aarch64_load.
7473
7474 2021-05-19  Richard Biener  <rguenther@suse.de>
7475
7476         * cfgexpand.c (discover_nonconstant_array_refs_r): Make
7477         sure TARGET_MEM_REF bases are expanded as memory.
7478         * tree-ssa-operands.c (operands_scanner::get_tmr_operands):
7479         Do not mark TARGET_MEM_REF bases addressable.
7480         * tree-ssa.c (non_rewritable_mem_ref_base): Handle
7481         TARGET_MEM_REF bases as never rewritable.
7482         * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not
7483         walk TARGET_MEM_REF bases as address-takens.
7484         * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF.
7485
7486 2021-05-19  Richard Biener  <rguenther@suse.de>
7487
7488         * builtins.c (get_object_alignment_1): Strip outer
7489         WITH_SIZE_EXPR.
7490         * tree-dfa.c (get_ref_base_and_extent): Handle outer
7491         WITH_SIZE_EXPR for size processing and process the
7492         containing ref.
7493         * tree-ssa-alias.c (ao_ref_base_alias_set): Strip
7494         outer WITH_SIZE_EXPR.
7495         (ao_ref_base_alias_ptr_type): Likewise.
7496         (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref
7497         and handle that accordingly, stripping it for the
7498         core alias workers.
7499         * tree.c (get_base_address): Handle WITH_SIZE_EXPR by
7500         looking through it instead of returning NULL.
7501
7502 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
7503
7504         PR middle-end/100576
7505         * builtins.c (check_read_access): Convert bound to size_type_node if
7506         non-NULL.
7507
7508 2021-05-19  Richard Biener  <rguenther@suse.de>
7509
7510         * tree-cfg.c (verify_types_in_gimple_min_lval): Inline...
7511         (verify_types_in_gimple_reference): ... here.  Sanitize.
7512         (verify_gimple_call): Verify references in LHS and arguments.
7513         (verify_gimple_assign_single): Reject WITH_SIZE_EXPR.
7514
7515 2021-05-19  Uroš Bizjak  <ubizjak@gmail.com>
7516
7517         * config/i386/i386.h (VALID_INT_MODE_P):
7518         Add V8QI, V4HI and V2SI modes for TARGET_64BIT.
7519         * config/i386/i386.md (isa): Add x64_bmi.
7520         (enabled): Handle x64_bmi.
7521         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
7522         Add alternative using 64bit general registers.
7523         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
7524
7525 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
7526
7527         PR middle-end/99928
7528         * tree.h (OMP_MASTER_COMBINED): Define.
7529         * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate
7530         handling for outer combined/composite constructs to a loop.
7531         Handle lastprivate on combined target.
7532         (gimplify_expr): Formatting fix.
7533
7534 2021-05-19  Xionghu Luo  <luoxhu@linux.ibm.com>
7535
7536         * passes.def: Add sink_code pass before store_merging.
7537         * tree-ssa-sink.c (pass_sink_code:clone): New.
7538
7539 2021-05-18  Bill Schmidt  <wschmidt@linux.ibm.com>
7540
7541         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to
7542         rs6000_special_adjust_field_align_p.
7543         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
7544         * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary):
7545         Remove ABI warning.
7546         (rs6000_function_arg): Likewise.
7547         * config/rs6000/rs6000-protos.h
7548         (rs6000_special_adjust_field_align_p): Remove prototype.
7549         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
7550         Remove.
7551         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to
7552         rs6000_special_adjust_field_align_p.
7553
7554 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
7555
7556         PR target/100637
7557         * config/i386/i386.h (VALID_SSE2_REG_MODE):
7558         Add V4QI and V2HI modes.
7559         (VALID_INT_MODE_P): Ditto.
7560         * config/i386/mmx.md (VI_32): New mode iterator.
7561         (mmxvecsize): Handle V4QI and V2HI.
7562         (Yv_Yw): Ditto.
7563         (mov<VI_32:mode>): New expander.
7564         (*mov<mode>_internal): New insn pattern.
7565         (movmisalign<VI_32:mode>): New expander.
7566         (neg<VI_32:mode>): New expander.
7567         (<plusminus:insn><VI_32:mode>3): New expander.
7568         (*<plusminus:insn><VI_32:mode>3): New insn pattern.
7569         (mulv2hi3): New expander.
7570         (*mulv2hi3): New insn pattern.
7571         (one_cmpl<VI_32:mode>2): New expander.
7572         (*andnot<VI_32:mode>3): New insn pattern.
7573         (<any_logic:code><VI_32:mode>3): New expander.
7574         (*<any_logic:code><VI_32:mode>3): New insn pattern.
7575
7576 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
7577
7578         * config/i386/sse.md (<any_extend:insn>v4qiv4di2):
7579         Fix a mode mismatch with operand 1.
7580
7581 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
7582
7583         PR target/100626
7584         * config/i386/i386-expand.c (split_double_mode): Return
7585         temporary register when simplify_gen_subreg fails with
7586         the high half od the paradoxical subreg.
7587
7588 2021-05-18  Richard Biener  <rguenther@suse.de>
7589
7590         * cfgexpand.c (expand_one_var): Pass in forced_stack_var
7591         and honor it when expanding.
7592         (expand_used_vars_for_block): Pass through forced_stack_var.
7593         (expand_used_vars): Likewise.
7594         (discover_nonconstant_array_refs_r): Set bits in
7595         forced_stack_vars instead of marking vars TREE_ADDRESSABLE.
7596         (avoid_type_punning_on_regs): Likewise.
7597         (discover_nonconstant_array_refs): Likewise.
7598         (pass_expand::execute): Create and pass down forced_stack_var
7599         bitmap.  For parameters and returns temporarily set
7600         TREE_ADDRESSABLE when expand_function_start.
7601
7602 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
7603
7604         * doc/sourcebuild.texi: Document 'dg-note'.
7605
7606 2021-05-18  Tobias Burnus  <tobias@codesourcery.com>
7607
7608         PR other/100598
7609         * configure: Regenerate.
7610         * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@).
7611
7612 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
7613
7614         * gimple.h (is_gimple_omp_oacc): Tighten.
7615         * omp-low.c (check_omp_nesting_restrictions): Adjust.
7616
7617 2021-05-18  Richard Biener  <rguenther@suse.de>
7618
7619         * tree-ssa-operands.c (mark_address_taken): Simplify.
7620
7621 2021-05-18  Martin Liska  <mliska@suse.cz>
7622
7623         * config/gcn/mkoffload.c (STR): Redefine.
7624         * config/i386/intelmic-mkoffload.c (STR): Likewise.
7625         * config/nvptx/mkoffload.c (STR): Likewise.
7626
7627 2021-05-18  Martin Liska  <mliska@suse.cz>
7628
7629         * common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
7630         Use startswith function instead of strncmp.
7631         * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
7632         * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise.
7633         * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise.
7634         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise.
7635         * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise.
7636         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
7637         * config/arm/arm.c (arm_file_start): Likewise.
7638         (arm_valid_target_attribute_rec): Likewise.
7639         (thumb1_md_asm_adjust): Likewise.
7640         * config/arm/driver-arm.c (host_detect_local_cpu): Likewise.
7641         * config/avr/avr.c (STR_PREFIX_P): Likewise.
7642         (avr_set_current_function): Likewise.
7643         (avr_handle_addr_attribute): Likewise.
7644         (avr_asm_output_aligned_decl_common): Likewise.
7645         (avr_asm_named_section): Likewise.
7646         (avr_section_type_flags): Likewise.
7647         (avr_asm_select_section): Likewise.
7648         * config/c6x/c6x.c (c6x_in_small_data_p): Likewise.
7649         (c6x_section_type_flags): Likewise.
7650         * config/darwin-c.c (darwin_cfstring_ref_p): Likewise.
7651         (darwin_objc_declare_unresolved_class_reference): Likewise.
7652         (darwin_objc_declare_class_definition): Likewise.
7653         * config/darwin.c (indirect_data): Likewise.
7654         (darwin_encode_section_info): Likewise.
7655         (darwin_objc2_section): Likewise.
7656         (darwin_objc1_section): Likewise.
7657         (machopic_select_section): Likewise.
7658         (darwin_globalize_label): Likewise.
7659         (darwin_label_is_anonymous_local_objc_name): Likewise.
7660         (darwin_asm_named_section): Likewise.
7661         (darwin_asm_output_dwarf_offset): Likewise.
7662         * config/frv/frv.c (frv_string_begins_with): Likewise.
7663         (frv_in_small_data_p): Likewise.
7664         * config/gcn/mkoffload.c (STR): Likewise.
7665         (main): Likewise.
7666         * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise.
7667         * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
7668         * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise.
7669         (ix86_md_asm_adjust): Likewise.
7670         * config/i386/intelmic-mkoffload.c (STR): Likewise.
7671         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
7672         (i386_pe_file_end): Likewise.
7673         * config/ia64/ia64.c (ia64_in_small_data_p): Likewise.
7674         (ia64_section_type_flags): Likewise.
7675         * config/mips/driver-native.c (host_detect_local_cpu): Likewise.
7676         * config/mips/mips.c (mips_handle_interrupt_attr): Likewise.
7677         (mips16_stub_function_p): Likewise.
7678         (mips_function_rodata_section): Likewise.
7679         * config/msp430/msp430.c (msp430_mcu_name): Likewise.
7680         (msp430_function_section): Likewise.
7681         (msp430_section_type_flags): Likewise.
7682         (msp430_expand_helper): Likewise.
7683         * config/nios2/nios2.c (nios2_small_section_name_p): Likewise.
7684         (nios2_valid_target_attribute_rec): Likewise.
7685         * config/nvptx/mkoffload.c (process): Likewise.
7686         (STR): Likewise.
7687         * config/pa/som.h: Likewise.
7688         * config/pdp11/pdp11.c (pdp11_output_ident): Likewise.
7689         * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise.
7690         * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise.
7691         (rs6000_inner_target_options): Likewise.
7692         * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise.
7693         * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise.
7694         * config/vax/vax.c (vax_output_int_move): Likewise.
7695         * config/vms/vms-ld.c (startswith): Likewise.
7696         (process_args): Likewise.
7697         (main): Likewise.
7698         * config/vms/vms.c: Likewise.
7699
7700 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
7701
7702         PR rtl-optimization/100590
7703         * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if
7704         they are NONJUMP_INSN_P.
7705
7706 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
7707
7708         PR c++/100580
7709         * function.c (push_dummy_function): Set DECL_ARTIFICIAL and
7710         DECL_ASSEMBLER_NAME on the fn_decl.
7711
7712 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
7713
7714         PR tree-optimization/94589
7715         * tree-ssa-phiopt.c (spaceship_replacement): Pattern match
7716         phi result used in (res & ~1) == 0 comparison as res >= 0 as
7717         res == 2 would be UB with -ffinite-math-only.
7718
7719 2021-05-18  Martin Liska  <mliska@suse.cz>
7720
7721         * Makefile.in: genversion.o should depend on DATESTAMP.
7722
7723 2021-05-18  Claudiu Zissulescu  <claziss@synopsys.com>
7724
7725         * config/arc/simdext.md (negv2si2): Remove round bracket.
7726
7727 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
7728
7729         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
7730         _Bool as macro expanding to _Bool.
7731
7732 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
7733
7734         PR c++/100281
7735         * tree.c (build_reference_type_for_mode)
7736         (build_pointer_type_for_mode): Pick pointer mode if MODE argument
7737         is VOIDmode.
7738         (build_reference_type, build_pointer_type): Invoke
7739         build_*_type_for_mode with VOIDmode.
7740
7741 2021-05-17  Andrew MacLeod  <amacleod@redhat.com>
7742
7743         PR tree-optimization/100512
7744         * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const
7745         and non-zero pointer ranges as invariant.
7746         * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer
7747         processing from here.
7748
7749 2021-05-17  Tom de Vries  <tdevries@suse.de>
7750
7751         PR target/100497
7752         * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare
7753         * config/nvptx/nvptx.c (nvptx_output_barrier)
7754         (nvptx_output_atomic_insn): New function.
7755         (nvptx_print_operand): Add support for 'B'.
7756         * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic
7757         insns.
7758
7759 2021-05-17  Aldy Hernandez  <aldyh@redhat.com>
7760
7761         PR tree-optimization/100349
7762         * vr-values.c (bounds_of_var_in_loop): Bail if scev returns
7763           NULL.
7764
7765 2021-05-17  Tamar Christina  <tamar.christina@arm.com>
7766
7767         * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New.
7768         (host_detect_local_cpu): Use it.
7769
7770 2021-05-17  Martin Liska  <mliska@suse.cz>
7771
7772         * doc/invoke.texi: Add 2 missing dots.
7773
7774 2021-05-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
7775
7776         PR bootstrap/100552
7777         * configure.ac: Replace pattern substitution with call to sed.
7778         * configure: Regenerate.
7779
7780 2021-05-17  Richard Biener  <rguenther@suse.de>
7781
7782         PR middle-end/100582
7783         * tree.c (array_at_struct_end_p): Get to the base of the
7784         reference before looking for the underlying decl.
7785
7786 2021-05-17  Joern Rennecke  <joern.rennecke@embecosm.com>
7787
7788         * genoutput.c (validate_insn_alternatives) Make "wrong number of
7789         alternatives" message more specific, and remove assumption on where
7790         the problem is.
7791
7792 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
7793
7794         * config/arm/iterators.md (V16): New iterator.
7795         (VH_cvtto): New iterator.
7796         (v_cmp_result): Added V4HF and V8HF support.
7797         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH.
7798         (vcond<mode><mode>): Likewise.
7799         (vcond_mask_<mode><v_cmp_result>): Likewise.
7800         (vcond<VH_cvtto><mode>): New expander.
7801
7802 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
7803
7804         * config/arm/arm-protos.h (arm_expand_vector_compare): Update
7805         prototype.
7806         * config/arm/arm.c (arm_expand_vector_compare): Add support for
7807         MVE.
7808         (arm_expand_vcond): Likewise.
7809         * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S,
7810         VCMPEQQ_N_S, VCMPNEQ_N_S.
7811         (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove.
7812         * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix.
7813         (@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise.
7814         (@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise.
7815         (@mve_vpselq_<supf><mode>): Likewise.
7816         (@mve_vpselq_f<mode>"): Likewise.
7817         * config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE
7818         and move to vec-common.md.
7819         (vec_cmpu<mode><mode>): Likewise.
7820         (vcond<mode><mode>): Likewise.
7821         (vcond<V_cvtto><mode>): Likewise.
7822         (vcondu<mode><v_cmp_result>): Likewise.
7823         (vcond_mask_<mode><v_cmp_result>): Likewise.
7824         * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S)
7825         (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U)
7826         (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S)
7827         (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U)
7828         (VCMPHIQ_N_U, VCMPHIQ_U): Remove.
7829         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved
7830         from neon.md.
7831         (vec_cmpu<mode><mode>): Likewise.
7832         (vcond<mode><mode>): Likewise.
7833         (vcond<V_cvtto><mode>): Likewise.
7834         (vcondu<mode><v_cmp_result>): Likewise.
7835         (vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math
7836         condition.
7837
7838 2021-05-17  liuhongt  <hongtao.liu@intel.com>
7839
7840         PR target/100549
7841         * config/i386/i386.c (ix86_gimple_fold_builtin): Use
7842         gsi_insert_seq_before instead.
7843
7844 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
7845
7846         * doc/sourcebuild.texi (arm_qbit_ok): Rename into...
7847         (arm_sat_ok): ...this.
7848
7849 2021-05-17  Martin Liska  <mliska@suse.cz>
7850
7851         * lto-wrapper.c (merge_flto_options): Factor out a new function.
7852         (merge_and_complain): Use it.
7853         (run_gcc): Merge also linker command line -flto=foo argument
7854         with IL files.
7855
7856 2021-05-16  Christophe Lyon  <christophe.lyon@linaro.org>
7857
7858         * config/arm/arm.h (CPP_SPEC): Remove error message about
7859         -mlittle-endian/-mbig-endian conflict.
7860
7861 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
7862
7863         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
7864         __ROP_PROTECT__ if -mrop-protect is selected.
7865
7866 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
7867
7868         * config/rs6000/rs6000-internal.h (rs6000_stack): Add
7869         rop_hash_save_offset and rop_hash_size.
7870         * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute
7871         rop_hash_size and rop_hash_save_offset.
7872         (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size.
7873         (rs6000_emit_prologue): Emit hashst[p] in prologue.
7874         (rs6000_emit_epilogue): Emit hashchk[p] in epilogue.
7875         * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and
7876         UNSPEC_HASHCHK.
7877         (hashst): New define_insn.
7878         (hashchk): Likewise.
7879
7880 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
7881
7882         * config/rs6000/rs6000.c (rs6000_option_override_internal):
7883         Disable shrink wrap when inserting ROP-protect instructions.
7884         * config/rs6000/rs6000.opt (mrop-protect): New option.
7885         (mprivileged): Likewise.
7886         * doc/invoke.texi: Document mrop-protect and mprivileged.
7887
7888 2021-05-15  Hans-Peter Nilsson  <hp@axis.com>
7889
7890         * reorg.c (fill_slots_from_thread): Reinstate code typoed out in
7891         "Remove CC0".
7892
7893 2021-05-15  Martin Jambor  <mjambor@suse.cz>
7894
7895         Revert:
7896         2021-05-13  Martin Jambor  <mjambor@suse.cz>
7897
7898         PR tree-optimization/100453
7899         * tree-sra.c (sra_modify_assign): All const base accesses do not
7900         need refreshing, not just those from decl_pool.
7901         (sra_modify_assign): Do not refresh into a const base decl.
7902
7903 2021-05-15  Jakub Jelinek  <jakub@redhat.com>
7904
7905         PR rtl-optimization/100342
7906         * regcprop.c (copy_value): When copying a source reg in a wider
7907         mode than it has recorded for the value, adjust recorded destination
7908         mode too or punt if !REG_CAN_CHANGE_MODE_P.
7909
7910 2021-05-14  Jason Merrill  <jason@redhat.com>
7911
7912         * intl.h: Add comments.
7913
7914 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7915
7916         * config/aarch64/aarch64-simd.md
7917         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into...
7918         (aarch64_sqdmlsl2_lane<mode>_internal): ... This...
7919         (aarch64_sqdmlal2_lane<mode>_internal): ... And this.
7920         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ...
7921         (aarch64_sqdmlsl2_laneq<mode>_internal): ... This...
7922         (aarch64_sqdmlal2_laneq<mode>_internal): ... And this.
7923         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into...
7924         (aarch64_sqdmlsl2_n<mode>_internal): ... This...
7925         (aarch64_sqdmlal2_n<mode>_internal): ... And this.
7926
7927 2021-05-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7928
7929         PR target/66791
7930         * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's
7931         boolean logic equivalent.
7932         (vtst_s16): Likewise.
7933         (vtst_s32): Likewise.
7934         (vtst_u8): Likewise.
7935         (vtst_u16): Likewise.
7936         (vtst_u32): Likewise.
7937         (vtst_p8): Likewise.
7938         (vtst_p16): Likewise.
7939         (vtstq_s8): Likewise.
7940         (vtstq_s16): Likewise.
7941         (vtstq_s32): Likewise.
7942         (vtstq_u8): Likewise.
7943         (vtstq_u16): Likewise.
7944         (vtstq_u32): Likewise.
7945         (vtstq_p8): Likewise.
7946         (vtstq_p16): Likewise.
7947         * config/arm/arm_neon_builtins.def: Remove entry for vtst.
7948         * config/arm/neon.md (neon_vtst<mode>): Remove pattern.
7949
7950 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7951
7952         * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into...
7953         (aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This.
7954         (aarch64_sqdmlsl2<mode>): Delete.
7955         (aarch64_sqdmlal2_lane<mode>): Merge this...
7956         (aarch64_sqdmlsl2_lane<mode>): ... And this...
7957         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this.
7958         (aarch64_sqdmlal2_laneq<mode>): Merge this...
7959         (aarch64_sqdmlsl2_laneq<mode>): ... And this...
7960         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this.
7961         (aarch64_sqdmlal2_n<mode>): Merge this...
7962         (aarch64_sqdmlsl2_n<mode>): ... And this...
7963         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this.
7964
7965 2021-05-13  Martin Sebor  <msebor@redhat.com>
7966
7967         PR middle-end/100574
7968         * builtins.c (access_ref::get_ref): Improve detection of PHIs with
7969         all null arguments.
7970
7971 2021-05-13  Martin Sebor  <msebor@redhat.com>
7972
7973         PR tree-optimization/93100
7974         PR middle-end/98583
7975         * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that
7976         don't modify referenced objects.
7977
7978 2021-05-13  Martin Jambor  <mjambor@suse.cz>
7979
7980         PR tree-optimization/100453
7981         * tree-sra.c (sra_modify_assign): All const base accesses do not
7982         need refreshing, not just those from decl_pool.
7983         (sra_modify_assign): Do not refresh into a const base decl.
7984
7985 2021-05-13  Martin Liska  <mliska@suse.cz>
7986
7987         * tree-ssa-dom.c: Remove m_simplifier.
7988
7989 2021-05-13  Richard Earnshaw  <rearnsha@arm.com>
7990
7991         PR target/100563
7992         * config/arm/arm.c (arm_canonicalize_comparison): Correctly
7993         canonicalize DImode inequality comparisons against the
7994         maximum integral value.
7995
7996 2021-05-13  Jakub Jelinek  <jakub@redhat.com>
7997
7998         PR tree-optimization/98856
7999         * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument.
8000         Expect V2DI and V4DI arithmetic right shifts to be emulated.
8001         (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost
8002         caller.
8003         * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave,
8004         expand_vec_perm_2perm_pblendv): New functions.
8005         (ix86_expand_vec_perm_const_1): Use them.
8006         * config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ...
8007         (<mask_codefor>ashr<mode>3<mask_name>): ... this.
8008         (ashr<mode>3): New define_expand with VI248_AVX512BW iterator.
8009         (ashrv4di3): New define_expand.
8010         (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP
8011         and !TARGET_AVX512VL expansion.
8012
8013 2021-05-13  Uroš Bizjak  <ubizjak@gmail.com>
8014
8015         PR target/100581
8016         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode
8017         sizes < 16 to a register when constructing vpcmov pattern.
8018         * config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode.
8019
8020 2021-05-13  Martin Liska  <mliska@suse.cz>
8021
8022         * gcov-io.c (gcov_write_block): Remove.
8023         (gcov_write_words): Likewise.
8024         (gcov_read_words): Re-implement using gcov_read_bytes.
8025         (gcov_allocate): Remove.
8026         (GCOV_BLOCK_SIZE): Likewise.
8027         (struct gcov_var): Remove most of the fields.
8028         (gcov_position): Implement with ftell.
8029         (gcov_rewrite): Remove setting of start and offset fields.
8030         (from_file): Re-format.
8031         (gcov_open): Remove setbuf call. It should not be needed.
8032         (gcov_close): Remove internal buffer handling.
8033         (gcov_magic): Use __builtin_bswap32.
8034         (gcov_write_counter): Use directly gcov_write_unsigned.
8035         (gcov_write_string): Use direct fwrite and do not round
8036         to 4 bytes.
8037         (gcov_seek): Use directly fseek.
8038         (gcov_write_tag): Use gcov_write_unsigned directly.
8039         (gcov_write_length): Likewise.
8040         (gcov_write_tag_length): Likewise.
8041         (gcov_read_bytes): Use directly fread.
8042         (gcov_read_unsigned): Use gcov_read_words.
8043         (gcov_read_counter): Likewise.
8044         (gcov_read_string): Use gcov_read_bytes.
8045         * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect
8046         that size is not in bytes, but words (4B).
8047         (GCOV_TAG_FUNCTION_LENGTH): Likewise.
8048         (GCOV_TAG_ARCS_LENGTH): Likewise.
8049         (GCOV_TAG_ARCS_NUM): Likewise.
8050         (GCOV_TAG_COUNTER_LENGTH): Likewise.
8051         (GCOV_TAG_COUNTER_NUM): Likewise.
8052         (GCOV_TAG_SUMMARY_LENGTH): Likewise.
8053
8054 2021-05-13  liuhongt  <hongtao.liu@intel.com>
8055
8056         PR target/94680
8057         * config/i386/sse.md (ssedoublevecmode): Add attribute for
8058         V64QI/V32HI/V16SI/V4DI.
8059         (ssehalfvecmode): Add attribute for V2DI/V2DF.
8060         (*vec_concatv4si_0): Extend to VI124_128.
8061         (*vec_concat<mode>_0): New pre-reload splitter.
8062         * config/i386/predicates.md (movq_parallel): New predicate.
8063
8064 2021-05-13  Alexandre Oliva  <oliva@adacore.com>
8065
8066         * targhooks.c (default_zero_call_used_regs): Retry using
8067         successfully-zeroed registers as sources.
8068
8069 2021-05-12  Tobias Burnus  <tobias@codesourcery.com>
8070
8071         * omp-low.c (finish_taskreg_scan): Use the proper detach decl.
8072
8073 2021-05-12  Aldy Hernandez  <aldyh@redhat.com>
8074
8075         PR c/100521
8076         * gimple-range.cc (range_of_builtin_call): Skip out on
8077           processing __builtin_clz when varying.
8078
8079 2021-05-12  Tom de Vries  <tdevries@suse.de>
8080
8081         PR target/96005
8082         * config/nvptx/nvptx-opts.h (enum ptx_version): New enum.
8083         * config/nvptx/nvptx.c (nvptx_file_start): Print .version according
8084         to ptx_version_option.
8085         * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define.
8086         * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
8087         (define_insn "nvptx_vote_ballot"): Use sync variant for
8088         TARGET_PTX_6_3.
8089         * config/nvptx/nvptx.opt (ptx_version): Add enum.
8090         (mptx): Add option.
8091         * doc/invoke.texi (Nvidia PTX Options): Add mptx item.
8092
8093 2021-05-12  Richard Biener  <rguenther@suse.de>
8094
8095         PR tree-optimization/100566
8096         * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
8097         allow_back for all edge queries.
8098
8099 2021-05-12  liuhongt  <hongtao.liu@intel.com>
8100
8101         PR target/99908
8102         * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add
8103         splitters for pblendvb of NOT mask register.
8104
8105 2021-05-12  Richard Biener  <rguenther@suse.de>
8106
8107         PR tree-optimization/100519
8108         * tree-ssa-reassoc.c (can_associate_p): Split into...
8109         (can_associate_op_p): ... this
8110         (can_associate_type_p): ... and this.
8111         (is_reassociable_op): Call can_associate_op_p.
8112         (break_up_subtract_bb): Call the appropriate predicates.
8113         (reassociate_bb): Likewise.
8114
8115 2021-05-12  Martin Liska  <mliska@suse.cz>
8116
8117         * lto-wrapper.c (merge_and_complain): Merge -flto=arg options.
8118         (run_gcc): Use -flto argument detection for merged
8119         fdecoded_options.
8120
8121 2021-05-12  Martin Liska  <mliska@suse.cz>
8122
8123         * lto-wrapper.c (print_lto_docs_link): New function.
8124         (run_gcc): Print warning about missing job server detection
8125         after we know NR of partitions. Do the same for -flto{,=1}.
8126         * opts.c (get_option_html_page): Support -flto option.
8127
8128 2021-05-12  Martin Liska  <mliska@suse.cz>
8129
8130         * lto-wrapper.c (get_options_from_collect_gcc_options): Change
8131         return type.
8132         (append_option): Remove.
8133         (find_option): Rework to use the vector type.
8134         (remove_option): Remove.
8135         (merge_and_complain): Use vectors for cl_decoded_option data
8136         type arguments.
8137         (append_compiler_options): Likewise.
8138         (append_diag_options): Likewise.
8139         (append_linker_options): Likewise.
8140         (append_offload_options): Likewise.
8141         (compile_offload_image): Likewise.
8142         (compile_images_for_offload_targets): Likewise.
8143         (find_and_merge_options): Likewise.
8144         (run_gcc): Likewise.
8145
8146 2021-05-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8147
8148         PR debug/100515
8149         * dwarf2out.c (dwarf2out_finish): Set
8150         have_multiple_function_sections with multi-range text_section.
8151
8152 2021-05-12  Martin Liska  <mliska@suse.cz>
8153
8154         PR bootstrap/100560
8155         * Makefile.in: Remove version.h from linker command line.
8156
8157 2021-05-12  Richard Biener  <rguenther@suse.de>
8158
8159         PR middle-end/100547
8160         * rtl.h (rtvec_alloc): Make argument size_t.
8161         * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX.
8162
8163 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
8164
8165         PR middle-end/100508
8166         * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
8167         type, don't reuse DECL_RTL if it has different mode, instead force
8168         creation of a new DEBUG_EXPR.
8169
8170 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
8171             Marc Glisse  <marc.glisse@inria.fr>
8172
8173         PR tree-optimization/94589
8174         * match.pd ((X & Y) == X -> (X & ~Y) == 0,
8175         (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications.
8176
8177 2021-05-12  Uroš Bizjak  <ubizjak@gmail.com>
8178
8179         PR target/98218
8180         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
8181         * config/i386/mmx.md (MMXMODE124): New mode iterator.
8182         (V2FI): Ditto.
8183         (mmxintvecmode): New mode attribute.
8184         (mmxintvecmodelower): Ditto.
8185         (*mmx_maskcmpv2sf3_comm): New insn pattern.
8186         (*mmx_maskcmpv2sf3): Ditto.
8187         (vec_cmpv2sfv2si): New expander.
8188         (vcond<V2FI:mode>v2si): Ditto.
8189         (mmx_vlendvps): New insn pattern.
8190         (vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode.
8191         (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
8192         (vcond_mask_<mode><mmxintvecmodelower>): Ditto.
8193
8194 2021-05-11  Martin Sebor  <msebor@redhat.com>
8195
8196         PR middle-end/21433
8197         * expr.c (expand_expr_real_1): Replace unreachable code with an assert.
8198
8199 2021-05-11  Richard Biener  <rguenther@suse.de>
8200
8201         * gimple-fold.c (gimple_fold_call): Do not call
8202         maybe_fold_reference on call arguments or the static chain.
8203         (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM
8204         inputs.
8205
8206 2021-05-11  Martin Liska  <mliska@suse.cz>
8207
8208         * builtins.def (DEF_HSAIL_BUILTIN): Remove.
8209         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
8210         (DEF_HSAIL_SAT_BUILTIN): Likewise.
8211         (DEF_HSAIL_INTR_BUILTIN): Likewise.
8212         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
8213         * doc/frontends.texi: Remove BRIG.
8214         * doc/install.texi: Likewise.
8215         * doc/invoke.texi: Likewise.
8216         * doc/standards.texi: Likewise.
8217         * brig-builtins.def: Removed.
8218         * brig/ChangeLog: Removed.
8219         * brig/Make-lang.in: Removed.
8220         * brig/brig-builtins.h: Removed.
8221         * brig/brig-c.h: Removed.
8222         * brig/brig-lang.c: Removed.
8223         * brig/brigfrontend/brig-arg-block-handler.cc: Removed.
8224         * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed.
8225         * brig/brigfrontend/brig-basic-inst-handler.cc: Removed.
8226         * brig/brigfrontend/brig-branch-inst-handler.cc: Removed.
8227         * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed.
8228         * brig/brigfrontend/brig-code-entry-handler.cc: Removed.
8229         * brig/brigfrontend/brig-code-entry-handler.h: Removed.
8230         * brig/brigfrontend/brig-comment-handler.cc: Removed.
8231         * brig/brigfrontend/brig-control-handler.cc: Removed.
8232         * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed.
8233         * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed.
8234         * brig/brigfrontend/brig-fbarrier-handler.cc: Removed.
8235         * brig/brigfrontend/brig-function-handler.cc: Removed.
8236         * brig/brigfrontend/brig-function.cc: Removed.
8237         * brig/brigfrontend/brig-function.h: Removed.
8238         * brig/brigfrontend/brig-inst-mod-handler.cc: Removed.
8239         * brig/brigfrontend/brig-label-handler.cc: Removed.
8240         * brig/brigfrontend/brig-lane-inst-handler.cc: Removed.
8241         * brig/brigfrontend/brig-machine.c: Removed.
8242         * brig/brigfrontend/brig-machine.h: Removed.
8243         * brig/brigfrontend/brig-mem-inst-handler.cc: Removed.
8244         * brig/brigfrontend/brig-module-handler.cc: Removed.
8245         * brig/brigfrontend/brig-queue-inst-handler.cc: Removed.
8246         * brig/brigfrontend/brig-seg-inst-handler.cc: Removed.
8247         * brig/brigfrontend/brig-signal-inst-handler.cc: Removed.
8248         * brig/brigfrontend/brig-to-generic.cc: Removed.
8249         * brig/brigfrontend/brig-to-generic.h: Removed.
8250         * brig/brigfrontend/brig-util.cc: Removed.
8251         * brig/brigfrontend/brig-util.h: Removed.
8252         * brig/brigfrontend/brig-variable-handler.cc: Removed.
8253         * brig/brigfrontend/hsa-brig-format.h: Removed.
8254         * brig/brigfrontend/phsa.h: Removed.
8255         * brig/brigspec.c: Removed.
8256         * brig/config-lang.in: Removed.
8257         * brig/gccbrig.texi: Removed.
8258         * brig/lang-specs.h: Removed.
8259         * brig/lang.opt: Removed.
8260
8261 2021-05-11  Richard Biener  <rguenther@suse.de>
8262
8263         PR ipa/100513
8264         * ipa-param-manipulation.c
8265         (ipa_param_body_adjustments::modify_call_stmt): Avoid
8266         altering SSA_NAME_DEF_STMT by adjusting the calls LHS
8267         via gimple_call_lhs_ptr.
8268
8269 2021-05-11  Alex Coplan  <alex.coplan@arm.com>
8270
8271         PR target/99725
8272         * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
8273         Avoid emitting CFA adjusts on the sp if we have the fp.
8274
8275 2021-05-11  Richard Sandiford  <richard.sandiford@arm.com>
8276
8277         * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete.
8278         (VMULD): New iterator.
8279         (VCOND): Handle V4HF and V8HF.
8280         (VCONQ): Fix entry for V2SF.
8281         * config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD
8282         instead of VMUL.  Use a 64-bit vector mode for the indexed operand.
8283         (*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with...
8284         (mul_laneq<mode>3): ...this define_insn.  Use VMUL instead of VDQSF.
8285         Use a 128-bit vector mode for the indexed operand.  Use stype for
8286         the scheduling type.
8287
8288 2021-05-11  Richard Biener  <rguenther@suse.de>
8289
8290         * gimple-fold.c (maybe_fold_reference): Only return
8291         is_gimple_min_invariant values.
8292
8293 2021-05-11  Richard Biener  <rguenther@suse.de>
8294
8295         PR middle-end/100509
8296         * gimple-fold.c (fold_gimple_assign): Only call
8297         get_symbol_constant_value on register type symbols.
8298
8299 2021-05-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
8300             Joe Ramsay   <joe.ramsay@arm.com>
8301
8302         PR target/100419
8303         * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments.
8304         (__arm_vcmpneq): Remove duplicate definition.
8305         (__arm_vstrwq_scatter_offset_p): Likewise.
8306         (__arm_vmaxq_x): Likewise.
8307         (__arm_vmlsdavaq): Likewise.
8308         (__arm_vmlsdavaxq): Likewise.
8309         (__arm_vmlsdavq_p): Likewise.
8310         (__arm_vmlsdavxq_p): Likewise.
8311         (__arm_vrmlaldavhaq): Likewise.
8312         (__arm_vstrbq_p): Likewise.
8313         (__arm_vstrbq_scatter_offset): Likewise.
8314         (__arm_vstrbq_scatter_offset_p): Likewise.
8315         (__arm_vstrdq_scatter_offset): Likewise.
8316         (__arm_vstrdq_scatter_offset_p): Likewise.
8317         (__arm_vstrdq_scatter_shifted_offset): Likewise.
8318         (__arm_vstrdq_scatter_shifted_offset_p): Likewise.
8319
8320 2021-05-11  Jakub Jelinek  <jakub@redhat.com>
8321
8322         PR middle-end/100471
8323         * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data
8324         is 0, bypass the reduction loop including
8325         GOMP_taskgroup_reduction_unregister call.
8326
8327 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
8328
8329         * config/rs6000/rs6000.c (struct rs6000_cost_data): New member
8330         costing_for_scalar.
8331         (rs6000_density_test): Early return if costing_for_scalar is true.
8332         (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data.
8333
8334 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
8335
8336         * doc/tm.texi: Regenerated.
8337         * target.def (init_cost): Add new parameter costing_for_scalar.
8338         * targhooks.c (default_init_cost): Adjust for new parameter.
8339         * targhooks.h (default_init_cost): Likewise.
8340         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise.
8341         (vect_compute_single_scalar_iteration_cost): Likewise.
8342         (vect_analyze_loop_2): Likewise.
8343         * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise.
8344         (vect_bb_vectorization_profitable_p): Likewise.
8345         * tree-vectorizer.h (init_cost): Likewise.
8346         * config/aarch64/aarch64.c (aarch64_init_cost): Likewise.
8347         * config/i386/i386.c (ix86_init_cost): Likewise.
8348         * config/rs6000/rs6000.c (rs6000_init_cost): Likewise.
8349
8350 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
8351
8352         * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to
8353         vect_nonmem and moved into...
8354         (struct rs6000_cost_data): ...here.
8355         (rs6000_init_cost): Use vect_nonmem of cost_data instead.
8356         (rs6000_add_stmt_cost): Likewise.
8357         (rs6000_finish_cost): Likewise.
8358
8359 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
8360
8361         * range-op.cc (get_bool_state): Adjust head comment.
8362         (operator_not_equal::op1_range): Fix comment.
8363         (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable.
8364
8365 2021-05-10  Martin Sebor  <msebor@redhat.com>
8366
8367         PR middle-end/100425
8368         PR middle-end/100510
8369         * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename...
8370         (pass_walloca::xlimit_certain_p): ...to this.
8371         (pass_walloca::gate): Execute for any kind of handled warning.
8372         (pass_walloca::execute): Avoid issuing "maybe" and "unbounded"
8373         warnings when xlimit_certain_p is set.
8374
8375 2021-05-10  Pat Haugen  <pthaugen@linux.ibm.com>
8376
8377         * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class):
8378         Return ALTIVEC_REGS if that is best_class.
8379         (rs6000_compute_pressure_classes): Add ALTIVEC_REGS.
8380
8381 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
8382
8383         * config/arm/arm.h (CPP_SPEC): Remove error message about
8384         -mfloat-abi.
8385
8386 2021-05-10  Martin Jambor  <mjambor@suse.cz>
8387
8388         * ipa-prop.h (IPA_NODE_REF): Removed.
8389         (IPA_NODE_REF_GET_CREATE): Likewise.
8390         (IPA_EDGE_REF): Likewise.
8391         (IPA_EDGE_REF_GET_CREATE): Likewise.
8392         (IS_VALID_JUMP_FUNC_INDEX): Likewise.
8393         * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct
8394         use of ipa_node_params_sum.
8395         (ipcp_versionable_function_p): Likewise.
8396         (push_node_to_stack): Likewise.
8397         (pop_node_from_stack): Likewise.
8398         (set_single_call_flag): Replaced two IPA_NODE_REF with one single
8399         direct use of ipa_node_params_sum.
8400         (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of
8401         ipa_node_params_sum.
8402         (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of
8403         ipa_edge_args_sum.
8404         (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct
8405         use of ipa_node_params_sum.
8406         (self_recursively_generated_p): Likewise.
8407         (propagate_scalar_across_jump_function): Likewise.
8408         (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a
8409         direct use of ipa_edge_args_sum, moved the lookup after the early
8410         exit.  Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum.
8411         (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with
8412         direct uses of ipa_node_params_sum.
8413         (propagate_vr_across_jump_function): Likewise.
8414         (propagate_aggregate_lattice): Likewise.
8415         (propagate_aggs_across_jump_function): Likewise.
8416         (propagate_constants_across_call): Likewise, also replaced
8417         IPA_EDGE_REF with a direct use of ipa_edge_args_sum.
8418         (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use
8419         of ipa_node_params_sum.
8420         (estimate_local_effects): Likewise.
8421         (add_all_node_vals_to_toposort): Likewise.
8422         (propagate_constants_topo): Likewise.
8423         (ipcp_propagate_stage): Likewise.
8424         (ipcp_discover_new_direct_edges): Likewise.
8425         (calls_same_node_or_its_all_contexts_clone_p): Likewise.
8426         (cgraph_edge_brings_value_p): Likewise (in both overloaded functions).
8427         (get_info_about_necessary_edges): Likewise.
8428         (want_remove_some_param_p): Likewise.
8429         (create_specialized_node): Likewise.
8430         (self_recursive_pass_through_p): Likewise.
8431         (self_recursive_agg_pass_through_p): Likewise.
8432         (find_more_scalar_values_for_callers_subset): Likewise and also
8433         replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one
8434         case replacing two of those with a single query.
8435         (find_more_contexts_for_caller_subset): Likewise for the
8436         ipa_polymorphic_call_context overload.
8437         (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct
8438         use of ipa_edge_args_sum.  Replaced IPA_NODE_REF with direct uses of
8439         ipa_node_params_sum.
8440         (find_aggregate_values_for_callers_subset): Likewise, also reusing
8441         results of ipa_edge_args_sum->get.
8442         (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with
8443         direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a
8444         direct use of ipa_edge_args_sum.
8445         (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node
8446         summary query after the early exit and reused the result later.
8447         (decide_about_value): Replaced IPA_NODE_REF with a direct use of
8448         ipa_node_params_sum.
8449         (decide_whether_version_node): Likewise.  Removed re-querying for
8450         summaries after cloning.
8451         (spread_undeadness): Replaced IPA_NODE_REF with a direct use of
8452         ipa_node_params_sum.
8453         (has_undead_caller_from_outside_scc_p): Likewise, reusing results of
8454         some queries.
8455         (identify_dead_nodes): Likewise.
8456         (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of
8457         ipa_node_params_sum.
8458         (ipcp_store_vr_results): Likewise.
8459         * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
8460         (ipa_fn_summary_t::duplicate): Likewise.
8461         (analyze_function_body): Likewise.
8462         (estimate_calls_size_and_time): Likewise.
8463         (ipa_cached_call_context::duplicate_from): Likewise.
8464         (ipa_call_context::equal_to): Likewise.
8465         (remap_edge_params): Likewise.
8466         (ipa_merge_fn_summary_after_inlining): Likewise.
8467         (inline_read_section): Likewise.
8468         * ipa-icf.c (sem_function::param_used_p): Likewise.
8469         * ipa-modref.c (compute_parm_map): Likewise.
8470         (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of
8471         ipa_edge_args_sum.
8472         (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of
8473         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
8474         ipa_edge_args_sum.
8475         * ipa-profile.c (check_argument_count): Likewise.
8476         * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE
8477         with a direct use of ipa_node_params_sum.
8478         (ipa_initialize_node_params): Likewise.
8479         (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a
8480         direct use of ipa_edge_args_sum and reused the query result.
8481         (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a
8482         direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a
8483         direct use of ipa_edge_args_sum.
8484         (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of
8485         ipa_node_params_sum and reused the result of the query.
8486         (ipa_analyze_node): Likewise.
8487         (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use
8488         of ipa_node_params_sum.
8489         (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with
8490         direct uses of ipa_edge_args_sum.
8491         (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with
8492         direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a
8493         direct use of ipa_edge_args_sum.  Removed superficial re-querying the
8494         top edge summary.
8495         (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of
8496         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
8497         ipa_edge_args_sum.
8498         (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a
8499         direct use of ipa_edge_args_sum.
8500         (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct
8501         use of ipa_node_params_sum.
8502         (ipa_print_node_params): Likewise.
8503         (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with
8504         direct uses of ipa_edge_args_sum.
8505         (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of
8506         ipa_edge_args_sum.
8507         (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of
8508         ipa_node_params_sum.
8509         (ipa_prop_write_jump_functions): Likewise.  Move variable node to the
8510         scopes where it is used.
8511
8512 2021-05-10  Uroš Bizjak  <ubizjak@gmail.com>
8513
8514         * config/i386/i386-expand.c (ix86_expand_sse_movcc)
8515         <case E_V2SImode>: Force op_true to register.
8516
8517 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
8518
8519         * config/arm/iterators.md (MVE_FP_COMPARISONS): New.
8520         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>)
8521         (mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f*
8522         patterns.
8523         (mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>)
8524         (mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>)
8525         (mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>)
8526         (mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>)
8527         (mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>)
8528         (mve_vcmpneq_n_f<mode>): Remove.
8529         * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F)
8530         (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F)
8531         (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove.
8532
8533 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
8534
8535         * config/arm/iterators.md (MVE_COMPARISONS): New.
8536         (mve_cmp_op): New.
8537         (mve_cmp_type): New.
8538         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
8539         mve_vcmp patterns.
8540         (mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>)
8541         (mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>)
8542         (mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>)
8543         (mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>)
8544         (mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
8545         (mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
8546         (mve_vcmpneq_n_<mode>): Remove.
8547
8548 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
8549
8550         * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix.
8551         * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix.
8552         * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern
8553         names.
8554
8555 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
8556
8557         * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove.
8558         (vcmpneq_n_u): Likewise.
8559         (vcmpeqq_u,): Likewise.
8560         (vcmpeqq_n_u): Likewise.
8561         * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U,
8562         VCMPEQQ_N_U and VCMPNEQ_N_U.
8563         * config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration.
8564         (mve_vcmpeqq_n): Likewise.
8565         (mve_vcmpeqq): Likewise.
8566         (mve_vcmpneq_n): Likewise.
8567
8568 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
8569
8570         * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call
8571         the 's' version of the builtin.
8572
8573 2021-05-10  Richard Biener  <rguenther@suse.de>
8574
8575         PR tree-optimization/100492
8576         * tree-loop-distribution.c (find_seed_stmts_for_distribution):
8577         Find nothing when the loop contains an irreducible region.
8578
8579 2021-05-10  Richard Biener  <rguenther@suse.de>
8580
8581         PR middle-end/100464
8582         PR c++/100468
8583         * gimple-fold.c (canonicalize_constructor_val): Do not set
8584         TREE_ADDRESSABLE.
8585
8586 2021-05-10  Richard Biener  <rguenther@suse.de>
8587
8588         PR tree-optimization/100434
8589         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
8590         call LHS.
8591         (dse_optimize_stmt): Handle call LHS by dropping the
8592         LHS or the whole call if it doesn't have other
8593         side-effects.
8594         (pass_dse::execute): Adjust.
8595
8596 2021-05-10  Martin Liska  <mliska@suse.cz>
8597
8598         * Makefile.in: Add missing genversion rule.
8599
8600 2021-05-10  Alex Coplan  <alex.coplan@arm.com>
8601
8602         PR target/99960
8603         * config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use
8604         vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.
8605
8606 2021-05-10  Martin Liska  <mliska@suse.cz>
8607
8608         * builtins.c (is_builtin_name): Use startswith
8609         function instead of strncmp.
8610         * collect2.c (main): Likewise.
8611         (has_lto_section): Likewise.
8612         (scan_libraries): Likewise.
8613         * coverage.c (coverage_checksum_string): Likewise.
8614         (coverage_init): Likewise.
8615         * dwarf2out.c (is_cxx): Likewise.
8616         (gen_compile_unit_die): Likewise.
8617         * gcc-ar.c (main): Likewise.
8618         * gcc.c (init_spec): Likewise.
8619         (read_specs): Likewise.
8620         (execute): Likewise.
8621         (check_live_switch): Likewise.
8622         * genattrtab.c (write_attr_case): Likewise.
8623         (IS_ATTR_GROUP): Likewise.
8624         * gencfn-macros.c (main): Likewise.
8625         * gengtype.c (type_for_name): Likewise.
8626         (gen_rtx_next): Likewise.
8627         (get_file_langdir): Likewise.
8628         (write_local): Likewise.
8629         * genmatch.c (get_operator): Likewise.
8630         (get_operand_type): Likewise.
8631         (expr::gen_transform): Likewise.
8632         * genoutput.c (validate_optab_operands): Likewise.
8633         * incpath.c (add_sysroot_to_chain): Likewise.
8634         * langhooks.c (lang_GNU_C): Likewise.
8635         (lang_GNU_CXX): Likewise.
8636         (lang_GNU_Fortran): Likewise.
8637         (lang_GNU_OBJC): Likewise.
8638         * lto-wrapper.c (run_gcc): Likewise.
8639         * omp-general.c (omp_max_simt_vf): Likewise.
8640         * omp-low.c (omp_runtime_api_call): Likewise.
8641         * opts-common.c (parse_options_from_collect_gcc_options): Likewise.
8642         * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise.
8643         * real.c (real_from_string): Likewise.
8644         * selftest.c (assert_str_startswith): Likewise.
8645         * timevar.c (timer::validate_phases): Likewise.
8646         * tree.c (get_file_function_name): Likewise.
8647         * ubsan.c (ubsan_use_new_style_p): Likewise.
8648         * varasm.c (default_function_rodata_section): Likewise.
8649         (incorporeal_function_p): Likewise.
8650         (default_section_type_flags): Likewise.
8651         * system.h (startswith): Define startswith.
8652
8653 2021-05-10  Martin Liska  <mliska@suse.cz>
8654
8655         * bitmap.h (class auto_bitmap): Remove
8656         __cplusplus >= 201103.
8657         * config/aarch64/aarch64.c: Likewise.
8658         * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info):
8659         Likewise.
8660         * sbitmap.h: Likewise.
8661
8662 2021-05-10  Martin Liska  <mliska@suse.cz>
8663
8664         * Makefile.in: Rename gcov-iov to genversion and depend
8665         on version.h (instead of gcov-iov.h).
8666         * gcov-io.h: Include version.h instread of gcov-iov.h.
8667         * gengtype-state.c (read_state_version): Likewise.
8668         * gcov-iov.c: Moved to...
8669         * genversion.c: ...here.
8670         * lto-streamer.h (LTO_major_version): Define it with
8671         GCC_major_version.
8672         * version.c: Removed.
8673         * version.h: Removed.
8674
8675 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8676
8677         * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
8678         * config/arc/simdext.md (VCT): Add predicates for iterator
8679         elements.
8680         (EMUVEC): Define.
8681         (voptab): Likewise.
8682         (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
8683         (<voptab>v2si3): New patterns.
8684         (neg): Likewise.
8685         (reduc_plus_scal_v4hi): Likewise.
8686         (reduc_plus_scal_v2si): Likewise.
8687         (vec_duplicatev2si): Likewise.
8688         (vec_duplicatev4hi): Likewise.
8689
8690 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8691
8692         * config/arc/simdext.md: Format and cleanup file.
8693
8694 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8695
8696         * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access
8697         only when munaligned-access option is on.
8698         (movmisalign<mode>): Likewise.
8699
8700 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8701
8702         * common/config/arc/arc-common.c (arc_handle_option): Remove dot
8703         from string.
8704         * config/arc/arc.c (arc_reorg): Remove underscore from string.
8705
8706 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8707
8708         * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
8709         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
8710         * config/arc/arc.md (clrsbsi2): Cleanup pattern.
8711         (norm_f): Likewise.
8712         (ffs): Likewise.
8713         (ffs_f): Likewise.
8714         (clzsi2): Use fls instruction when available.
8715         (arc_clzsi2): Likewise.
8716
8717 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8718
8719         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27.
8720
8721 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8722
8723         * doc/extend.texi (__builtin_arc_sr): Swap arguments.
8724
8725 2021-05-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8726
8727         PR middle-end/100467
8728         * toplev.c (compile_file): Call insn_locations_init before
8729         targetm.asm_out.code_end.
8730
8731 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
8732
8733         Revert:
8734         2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
8735
8736         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
8737
8738 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
8739             Andrew Stubbs  <amd@codesourcery.com>
8740
8741         PR target/100418
8742         * builtins.c (try_store_by_multiple_pieces): Use force_operand for
8743         emit_move_insn operands.
8744
8745 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
8746
8747         * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current
8748         location for the outgoing edges of an empty block.
8749         * dwarf2out.c (add_subscript_info): Retrieve the bounds and index
8750         type by means of the get_array_descr_info langhook, if it is set and
8751         returns true.  Remove obsolete code dealing with unnamed subtypes.
8752
8753 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8754
8755         * gimple-range-cache.cc (ssa_block_ranges): Virtualize.
8756         (sbr_vector): Renamed from ssa_block_cache.
8757         (sbr_vector::sbr_vector): Allocate from obstack abd initialize.
8758         (ssa_block_ranges::~ssa_block_ranges): Remove.
8759         (sbr_vector::set_bb_range): Use varying and undefined cached values.
8760         (ssa_block_ranges::set_bb_varying): Remove.
8761         (sbr_vector::get_bb_range): Adjust assert.
8762         (sbr_vector::bb_range_p): Adjust assert.
8763         (~block_range_cache): No freeing loop required.
8764         (block_range_cache::get_block_ranges): Remove.
8765         (block_range_cache::set_bb_range): Inline get_block_ranges.
8766         (block_range_cache::set_bb_varying): Remove.
8767         * gimple-range-cache.h (set_bb_varying): Remove prototype.
8768         * value-range.h (irange_allocator::get_memory): New.
8769
8770 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8771
8772         * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search
8773         dominator tree is available and requested.
8774         (ranger_cache::ssa_range_in_bb): Don't search dom tree here.
8775         (ranger_cache::fill_block_cache): Don't search dom tree here either.
8776         * gimple-range-cache.h (non_null_deref_p): Add dom_search param.
8777
8778 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8779
8780         * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with
8781         only PHI nodes better.
8782
8783 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8784
8785         * gimple-range-edge.h (gimple_outgoing_range): Rename from
8786         outgoing_range.
8787         (gcond_edge_range): Export prototype.
8788         * gimple-range-edge.cc (gcond_edge_range): New.
8789         (gimple_outgoing_range::edge_range_p): Use gcond_edge_range.
8790         * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range.
8791
8792 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8793
8794         * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute
8795         default range into a temp and allocate only what is needed.
8796
8797 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8798
8799         * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED.
8800
8801 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8802
8803         * gimple-range.h (gimple_range_global): Pick up parameter initial
8804         values, and use-before defined locals are UNDEFINED.
8805
8806 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
8807
8808         * doc/extend.texi (scalar_storage_order): Mention effect on pointer
8809         and vector fields.
8810         * tree.h (reverse_storage_order_for_component_p): Return false if
8811         the type is a pointer.
8812
8813 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
8814
8815         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
8816
8817 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
8818
8819         PR target/98218
8820         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
8821         Handle V8QI, V4HI and V2SI modes.
8822         * config/i386/mmx.md (mmx_pblendvb): New insn pattern.
8823         * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ...
8824         * config/i386/i386.md (unspec): ... here.
8825
8826 2021-05-07  Tobias Burnus  <tobias@codesourcery.com>
8827             Tom de Vries  <tdevries@suse.de>
8828
8829         * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
8830         a truth_value_p reduction variable is nonintegral.
8831
8832 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
8833
8834         PR target/100445
8835         * config/i386/i386-expand.c (ix86_use_mask_cmp_p):
8836         Return false for mode sizes < 16.
8837
8838 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
8839
8840         PR target/100445
8841         * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.
8842
8843 2021-05-06  Martin Jambor  <mjambor@suse.cz>
8844
8845         * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even
8846         when there is no function summary.
8847         (ipa_sra_summarize_function): produce edge summaries even when
8848         bailing out early.
8849
8850 2021-05-06  Tom Tromey  <tom@tromey.com>
8851
8852         * godump.c (string_hash_eq): Remove.
8853         (go_finish): Use htab_eq_string.
8854
8855 2021-05-06  Tom Tromey  <tom@tromey.com>
8856
8857         * gengtype-state.c (read_state): Use htab_eq_string.
8858         (string_eq): Remove.
8859
8860 2021-05-06  Tom Tromey  <tom@tromey.com>
8861
8862         * gensupport.c (htab_eq_string): Remove.
8863
8864 2021-05-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8865
8866         PR ipa/97937
8867         * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer.
8868         * dwarf2out.h (dw_fde_node::ignored_debug): New data item.
8869         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy
8870         set_ignored_loc callbacks.
8871         * debug.c (do_nothing_debug_hooks): Likewise.
8872         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8873         * dwarf2out.c (text_section_used, cold_text_section_used): Remove.
8874         (in_text_section_p, last_text_label, last_cold_label,
8875         switch_text_ranges, switch_cold_ranges): New data items.
8876         (dwarf2out_note_section_used): Remove.
8877         (dwarf2out_begin_prologue): Set fde->ignored_debug and
8878         in_text_section_p.
8879         (mark_ignored_debug_section): New helper function.
8880         (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call
8881         mark_ignored_debug_section.
8882         (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc.
8883         (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc.
8884         (size_of_aranges): Adjust formula for multi-part text ranges size.
8885         (output_aranges): Output multi-part text ranges.
8886         (dwarf2out_set_ignored_loc): New callback function.
8887         (dwarf2out_finish): Output multi-part text ranges.
8888         (dwarf2out_c_finalize): Clear new data items.
8889         * final.c (final_start_function_1): Call set_ignored_loc callback.
8890         (final_scan_insn_1): Likewise.
8891         * ggc-page.c (gt_ggc_mx): New helper function.
8892         * stringpool.c (gt_pch_nx): Likewise.
8893
8894 2021-05-06  Richard Biener  <rguenther@suse.de>
8895
8896         * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove.
8897         (TV_TREE_SSA_REWRITE_BLOCKS): Likewise.
8898         (TV_TREE_INTO_SSA): New.
8899         * tree-into-ssa.c (insert_phi_nodes): Do not account separately.
8900         (rewrite_blocks): Likewise.
8901         (pass_data_build_ssa): Account to TV_TREE_INTO_SSA.
8902
8903 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
8904
8905         * tree-ssa-phiopt.c (value_replacement, minmax_replacement,
8906         abs_replacement, xor_replacement,
8907         cond_removal_in_popcount_clz_ctz_pattern,
8908         replace_phi_edge_with_variable): Change type of phi argument from
8909         gimple * to gphi *.
8910
8911 2021-05-06  Richard Biener  <rguenther@suse.de>
8912
8913         * tree-ssa-loop-split.c (split_loop): Delay updating SSA form.
8914         Output an opt-info message.
8915         (do_split_loop_on_cond): Likewise.
8916         (tree_ssa_split_loops): Update SSA form here.
8917
8918 2021-05-06  Richard Biener  <rguenther@suse.de>
8919
8920         * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE
8921         return variable removal.
8922
8923 2021-05-06  Marius Hillenbrand  <mhillen@linux.ibm.com>
8924
8925         * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros.
8926         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
8927         (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate
8928         operand.
8929         * config/s390/s390.c (s390_const_operand_ok): Remove unused
8930         values.
8931
8932 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
8933
8934         PR tree-optimization/94589
8935         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
8936         spaceship_replacement.
8937         (cond_only_block_p, spaceship_replacement): New functions.
8938
8939 2021-05-06  Richard Biener  <rguenther@suse.de>
8940
8941         PR ipa/100373
8942         * tree-emutls.c (gen_emutls_addr): Pass in whether we're
8943         dealing with a debug use and only query existing addresses
8944         if so.
8945         (lower_emutls_1): Avoid splitting out addresses for debug
8946         stmts, reset the debug stmt when we fail to find existing
8947         lowered addresses.
8948         (lower_emutls_phi_arg): Set wi.stmt.
8949
8950 2021-05-06  Christoph Muellner  <cmuellner@gcc.gnu.org>
8951
8952         PR target/100266
8953         * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper.
8954         * config/riscv/riscv.md (cbranch<mode>4): Generate helpers.
8955         (stack_protect_test): Use cbranch helper.
8956
8957 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
8958
8959         PR target/100402
8960         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
8961         always return the establisher frame for __builtin_frame_address (0).
8962
8963 2021-05-05  Ivan Sorokin  <vanyacpp@gmail.com>
8964
8965         PR target/91400
8966         * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New.
8967         (ix86_cpu_model_var): Likewise.
8968         (ix86_cpu_features2_type_node): Likewise.
8969         (ix86_cpu_features2_var): Likewise.
8970         (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with
8971         their types.
8972
8973 2021-05-05  Martin Sebor  <msebor@redhat.com>
8974
8975         * passes.def (pass_warn_printf): Run after SSA.
8976
8977 2021-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8978
8979         * config/arm/neon.md (neon_vtst_combine<mode>): New pattern.
8980         * config/arm/predicates.md (minus_one_operand): New predicate.
8981
8982 2021-05-05  Jeff Law  <jlaw@tachyum.com>
8983
8984         * config/avr/avr.md: Remove references to CC_STATUS_INIT.
8985
8986 2021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
8987
8988         PR rtl-optimization/100263
8989         * postreload.c (move2add_valid_value_p): Ensure register can
8990         change mode.
8991
8992 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
8993
8994         PR rtl-optimization/100411
8995         * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue
8996         and beginning of function markers.
8997
8998 2021-05-05  Jeff Law  <jlaw@tachyum.com>
8999
9000         * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove.
9001         * config/cr16/cr16.c (notice_update_cc): Remove.
9002         * config/cr16/cr16-protos.h (notice_update_cc): Remove.
9003
9004 2021-05-05  Uroš Bizjak  <ubizjak@gmail.com>
9005
9006         PR target/98218
9007         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
9008         Handle V8QI, V4HI and V2SI modes.
9009         * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode.
9010         (ix86_build_signbit_mask): Ditto.
9011         * config/i386/mmx.md (MMXMODE14): New mode iterator.
9012         (<smaxmin:code><MMXMODE14:mode>3): New expander.
9013         (*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern.
9014         (<umaxmin:code><MMXMODE24:mode>3): New expander.
9015         (*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern.
9016         (vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander.
9017         (vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
9018         (vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
9019         (vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
9020         (vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
9021
9022 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
9023
9024         * dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do
9025         not expand the VALUE_EXPR of variables put in the non-local frame.
9026         * gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not
9027         to be ignored for debug info, ensure its variable offsets are not.
9028
9029 2021-05-05  Richard Biener  <rguenther@suse.de>
9030
9031         PR tree-optimization/79333
9032         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
9033         Fold stmt following SSA edges.
9034
9035 2021-05-05  Richard Biener  <rguenther@suse.de>
9036
9037         PR middle-end/100394
9038         * calls.c (expand_call): Preserve possibly throwing calls.
9039         * cfgexpand.c (expand_call_stmt): When a call can throw signal
9040         RTL expansion there are side-effects.
9041         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify,
9042         mark all possibly throwing stmts necessary unless we can elide
9043         dead EH.
9044         * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless
9045         -fdelete-dead-exceptions.
9046         * tree.h (DECL_PURE_P): Add note about exceptions.
9047
9048 2021-05-05  Alexandre Oliva  <oliva@adacore.com>
9049
9050         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
9051         unconditional.
9052
9053 2021-05-04  David Edelsohn  <dje.gcc@gmail.com>
9054
9055         * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
9056         get_fnname_from_decl for name of thunk.
9057         * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name
9058         and ASM_OUTPUT_LABEL.
9059         (rs6000_xcoff_declare_function_name): Use assemble_name and
9060         ASM_OUTPUT_LABEL.
9061         (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL.
9062         (rs6000_xcoff_encode_section_info): Don't add mapping class
9063         for aliases.  Always add [DS] mapping class to primary
9064         FUNCTION_DECL.
9065         (rs6000_asm_weaken_decl): Don't explicitly add [DS].
9066
9067 2021-05-04  Martin Sebor  <msebor@redhat.com>
9068
9069         PR middle-end/100307
9070         * builtins.c (compute_objsize_r): Clear base0 for pointers.
9071
9072 2021-05-04  Jeff Law  <jlaw@tachyum.com>
9073
9074         * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
9075
9076 2021-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
9077
9078         * caller-save.c: Remove CC0.
9079         * cfgcleanup.c: Remove CC0.
9080         * cfgrtl.c: Remove CC0.
9081         * combine.c: Remove CC0.
9082         * compare-elim.c: Remove CC0.
9083         * conditions.h: Remove CC0.
9084         * config/h8300/h8300.h: Remove CC0.
9085         * config/h8300/h8300-protos.h: Remove CC0.
9086         * config/h8300/peepholes.md: Remove CC0.
9087         * config/i386/x86-tune-sched.c: Remove CC0.
9088         * config/m68k/m68k.c: Remove CC0.
9089         * config/rl78/rl78.c: Remove CC0.
9090         * config/sparc/sparc.c: Remove CC0.
9091         * config/xtensa/xtensa.c: Remove CC0.
9092         (gen_conditional_move):  Use pc_rtx instead of cc0_rtx in a piece of
9093         RTL where that is used as a placeholder only.
9094         * cprop.c: Remove CC0.
9095         * cse.c: Remove CC0.
9096         * cselib.c: Remove CC0.
9097         * df-problems.c: Remove CC0.
9098         * df-scan.c: Remove CC0.
9099         * doc/md.texi: Remove CC0.  Adjust an example.
9100         * doc/rtl.texi: Remove CC0.  Adjust an example.
9101         * doc/tm.texi: Regenerate.
9102         * doc/tm.texi.in: Remove CC0.
9103         * emit-rtl.c: Remove CC0.
9104         * final.c: Remove CC0.
9105         * fwprop.c: Remove CC0.
9106         * gcse-common.c: Remove CC0.
9107         * gcse.c: Remove CC0.
9108         * genattrtab.c: Remove CC0.
9109         * genconfig.c: Remove CC0.
9110         * genemit.c: Remove CC0.
9111         * genextract.c: Remove CC0.
9112         * gengenrtl.c: Remove CC0.
9113         * genrecog.c: Remove CC0.
9114         * haifa-sched.c: Remove CC0.
9115         * ifcvt.c: Remove CC0.
9116         * ira-costs.c: Remove CC0.
9117         * ira.c: Remove CC0.
9118         * jump.c: Remove CC0.
9119         * loop-invariant.c: Remove CC0.
9120         * lra-constraints.c: Remove CC0.
9121         * lra-eliminations.c: Remove CC0.
9122         * optabs.c: Remove CC0.
9123         * postreload-gcse.c: Remove CC0.
9124         * postreload.c: Remove CC0.
9125         * print-rtl.c: Remove CC0.
9126         * read-rtl-function.c: Remove CC0.
9127         * reg-notes.def: Remove CC0.
9128         * reg-stack.c: Remove CC0.
9129         * reginfo.c: Remove CC0.
9130         * regrename.c: Remove CC0.
9131         * reload.c: Remove CC0.
9132         * reload1.c: Remove CC0.
9133         * reorg.c: Remove CC0.
9134         * resource.c: Remove CC0.
9135         * rtl.c: Remove CC0.
9136         * rtl.def: Remove CC0.
9137         * rtl.h: Remove CC0.
9138         * rtlanal.c: Remove CC0.
9139         * sched-deps.c: Remove CC0.
9140         * sched-rgn.c: Remove CC0.
9141         * shrink-wrap.c: Remove CC0.
9142         * simplify-rtx.c: Remove CC0.
9143         * system.h: Remove CC0.  Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
9144         CC_STATUS_MDEP, and CC_STATUS.
9145         * target.def: Remove CC0.
9146         * valtrack.c: Remove CC0.
9147         * var-tracking.c: Remove CC0.
9148
9149 2021-05-04  Richard Biener  <rguenther@suse.de>
9150
9151         PR tree-optimization/100414
9152         * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
9153         info here.
9154         (tree_ssa_phiopt_worker): But unconditionally here.
9155
9156 2021-05-04  Tobias Burnus  <tobias@codesourcery.com>
9157
9158         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
9159         && and || with floating-point and complex arguments.
9160
9161 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
9162
9163         * tree-inline.c (insert_debug_decl_map): Delete.
9164         (copy_debug_stmt): Minor tweak.
9165         (setup_one_parameter): Do not use a variable if the value is either
9166         a read-only DECL or a non-addressable local variable in the caller.
9167         In this case, insert the debug-only variable in the map manually.
9168         (expand_call_inline): Do not generate a CLOBBER for these values.
9169         * tree-inline.h (debug_map): Minor tweak.
9170
9171 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
9172
9173         * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
9174         * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.
9175
9176 2021-05-04  Richard Biener  <rguenther@suse.de>
9177
9178         PR tree-optimization/100329
9179         * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
9180         asm goto defs.
9181         (insert_stmt_after): Assert we're not running into asm goto.
9182
9183 2021-05-04  Richard Biener  <rguenther@suse.de>
9184
9185         PR tree-optimization/100398
9186         * tree-ssa-dse.c (pass_dse::execute): Preserve control
9187         altering stmts.
9188
9189 2021-05-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9190
9191         * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.
9192
9193 2021-05-04  Alexandre Oliva  <oliva@adacore.com>
9194
9195         * builtins.c (try_store_by_multiple_pieces): New.
9196         (expand_builtin_memset_args): Use it.  If target_char_cast
9197         fails, proceed as for non-constant val.  Pass len's ctz to...
9198         * expr.c (clear_storage_hints): ... this.  Try store by
9199         multiple pieces after setmem.
9200         (clear_storage): Adjust.
9201         * expr.h (clear_storage_hints): Likewise.
9202         (try_store_by_multiple_pieces): Declare.
9203         * passes.def: Replace the last copy_prop with ccp.
9204
9205 2021-05-03  Tom de Vries  <tdevries@suse.de>
9206
9207         PR target/100321
9208         * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined
9209         reduction.
9210
9211 2021-05-03  Richard Biener  <rguenther@suse.de>
9212
9213         * tree-ssa-dse.c (dse_classify_store): Track two PHI defs.
9214
9215 2021-05-03  Richard Biener  <rguenther@suse.de>
9216
9217         * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h.
9218         (dse_dom_walker): Remove.
9219         (dse_dom_walker::dse_optimize_stmt): Rename...
9220         (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap.
9221         (dse_dom_walker::before_dom_children): Inline ...
9222         (pass_dse::execute): ... here.  Perform a reverse program
9223         order walk.
9224
9225 2021-05-03  H.J. Lu  <hjl.tools@gmail.com>
9226
9227         PR bootstrap/99703
9228         * configure: Regenerated.
9229
9230 2021-05-03  Ilya Leoshkevich  <iii@linux.ibm.com>
9231
9232         PR target/100217
9233         * config/s390/s390.c (s390_hard_fp_reg_p): New function.
9234         (s390_md_asm_adjust): Handle hard registers.
9235
9236 2021-05-03  Jakub Jelinek  <jakub@redhat.com>
9237
9238         PR tree-optimization/100382
9239         * tree-ssa-dse.c: Include tree-eh.h.
9240         (dse_dom_walker::before_dom_children): Don't remove stmts if
9241         stmt_unremovable_because_of_non_call_eh_p is true.
9242
9243 2021-05-02  David Edelsohn  <dje.gcc@gmail.com>
9244
9245         * varasm.c (compute_reloc_for_var): Split out from...
9246         (get_variable_section): Use it.
9247         * output.h (compute_reloc_for_var): Declare.
9248         * config/rs6000/rs6000-protos.h
9249         (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to
9250         unsigned int.
9251         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix):
9252         Don't append storage mapping class to symbol.
9253         (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes.
9254         Don't convert TLS BSS to common.
9255         (rs6000_xcoff_unique_section): Don't fall back to select_secton.
9256         (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is
9257         bss_initializer.
9258         (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage
9259         mapping class.
9260         (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int.
9261         If align is 0 from TLS class, use the same rules as varasm.c
9262         If not common, switch to BSS section manually.
9263         If common, emit appropriate comm or lcomm directive.
9264         (rs6000_xcoff_encode_section_info): Add logic to append all
9265         storage mapping classes.
9266         (rs6000_asm_weaken_decl): Adjust for qualname symbols.
9267         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
9268         rs6000_xcoff_asm_output_aligned_decl_common.
9269         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
9270         rs6000_xcoff_asm_output_aligned_decl_common.
9271         (ASM_OUTPUT_TLS_COMMON): Use
9272         rs6000_xcoff_asm_output_aligned_decl_common.
9273
9274 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
9275
9276         PR target/100375
9277         * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0
9278         as first argument of pseudo_node_t constructors.
9279
9280 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
9281
9282         PR target/100336
9283         * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def.
9284
9285 2021-05-01  Aldy Hernandez  <aldyh@redhat.com>
9286
9287         * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove.
9288         (gt_pch_nx (int_range<1> *&)): New.
9289         (gt_ggc_mx (int_range<1> *&)): New.
9290         * value-range.h (class irange): Add GTY support for
9291         the base class.
9292
9293 2021-05-01  Geng Qi  <gengqi@linux.alibaba.com>
9294
9295         * doc/options.texi (Negative): Change either or to both and.
9296
9297 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
9298
9299         * config/aarch64/aarch64-simd-builtins.def: Add
9300         float_ml[as][q]_laneq builtin generator macros.
9301         * config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define.
9302         (aarch64_float_mla_laneq<mode>): Define.
9303         (aarch64_float_mls_laneq<mode>): Define.
9304         * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin
9305         instead of GCC vector extensions.
9306         (vmlaq_laneq_f32): Likewise.
9307         (vmls_laneq_f32): Likewise.
9308         (vmlsq_laneq_f32): Likewise.
9309
9310 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
9311
9312         * config/aarch64/aarch64-simd-builtins.def: Add
9313         float_ml[as]_lane builtin generator macros.
9314         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>):
9315         Rename to...
9316         (mul_lane<mode>3): This, and re-order arguments.
9317         (aarch64_float_mla_lane<mode>): Define.
9318         (aarch64_float_mls_lane<mode>): Define.
9319         * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin
9320         instead of GCC vector extensions.
9321         (vmlaq_lane_f32): Likewise.
9322         (vmls_lane_f32): Likewise.
9323         (vmlsq_lane_f32): Likewise.
9324
9325 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
9326
9327         * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as]
9328         builtin generator macros.
9329         * config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>):
9330         Define.
9331         (aarch64_float_mls<mode>): Define.
9332         * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin
9333         instead of relying on GCC vector extensions.
9334         (vmla_f64): Likewise.
9335         (vmlaq_f32): Likewise.
9336         (vmlaq_f64): Likewise.
9337         (vmls_f32): Likewise.
9338         (vmls_f64): Likewise.
9339         (vmlsq_f32): Likewise.
9340         (vmlsq_f64): Likewise.
9341         * config/aarch64/iterators.md: Define VDQF_DF mode iterator.
9342
9343 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
9344
9345         * config/aarch64/aarch64-simd-builtins.def: Add
9346         float_ml[as]_n_builtin generator macros.
9347         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>):
9348         Rename to...
9349         (mul_n<mode>3): This, and re-order arguments.
9350         (aarch64_float_mla_n<mode>): Define.
9351         (aarch64_float_mls_n<mode>): Define.
9352         * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin
9353         instead of inline asm.
9354         (vmlaq_n_f32): Likewise.
9355         (vmls_n_f32): Likewise.
9356         (vmlsq_n_f32): Likewise.
9357
9358 2021-04-30  Jonathan Wright  <joanthan.wright@arm.com>
9359
9360         * config/aarch64/aarch64-simd-builtins.def: Add pmull[2]
9361         builtin generator macros.
9362         * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define.
9363         (aarch64_pmull_hiv16qi_insn): Define.
9364         (aarch64_pmull_hiv16qi): Define.
9365         * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin
9366         instead of inline asm.
9367         (vmull_p8): Likewise.
9368
9369 2021-04-30  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
9370
9371         * config/avr/avr.md: Adjust peepholes to match and
9372         generate parallels with clobber of REG_CC.
9373         (mov<mode>_insn): Rename to mov<mode>_insn_split.
9374         (*mov<mode>_insn): Rename to mov<mode>_insn.
9375
9376 2021-04-30  David Edelsohn  <dje.gcc@gmail.com>
9377
9378         * varasm.c (use_blocks_for_decl_p): Don't use section anchors
9379         for VAR_DECLs if -fdata-sections enabled.
9380
9381 2021-04-30  Michael Meissner  <meissner@linux.ibm.com>
9382
9383         PR bootstrap/100327
9384         * config/rs6000/rs6000.c
9385         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
9386         (rs6000_libgcc_floating_mode_supported_p): New target hook.
9387
9388 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
9389
9390         * tree-ssa-threadbackward.c (class thread_jumps): Split out code
9391         from here...
9392         (class back_threader_registry): ...to here...
9393         (class back_threader_profitability): ...and here...
9394         (thread_jumps::thread_through_all_blocks): Remove argument.
9395         (back_threader_registry::back_threader_registry): New.
9396         (back_threader_registry::~back_threader_registry): New.
9397         (back_threader_registry::thread_through_all_blocks): New.
9398         (thread_jumps::profitable_jump_thread_path): Move from here...
9399         (back_threader_profitability::profitable_path_p): ...to here.
9400         (thread_jumps::find_taken_edge): New.
9401         (thread_jumps::convert_and_register_current_path): Move...
9402         (back_threader_registry::register_path): ...to here.
9403         (thread_jumps::register_jump_thread_path_if_profitable): Move...
9404         (thread_jumps::maybe_register_path): ...to here.
9405         (thread_jumps::handle_phi): Call find_taken_edge and
9406         maybe_register_path.
9407         (thread_jumps::handle_assignment): Same.
9408         (thread_jumps::fsm_find_control_statement_thread_paths): Remove
9409         tree argument to handle_phi and handle_assignment.
9410         (thread_jumps::find_jump_threads_backwards): Set m_name.  Remove
9411         set of m_speed_p and m_max_threaded_paths.
9412         (pass_thread_jumps::execute): Remove second argument from
9413         find_jump_threads_backwards.
9414         (pass_early_thread_jumps::execute): Same.
9415
9416 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
9417
9418         * tree-ssa-dom.c (class dom_jump_threader_simplifier): New.
9419         (class dom_opt_dom_walker): Initialize some class variables.
9420         (pass_dominator::execute): Pass evrp_range_analyzer and
9421         dom_jump_threader_simplifier to dom_opt_dom_walker.
9422         Adjust for some functions moving into classes.
9423         (simplify_stmt_for_jump_threading): Adjust and move to...
9424         (jump_threader_simplifier::simplify): ...here.
9425         (dom_opt_dom_walker::before_dom_children): Adjust for
9426         m_evrp_range_analyzer.
9427         (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack.
9428         (test_for_singularity): Place in dom_opt_dom_walker class.
9429         (dom_opt_dom_walker::optimize_stmt): The argument
9430         evrp_range_analyzer is now a class field.
9431         * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry.
9432         (thread_jumps::thread_through_all_blocks): New.
9433         (thread_jumps::convert_and_register_current_path): Use m_registry.
9434         (pass_thread_jumps::execute): Adjust for thread_through_all_blocks
9435         being in the threader class.
9436         (pass_early_thread_jumps::execute): Same.
9437         * tree-ssa-threadedge.c (threadedge_initialize_values): Move...
9438         (jump_threader::jump_threader): ...here.
9439         (threadedge_finalize_values): Move...
9440         (jump_threader::~jump_threader): ...here.
9441         (jump_threader::remove_jump_threads_including): New.
9442         (jump_threader::thread_through_all_blocks): New.
9443         (record_temporary_equivalences_from_phis): Move...
9444         (jump_threader::record_temporary_equivalences_from_phis): ...here.
9445         (record_temporary_equivalences_from_stmts_at_dest): Move...
9446         (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
9447         Here...
9448         (simplify_control_stmt_condition_1): Move to jump_threader class.
9449         (simplify_control_stmt_condition): Move...
9450         (jump_threader::simplify_control_stmt_condition): ...here.
9451         (thread_around_empty_blocks): Move...
9452         (jump_threader::thread_around_empty_blocks): ...here.
9453         (thread_through_normal_block): Move...
9454         (jump_threader::thread_through_normal_block): ...here.
9455         (thread_across_edge): Move...
9456         (jump_threader::thread_across_edge): ...here.
9457         (thread_outgoing_edges): Move...
9458         (jump_threader::thread_outgoing_edges): ...here.
9459         * tree-ssa-threadedge.h: Move externally facing functings...
9460         (class jump_threader): ...here...
9461         (class jump_threader_simplifier): ...and here.
9462         * tree-ssa-threadupdate.c (struct redirection_data): Remove comment.
9463         (jump_thread_path_allocator::jump_thread_path_allocator): New.
9464         (jump_thread_path_allocator::~jump_thread_path_allocator): New.
9465         (jump_thread_path_allocator::allocate_thread_edge): New.
9466         (jump_thread_path_allocator::allocate_thread_path): New.
9467         (jump_thread_path_registry::jump_thread_path_registry): New.
9468         (jump_thread_path_registry::~jump_thread_path_registry): New.
9469         (jump_thread_path_registry::allocate_thread_edge): New.
9470         (jump_thread_path_registry::allocate_thread_path): New.
9471         (dump_jump_thread_path): Make extern.
9472         (debug (const vec<jump_thread_edge *> &path)): New.
9473         (struct removed_edges): Move to tree-ssa-threadupdate.h.
9474         (struct thread_stats_d): Remove.
9475         (remove_ctrl_stmt_and_useless_edges): Make static.
9476         (lookup_redirection_data): Move...
9477         (jump_thread_path_registry::lookup_redirection_data): ...here.
9478         (ssa_redirect_edges): Make static.
9479         (thread_block_1): Move...
9480         (jump_thread_path_registry::thread_block_1): ...here.
9481         (thread_block): Move...
9482         (jump_thread_path_registry::thread_block): ...here.
9483         (thread_through_loop_header):  Move...
9484         (jump_thread_path_registry::thread_through_loop_header): ...here.
9485         (mark_threaded_blocks): Move...
9486         (jump_thread_path_registry::mark_threaded_blocks): ...here.
9487         (debug_path): Move...
9488         (jump_thread_path_registry::debug_path): ...here.
9489         (debug_all_paths): Move...
9490         (jump_thread_path_registry::dump): ..here.
9491         (rewire_first_differing_edge): Move...
9492         (jump_thread_path_registry::rewire_first_differing_edge): ...here.
9493         (adjust_paths_after_duplication): Move...
9494         (jump_thread_path_registry::adjust_paths_after_duplication): ...here.
9495         (duplicate_thread_path): Move...
9496         (jump_thread_path_registry::duplicate_thread_path): ..here.
9497         (remove_jump_threads_including): Move...
9498         (jump_thread_path_registry::remove_jump_threads_including): ...here.
9499         (thread_through_all_blocks): Move to...
9500         (jump_thread_path_registry::thread_through_all_blocks): ...here.
9501         (delete_jump_thread_path): Remove.
9502         (register_jump_thread): Move...
9503         (jump_thread_path_registry::register_jump_thread): ...here.
9504         * tree-ssa-threadupdate.h: Move externally facing functions...
9505         (class jump_thread_path_allocator): ...here...
9506         (class jump_thread_path_registry): ...and here.
9507         (thread_through_all_blocks): Remove.
9508         (struct removed_edges): New.
9509         (register_jump_thread): Remove.
9510         (remove_jump_threads_including): Remove.
9511         (delete_jump_thread_path): Remove.
9512         (remove_ctrl_stmt_and_useless_edges): Remove.
9513         (free_dom_edge_info): New prototype.
9514         * tree-vrp.c: Remove x_vr_values hack.
9515         (class vrp_jump_threader_simplifier): New.
9516         (vrp_jump_threader_simplifier::simplify): New.
9517         (vrp_jump_threader::vrp_jump_threader): Adjust method signature.
9518         Remove m_dummy_cond.
9519         Instantiate m_simplifier and m_threader.
9520         (vrp_jump_threader::thread_through_all_blocks): New.
9521         (vrp_jump_threader::simplify_stmt): Remove.
9522         (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond.
9523         Remove x_vr_values hack.
9524         (execute_vrp): Adjust for thread_through_all_blocks being in a
9525         class.
9526
9527 2021-04-30  Christophe Lyon  <christophe.lyon@linaro.org>
9528
9529         * genflags.c (gen_insn): Print failed expansion string.
9530
9531 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
9532
9533         * expr.c (alignment_for_piecewise_move): Call mode_for_size
9534         without limit to MAX_FIXED_MODE_SIZE.
9535
9536 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
9537
9538         PR middle-end/90773
9539         * builtins.c (builtin_memset_gen_str): Don't use return from
9540         simplify_gen_subreg.
9541
9542 2021-04-30  Uroš Bizjak  <ubizjak@gmail.com>
9543
9544         PR target/98060
9545         * config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern.
9546         (*addsi3_carry_zext_0r): Ditto.
9547         (*sub<mode>3_carry_0): Ditto.
9548         (*subsi3_carry_zext_0r): Ditto.
9549         * config/i386/predicates.md (ix86_carry_flag_unset_operator):
9550         New predicate.
9551         * config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>:
9552         Also consider ix86_carry_flag_unset_operator to calculate
9553         the cost of adc/sbb insn.
9554
9555 2021-04-30  Roman Zhuykov  <zhroma@ispras.ru>
9556
9557         PR rtl-optimization/100225
9558         PR rtl-optimization/84878
9559         * modulo-sched.c (sms_schedule): Use note_stores to skip loops
9560         where we have an instruction which touches (writes) any hard
9561         register from df->regular_block_artificial_uses set.
9562         Allow not-single-set instruction only right before basic block
9563         tail.
9564
9565 2021-04-30  Geng Qi  <gengqi@linux.alibaba.com>
9566
9567         * config/riscv/riscv.opt (march=,mabi=): Negative itself.
9568
9569 2021-04-30  LevyHsu  <admin@levyhsu.com>
9570
9571         * config/riscv/riscv.c (riscv_min_arithmetic_precision): New.
9572         * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New.
9573         * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New.
9574         (subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New.
9575
9576 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
9577
9578         * config.gcc: Merged x86 and x86_64 cpu_type-setting cases.
9579
9580 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
9581
9582         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to...
9583         (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this.  Enclose in do/while(0).
9584         * config/i386/i386.c: Adjust.
9585         * config/i386/i386.md: Adjust.
9586         * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop.
9587         * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9588         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9589         * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9590         * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9591         * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9592         * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9593         * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9594         * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9595         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9596         (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
9597
9598 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
9599
9600         * config/i386/i386-expand.c (ix86_expand_int_compare):
9601         Swap operands of GTU and LEU comparison to emit carry flag comparison.
9602         * config/i386/i386.md (*add<mode>3_carry_0): Change insn
9603         predicate to allow more combine opportunities with memory operands.
9604         (*sub<mode>3_carry_0): Ditto.
9605
9606 2021-04-29  Richard Sandiford  <richard.sandiford@arm.com>
9607
9608         PR rtl-optimization/100303
9609         * rtl-ssa/accesses.cc (function_info::make_use_available): Take a
9610         boolean that indicates whether the use will only be used in
9611         debug instructions.  Treat it in the same way that existing
9612         cross-EBB debug references would be handled if so.
9613         (function_info::make_uses_available): Likewise.
9614         * rtl-ssa/functions.h (function_info::make_uses_available): Update
9615         prototype accordingly.
9616         (function_info::make_uses_available): Likewise.
9617         * fwprop.c (try_fwprop_subst): Update call accordingly.
9618
9619 2021-04-29  Jeff Law  <jlaw@tachyum.com>
9620
9621         * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside
9622         of RTX_CODE guard.
9623
9624 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
9625             Richard Biener  <rguenther@suse.de>
9626
9627         PR target/100312
9628         * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD)
9629         (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256)
9630         (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD)
9631         (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256)
9632         (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS
9633         to PURE_ARGS category.
9634         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
9635         Handle PURE_ARGS category.
9636         * config/i386/i386-expand.c (ix86_expand_builtin): Ditto.
9637
9638 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9639
9640         * configure.ac: Check for the presence of sys/locking.h header and
9641         for whether _LK_LOCK is supported by _locking.
9642         * configure: Regenerate.
9643         * config.in: Likewise.
9644         * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK.
9645         * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING.
9646         * system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H.
9647
9648 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
9649
9650         * config/i386/predicates.md (fcmov_comparison_operator):
9651         Do not check for trivial FP comparison operator.
9652         <case GEU, case LTU>: Allow CCGZmode.
9653         <case GTU, case LEU>: Do not allow CCCmode.
9654         (ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode.
9655         (ix86_carry_flag_operator): Match only LTU and UNLT code.
9656         Do not check for trivial FP comparison operator.  Allow CCGZmode.
9657
9658 2021-04-29  Tom de Vries  <tdevries@suse.de>
9659
9660         * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of
9661         fd->loop.step by either step or orig_step.
9662
9663 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9664
9665         * config/sparc/sparc.c (gen_load_pcrel_sym): Delete.
9666         (load_got_register): Do the PIC dance here.
9667         (sparc_legitimize_tls_address): Simplify.
9668         (sparc_emit_probe_stack_range): Likewise.
9669         (sparc32_initialize_trampoline): Likewise.
9670         (sparc64_initialize_trampoline): Likewise.
9671         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker.
9672         (probe_stack_range<P:mode>): Likewise.
9673         (flush<P:mode>): Likewise.
9674         (tgd_hi22<P:mode>): Likewise.
9675         (tgd_lo10<P:mode>): Likewise.
9676         (tgd_add<P:mode>): Likewise.
9677         (tgd_call<P:mode>): Likewise.
9678         (tldm_hi22<P:mode>): Likewise.
9679         (tldm_lo10<P:mode>): Likewise.
9680         (tldm_add<P:mode>): Likewise.
9681         (tldm_call<P:mode>): Likewise.
9682         (tldo_hix22<P:mode>): Likewise.
9683         (tldo_lox10<P:mode>): Likewise.
9684         (tldo_add<P:mode>): Likewise.
9685         (tie_hi22<P:mode>): Likewise.
9686         (tie_lo10<P:mode>): Likewise.
9687         (tie_add<P:mode>): Likewise.
9688         (tle_hix22<P:mode>): Likewise.
9689         (tle_lox10<P:mode>): Likewise.
9690         (stack_protect_setsi): Rename to...
9691         (stack_protect_set32): ...this.
9692         (stack_protect_setdi): Rename to...
9693         (stack_protect_set64): ...this.
9694         (stack_protect_set): Adjust calls to above.
9695         (stack_protect_testsi): Rename to...
9696         (stack_protect_test32): ...this.
9697         (stack_protect_testdi): Rename to...
9698         (stack_protect_test64): ...this.
9699         (stack_protect_test): Adjust calls to above.
9700
9701 2021-04-29  H.J. Lu  <hjl.tools@gmail.com>
9702
9703         PR middle-end/90773
9704         * builtins.c (builtin_memcpy_read_str): Add a dummy argument.
9705         (builtin_strncpy_read_str): Likewise.
9706         (builtin_memset_read_str): Add an argument for the previous RTL
9707         information and generate the new RTL from the previous RTL info.
9708         (builtin_memset_gen_str): Likewise.
9709         * builtins.h (builtin_strncpy_read_str): Update the prototype.
9710         (builtin_memset_read_str): Likewise.
9711         * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p()
9712         returns true, round up size and alignment to the widest integer
9713         mode for maximum size.
9714         (pieces_addr::adjust): Add a pointer to by_pieces_prev argument
9715         and pass it to m_constfn.
9716         (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces.
9717         (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
9718         initialize m_push.  Initialize m_overlap_op_by_pieces with
9719         targetm.overlap_op_by_pieces_p ().
9720         (op_by_pieces_d::run): Pass the previous RTL information to
9721         pieces_addr::adjust and generate overlapping operations if
9722         m_overlap_op_by_pieces is true.
9723         (PUSHG_P): New.
9724         (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d
9725         change.
9726         (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d
9727         change.
9728         (can_store_by_pieces): Use by_pieces_constfn on constfun.
9729         (store_by_pieces): Use by_pieces_constfn on constfun.  Updated
9730         for op_by_pieces_d change.
9731         (clear_by_pieces_1): Add a dummy argument.
9732         (clear_by_pieces): Updated for op_by_pieces_d change.
9733         (compare_by_pieces_d::compare_by_pieces_d): Likewise.
9734         (string_cst_read_str): Add a dummy argument.
9735         * expr.h (by_pieces_constfn): Add a dummy argument.
9736         (by_pieces_prev): New.
9737         * target.def (overlap_op_by_pieces_p): New target hook.
9738         * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New.
9739         * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P.
9740         * doc/tm.texi: Regenerated.
9741
9742 2021-04-29  Richard Biener  <rguenther@suse.de>
9743
9744         PR tree-optimization/100253
9745         * tree-vect-stmts.c (vectorizable_load): Do not assume
9746         element alignment when DR_MISALIGNMENT is -1.
9747         (vectorizable_store): Likewise.
9748
9749 2021-04-29  Jakub Jelinek  <jakub@redhat.com>
9750
9751         PR target/100302
9752         * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
9753         absu_hwi instead of abs_hwi.
9754
9755 2021-04-29  Richard Biener  <rguenther@suse.de>
9756
9757         PR middle-end/38474
9758         * tree-ssa-structalias.c (add_graph_edge): Avoid direct
9759         forwarding when indirect forwarding through ESCAPED
9760         alread happens.
9761
9762 2021-04-29  Tom de Vries  <tdevries@suse.de>
9763
9764         PR target/100232
9765         * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC)
9766         (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED)
9767         (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY)
9768         (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to.
9769
9770 2021-04-29  Richard Biener  <rguenther@suse.de>
9771
9772         PR tree-optimization/99912
9773         * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New.
9774         (dse_dom_walker::todo): Likewise.
9775         (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the
9776         caller.
9777         (dse_dom_walker::before_dom_children): Remove trivially
9778         dead SSA defs and schedule CFG cleanup if we removed all
9779         PHIs in a block.
9780         (pass_dse::execute): Get TODO as computed by the DOM walker
9781         and return it.  Wipe dominator info earlier.
9782
9783 2021-04-29  Richard Biener  <rguenther@suse.de>
9784
9785         PR ipa/100308
9786         * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children):
9787         Track blocks to cleanup EH in new m_need_eh_cleanup.
9788         (ipcp_modif_dom_walker::cleanup_eh): New.
9789         (ipcp_transform_function): Release dominator info before
9790         doing EH cleanup.
9791
9792 2021-04-29  Martin Sebor  <msebor@redhat.com>
9793
9794         PR middle-end/100250
9795         * attribs.c (attr_access::array_as_string): Avoid dereferencing
9796         a pointer when it's null.
9797
9798 2021-04-29  Martin Sebor  <msebor@redhat.com>
9799
9800         * Makefile.in (OBJS): Add ipa-free-lang-data.o.
9801         * ipa-free-lang-data.cc: New file.
9802         * tree.c: Move pass free_lang_data to file above.
9803          (build_array_type_1): Declare extern.
9804         * tree.h (build_array_type_1): Declare.
9805
9806 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9807
9808         * config/aarch64/aarch64-simd-builtins.def: Modify comment to
9809         make consistent with updated RTL pattern.
9810         * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>):
9811         Implement using ss_truncate and us_truncate rather than
9812         unspecs.
9813         * config/aarch64/iterators.md: Remove redundant unspecs and
9814         iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.
9815
9816 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9817
9818         * config/aarch64/arm_acle.h (__attribute__): Make intrinsic
9819         attributes consistent with those defined in arm_neon.h.
9820
9821 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9822
9823         * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic
9824         attributes consistent with those defined in arm_neon.h.
9825
9826 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9827
9828         * config/aarch64/aarch64-simd-builtins.def: Add
9829         float_trunc_rodd builtin generator macros.
9830         * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df):
9831         Define.
9832         (aarch64_float_trunc_rodd_lo_v2sf): Define.
9833         (aarch64_float_trunc_rodd_hi_v4sf_le): Define.
9834         (aarch64_float_trunc_rodd_hi_v4sf_be): Define.
9835         (aarch64_float_trunc_rodd_hi_v4sf): Define.
9836         * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin
9837         instead of inline asm.
9838         (vcvtx_high_f32_f64): Likewise.
9839         (vcvtxd_f32_f64): Likewise.
9840         * config/aarch64/iterators.md: Add FCVTXN unspec.
9841
9842 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9843
9844         * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin
9845         generator macros.
9846         * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>):
9847         Define.
9848         * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin
9849         instead of inline asm.
9850         (vqtbx1_u8): Likewise.
9851         (vqtbx1_p8): Likewise.
9852         (vqtbx1q_s8): Likewise.
9853         (vqtbx1q_u8): Likewise.
9854         (vqtbx1q_p8): Likewise.
9855         (vtbx2_s8): Likewise.
9856         (vtbx2_u8): Likewise.
9857         (vtbx2_p8): Likewise.
9858
9859 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9860
9861         * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin
9862         generator macros.
9863         * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin
9864         instead of inline asm.
9865         (vqtbl1_s8): Likewise.
9866         (vqtbl1_u8): Likewise.
9867         (vqtbl1q_p8): Likewise.
9868         (vqtbl1q_s8): Likewise.
9869         (vqtbl1q_u8): Likewise.
9870         (vtbl1_s8): Likewise.
9871         (vtbl1_u8): Likewise.
9872         (vtbl1_p8): Likewise.
9873         (vtbl2_s8): Likewise.
9874         (vtbl2_u8): Likewise.
9875         (vtbl2_p8): Likewise.
9876
9877 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9878
9879         * config/aarch64/aarch64-simd-builtins.def: Add polynomial
9880         ssri_n buitin generator macro.
9881         * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin
9882         instead of inline asm.
9883         (vsri_n_p16): Likewise.
9884         (vsri_n_p64): Likewise.
9885         (vsriq_n_p8): Likewise.
9886         (vsriq_n_p16): Likewise.
9887         (vsriq_n_p64): Likewise.
9888
9889 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9890
9891         * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode
9892         iterator for polynomial ssli_n builtin generator macro.
9893         * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin
9894         instead of inline asm.
9895         (vsli_n_p16): Likewise.
9896         (vsliq_n_p8): Likewise.
9897         (vsliq_n_p16): Likewise.
9898         * config/aarch64/iterators.md: Define VALLP mode iterator.
9899
9900 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9901
9902         * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L
9903         iterator to generate [su]adalp RTL builtins.
9904         * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in
9905         [su]adalp RTL pattern.
9906         * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin
9907         instead of inline asm.
9908         (vpadal_u32): Likewise.
9909
9910 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9911
9912         * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp
9913         builtin generator macros.
9914         * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>):
9915         Define.
9916         * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin
9917         instead of inline asm.
9918         (vpaddl_s16): Likewise.
9919         (vpaddl_s32): Likewise.
9920         (vpaddl_u8): Likewise.
9921         (vpaddl_u16): Likewise.
9922         (vpaddl_u32): Likewise.
9923         (vpaddlq_s8): Likewise.
9924         (vpaddlq_s16): Likewise.
9925         (vpaddlq_s32): Likewise.
9926         (vpaddlq_u8): Likewise.
9927         (vpaddlq_u16): Likewise.
9928         (vpaddlq_u32): Liwewise.
9929         * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with
9930         appropriate attributes.
9931
9932 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9933
9934         * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator
9935         for aarch64_addp<mode> builtin macro generator.
9936         * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in
9937         aarch64_addp<mode> RTL pattern.
9938         * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin
9939         instead of inline asm.
9940         (vpaddq_s16): Likewise.
9941         (vpaddq_s32): Likewise.
9942         (vpaddq_s64): Likewise.
9943         (vpaddq_u8): Likewise.
9944         (vpaddq_u16): Likewise.
9945         (vpaddq_u32): Likewise.
9946         (vpaddq_u64): Likewise.
9947
9948 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9949
9950         * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n
9951         builtin generator macros.
9952         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>):
9953         Define.
9954         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin
9955         instead of inline asm.
9956         (vqdmulh_n_s32): Likewise.
9957         (vqdmulhq_n_s16): Likewise.
9958         (vqdmulhq_n_s32): Likewise.
9959         (vqrdmulh_n_s16): Likewise.
9960         (vqrdmulh_n_s32): Likewise.
9961         (vqrdmulhq_n_s16): Likewise.
9962         (vqrdmulhq_n_s32): Likewise.
9963
9964 2021-04-28  Tobias Burnus  <tobias@codesourcery.com>
9965
9966         * doc/install.texi (--enable-offload-defaulted): Document.
9967
9968 2021-04-28  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
9969
9970         * config/avr/avr-dimode.md: Turn existing patterns into
9971         define_insn_and_split style patterns where the splitter
9972         adds a clobber of the condition code register.  Drop "cc"
9973         attribute.  Add new patterns to match output of
9974         the splitters.
9975         * config/avr/avr-fixed.md: Likewise.
9976         * config/avr/avr.c (cc_reg_rtx): New.
9977         (avr_parallel_insn_from_insns): Adjust insn count
9978         for removal of set of cc0.
9979         (avr_is_casesi_sequence): Likewise.
9980         (avr_casei_sequence_check_operands): Likewise.
9981         (avr_optimize_casesi): Likewise. Also insert
9982         new insns after jump_insn.
9983         (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust
9984         for removal of set of cc0.
9985         (avr_init_expanders): Initialize cc_reg_rtx.
9986         (avr_regno_reg_class): Handle REG_CC.
9987         (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE.
9988         (avr_notice_update_cc): Remove function.
9989         (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE.
9990         (compare_condition): Adjust for PARALLEL with
9991         REG_CC clobber.
9992         (out_shift_with_cnt): Likewise.
9993         (ashlhi3_out): Likewise.
9994         (ashrhi3_out): Likewise.
9995         (lshrhi3_out): Likewise.
9996         (avr_class_max_nregs): Return single reg for REG_CC.
9997         (avr_compare_pattern): Check for REG_CC instead
9998         of cc0_rtx.
9999         (avr_reorg_remove_redundant_compare): Likewise.
10000         (avr_reorg):Adjust for PARALLEL with REG_CC clobber.
10001         (avr_hard_regno_nregs): Return single reg for REG_CC.
10002         (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC.
10003         (avr_md_asm_adjust): Clobber REG_CC.
10004         (TARGET_HARD_REGNO_NREGS): Define.
10005         (TARGET_CLASS_MAX_NREGS): Define.
10006         (TARGET_MD_ASM_ADJUST): Define.
10007         * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust
10008         for REG_CC.
10009         (enum reg_class): Add CC_REG class.
10010         (NOTICE_UPDATE_CC): Remove.
10011         (CC_OVERFLOW_UNUSABLE): Remove.
10012         (CC_NO_CARRY): Remove.
10013         * config/avr/avr.md: Turn existing patterns into
10014         define_insn_and_split style patterns where the splitter
10015         adds a clobber of the condition code register.  Drop "cc"
10016         attribute.  Add new patterns to match output of
10017         the splitters.
10018         (sez): Remove unused pattern.
10019
10020 2021-04-28  Richard Earnshaw  <rearnsha@arm.com>
10021
10022         PR target/100311
10023         * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
10024         used in HImode.
10025
10026 2021-04-28  Richard Sandiford  <richard.sandiford@arm.com>
10027
10028         PR target/100305
10029         * config/aarch64/constraints.md (Utq): Require the address to
10030         be valid for both the element mode and for V2DImode.
10031
10032 2021-04-28  Jakub Jelinek  <jakub@redhat.com>
10033             Tobias Burnus  <tobias@codesourcery.com>
10034
10035         * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
10036         * gcc.c (process_command): New variable.
10037         (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED,
10038         set it if -foffload is defaulted.
10039         * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
10040         (compile_offload_image): If OFFLOAD_DEFAULTED and
10041         OFFLOAD_TARGET_DEFAULT is in the environment, don't fail
10042         if corresponding mkoffload can't be found.
10043         (compile_images_for_offload_targets): Likewise.  Free and clear
10044         offload_names if no valid offload is found.
10045         * config.in: Regenerate.
10046         * configure: Regenerate.
10047
10048 2021-04-28  Richard Biener  <rguenther@suse.de>
10049
10050         PR tree-optimization/100292
10051         * tree-vect-generic.c (expand_vector_condition): Do not fold
10052         the comparisons.
10053
10054 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
10055
10056         * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
10057         * config/rs6000/aix64.opt (m64): New.
10058         (m32): New.
10059
10060 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
10061
10062         * config/vax/vax.c (print_operand_address, vax_address_cost_1)
10063         (index_term_p): Handle ASHIFT too.
10064
10065 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
10066
10067         * config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3.
10068         (sync_lock_test_and_set<mode>): Adjust accordingly.
10069         (sync_lock_release<mode>): Likewise.
10070
10071 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
10072
10073         * config/vax/vax-protos.h (adjacent_operands_p): Remove
10074         prototype.
10075         * config/vax/vax.c (adjacent_operands_p): Remove.
10076
10077 2021-04-27  Maciej W. Rozycki  <macro@linux-mips.org>
10078
10079         * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall
10080         through to the non-conditional execution case if getting the
10081         condition for conditional execution has failed.
10082
10083 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
10084
10085         PR middle-end/100284
10086         * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test.
10087         * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather
10088         than asserting on it.
10089
10090 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
10091
10092         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect
10093         with TARGET_AIX_OS.
10094
10095 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
10096
10097         PR target/94177
10098         * calls.c (precompute_register_parameters): Additionally test
10099         targetm.precompute_tls_p to pre-compute argument.
10100         * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define.
10101         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New.
10102         * target.def (precompute_tls_p): New.
10103         * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation.
10104         * doc/tm.texi: Regenerated.
10105
10106 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
10107
10108         PR target/100200
10109         * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL
10110         back to HOST_WIDE_INT.
10111
10112 2021-04-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10113
10114         PR target/100106
10115         * simplify-rtx.c (simplify_context::simplify_subreg): Check the
10116         memory alignment for the outer mode.
10117
10118 2021-04-27  H.J. Lu  <hjl.tools@gmail.com>
10119
10120         PR middle-end/90773
10121         * expr.c (op_by_pieces_d::get_usable_mode): New member function.
10122         (op_by_pieces_d::run): Cange a while loop to a do-while loop.
10123
10124 2021-04-27  Alex Coplan  <alex.coplan@arm.com>
10125
10126         PR target/99977
10127         * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen
10128         with negative immediates: ensure we expand cbranchsi4_scratch
10129         correctly and ensure we satisfy its constraints.
10130         * config/arm/sync.md
10131         (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't
10132         attempt to tie two output operands together with constraints;
10133         collapse two alternatives.
10134         (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
10135         * config/arm/thumb1.md (cbranchsi4_neg_late): New.
10136
10137 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
10138
10139         PR target/100200
10140         * config/aarch64/predicates.md (aarch64_sub_immediate,
10141         aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL.
10142         * config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise.
10143         * config/aarch64/aarch64.c (aarch64_print_operand,
10144         aarch64_split_atomic_op, aarch64_expand_subvti): Likewise.
10145
10146 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
10147
10148         PR tree-optimization/100239
10149         * tree-vect-generic.c (lower_vec_perm): Don't accept constant
10150         permutations with all indices from the first zero element as vec_shl.
10151
10152 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
10153
10154         PR rtl-optimization/100254
10155         * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
10156         last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.
10157
10158 2021-04-27  Richard Biener  <rguenther@suse.de>
10159
10160         PR tree-optimization/99912
10161         * passes.def: Add comment about new TODO_remove_unused_locals.
10162         * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals
10163         at start.
10164
10165 2021-04-27  Richard Biener  <rguenther@suse.de>
10166
10167         PR tree-optimization/99912
10168         * passes.def (pass_all_optimizations): Add pass_dse before
10169         the first pass_dce, move the first pass_dse before the
10170         pass_dce following pass_pre.
10171
10172 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
10173
10174         PR tree-optimization/95527
10175         * generic-match-head.c: Include tm.h.
10176         * gimple-match-head.c: Include tm.h.
10177         * match.pd (CLZ == INTEGER_CST): Don't use
10178         #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO
10179         if clz == CFN_CLZ.  Add missing val declaration.
10180         (CTZ cmp CST): New simplifications.
10181
10182 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
10183
10184         PR tree-optimization/96696
10185         * expr.c (expand_expr_divmod): New function.
10186         (expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and
10187         divisions.  Formatting fixes.
10188         <case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is
10189         cheaper.
10190
10191 2021-04-27  Martin Jambor  <mjambor@suse.cz>
10192
10193         PR ipa/99951
10194         * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
10195         If removing a call statement LHS SSA name, release it.
10196
10197 2021-04-27  Richard Earnshaw  <rearnsha@arm.com>
10198
10199         PR target/100236
10200         * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM
10201         is valid before including it in the mask.
10202
10203 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
10204
10205         PR target/100270
10206         * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle
10207         SVE attributes.
10208
10209 2021-04-27  Richard Biener  <rguenther@suse.de>
10210
10211         PR tree-optimization/100051
10212         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add
10213         disambiguator based on access size vs. decl size.
10214
10215 2021-04-27  Richard Biener  <rguenther@suse.de>
10216
10217         PR tree-optimization/100278
10218         * tree-ssa-pre.c (compute_avail): Give up when we cannot
10219         adjust TBAA beacuse of mismatching bases.
10220
10221 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
10222
10223         PR target/99405
10224         * config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1):
10225         For any_rotate define_insn_split and following splitters, use
10226         SWI iterator instead of SWI48.
10227
10228 2021-04-27  Richard Biener  <rguenther@suse.de>
10229
10230         PR tree-optimization/99776
10231         * match.pd (bit_field_ref (ctor)): Relax element extract
10232         type compatibility checks.
10233
10234 2021-04-27  Cui,Lili  <lili.cui@intel.com>
10235
10236         * common/config/i386/i386-common.c (processor_names):
10237         Sync processor_names with processor_type.
10238         * config/i386/i386-options.c (processor_cost_table):
10239         Sync processor_cost_table with processor_type.
10240
10241 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
10242
10243         * value-range.cc (irange::irange_set_1bit_anti_range): Add assert.
10244         (irange::set): Call irange_set_1bit_anti_range for handling all
10245         1-bit ranges.  Fall through on ~[MIN,MAX].
10246
10247 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
10248
10249         * value-range.cc (irange::legacy_num_pairs): Remove.
10250         (irange::invert): Change gcc_assert to gcc_checking_assert.
10251         * value-range.h (irange::num_pairs): Adjust for a cached
10252         num_pairs().  Also, rename all gcc_assert's to
10253         gcc_checking_assert's.
10254
10255 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
10256
10257         * value-range.cc (irange::operator=): Set m_kind.
10258         (irange::copy_to_legacy): Handle varying and undefined sources
10259         as a legacy copy since they can be easily copied.
10260         (irange::irange_set): Set m_kind.
10261         (irange::irange_set_anti_range): Same.
10262         (irange::set): Rename normalize_min_max to normalize_kind.
10263         (irange::verify_range): Adjust for multi-ranges having the
10264         m_kind field set.
10265         (irange::irange_union): Set m_kind.
10266         (irange::irange_intersect): Same.
10267         (irange::invert): Same.
10268         * value-range.h (irange::kind): Always return m_kind.
10269         (irange::varying_p): Rename to...
10270         (irange::varying_comptaible_p): ...this.
10271         (irange::undefined_p): Only look at m_kind.
10272         (irange::irange): Always set VR_UNDEFINED if applicable.
10273         (irange::set_undefined): Always set VR_UNDEFINED.
10274         (irange::set_varying): Always set m_kind to VR_VARYING.
10275         (irange::normalize_min_max): Rename to...
10276         (irange::normalize_kind): ...this.
10277
10278 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
10279
10280         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
10281         Adjust for constant_p including varying_p.
10282         * tree-vrp.c (vrp_prop::finalize): Same.
10283         (determine_value_range): Same.
10284         * vr-values.c (vr_values::range_of_expr): Same.
10285         * value-range.cc (irange::symbolic_p): Do not check varying_p.
10286         (irange::constant_p): Same.
10287
10288 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
10289
10290         * value-range.cc (irange::legacy_lower_bound): Replace
10291           !undefined_p check with num_ranges > 0.
10292         (irange::legacy_upper_bound): Same.
10293         * value-range.h (irange::type): Same.
10294         (irange::lower_bound): Same.
10295         (irange::upper_bound): Same.
10296
10297 2021-04-26  Richard Biener  <rguenther@suse.de>
10298
10299         PR tree-optimization/99956
10300         * gimple-loop-interchange.cc (compute_access_stride):
10301         Try instantiating the access in a shallower loop nest
10302         if instantiating failed.
10303         (compute_access_strides): Pass adjustable loop_nest
10304         to compute_access_stride.
10305
10306 2021-04-26  Christophe Lyon  <christophe.lyon@linaro.org>
10307
10308         * doc/sourcebuild.texi (arm_cmse_hw): Document.
10309
10310 2021-04-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10311
10312         * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF.
10313
10314 2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
10315             Nathan Sidwell  <nathan@codesourcery.com>
10316             Tom de Vries  <vries@codesourcery.com>
10317             Julian Brown  <julian@codesourcery.com>
10318             Kwok Cheung Yeung  <kcy@codesourcery.com>
10319
10320         * omp-offload.c (oacc_validate_dims): Implement
10321         '-Wopenacc-parallelism'.
10322         * doc/invoke.texi (-Wopenacc-parallelism): Document.
10323
10324 2021-04-26  Richard Biener  <rguenther@suse.de>
10325
10326         * tree-cfg.h (gimplify_build1): Remove.
10327         (gimplify_build2): Likewise.
10328         (gimplify_build3): Likewise.
10329         * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c.
10330         (gimplify_build2): Likewise.
10331         (gimplify_build3): Likewise.
10332         * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c.
10333         Modernize.
10334         (gimplify_build2): Likewise.
10335         (gimplify_build3): Likewise.
10336         (tree_vec_extract): Use resimplify with following SSA edges.
10337         (expand_vector_parallel): Avoid passing NULL size/bitpos
10338         to tree_vec_extract.
10339         * expr.c (store_constructor): Deal with zero-element CTORs.
10340         * match.pd (bit_field_ref <vector CTOR>): Make sure to
10341         produce vector constants when possible.
10342
10343 2021-04-26  Richard Biener  <rguenther@suse.de>
10344
10345         * tree-complex.c: Include gimple-fold.h.
10346         (expand_complex_addition): Use gimple_build.
10347         (expand_complex_multiplication_components): Likewise.
10348         (expand_complex_multiplication): Likewise.
10349         (expand_complex_div_straight): Likewise.
10350         (expand_complex_div_wide): Likewise.
10351         (expand_complex_division): Likewise.
10352         (expand_complex_conjugate): Likewise.
10353         (expand_complex_comparison): Likewise.
10354
10355 2021-04-26  Richard Biener  <rguenther@suse.de>
10356
10357         * tree-ssa-phiopt.c (two_value_replacement): Remove use
10358         of legacy gimplify_buildN API.
10359
10360 2021-04-26  Richard Biener  <rguenther@suse.de>
10361
10362         PR tree-optimization/99473
10363         * tree-ssa-phiopt.c (cond_store_replacement): Handle all
10364         stores.
10365
10366 2021-04-26  Richard Biener  <rguenther@suse.de>
10367
10368         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin):
10369         Use replace_call_with_value.
10370
10371 2021-04-26  Richard Biener  <rguenther@suse.de>
10372
10373         * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove.
10374         (update_gimple_call): Likewise.
10375         (update_call_from_tree): Likewise.
10376         * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove.
10377         (valid_gimple_call_p): Likewise.
10378         (move_ssa_defining_stmt_for_defs): Likewise.
10379         (finish_update_gimple_call): Likewise.
10380         (update_gimple_call): Likewise.
10381         (update_call_from_tree): Likewise.
10382         (propagate_tree_value_into_stmt): Use replace_call_with_value.
10383         * gimple-fold.h (update_gimple_call): Declare.
10384         * gimple-fold.c (valid_gimple_rhs_p): Move here from
10385         tree-ssa-propagate.c.
10386         (update_gimple_call): Likewise.
10387         (valid_gimple_call_p): Likewise.
10388         (finish_update_gimple_call): Likewise, and simplify.
10389         (gimplify_and_update_call_from_tree): Implement
10390         update_call_from_tree functionality, avoid excessive
10391         push/pop_gimplify_context.
10392         (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree.
10393         (gimple_fold_call): Likewise.
10394         * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise.
10395         * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise.
10396         (pass_fold_builtins::execute): Likewise.
10397         (optimize_stack_restore): Use replace_call_with_value.
10398         * tree-cfg.c (fold_loop_internal_call): Likewise.
10399         * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use
10400         only gimplify_and_update_call_from_tree.
10401         * tree-ssa-strlen.c (handle_builtin_strlen): Likewise.
10402         (handle_builtin_strchr): Likewise.
10403         * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h.
10404
10405 2021-04-26  Jakub Jelinek  <jakub@redhat.com>
10406
10407         PR debug/100255
10408         * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
10409         vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
10410         register keywords.
10411
10412 2021-04-25  liuhongt  <hongtao.liu@intel.com>
10413
10414         PR target/98911
10415         * config/i386/i386-builtin.def (BDESC): Change the icode of
10416         the following builtins to CODE_FOR_nothing.
10417         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold
10418         IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128,
10419         IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ,
10420         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
10421         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
10422         IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128,
10423         IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ,
10424         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
10425         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256.
10426         * config/i386/sse.md (avx2_eq<mode>3): Deleted.
10427         (sse2_eq<mode>3): Ditto.
10428         (sse4_1_eqv2di3): Ditto.
10429         (sse2_gt<mode>3): Rename to ..
10430         (*sse2_gt<mode>3): .. this.
10431
10432 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
10433
10434         Revert:
10435         2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
10436
10437         PR target/100152
10438         * config/darwin.c (darwin_binds_local_p): Assume that any
10439         public symbol might be interposed for PIC code. Update function
10440         header comment to reflect current Darwin capability.
10441
10442 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
10443
10444         PR target/100152
10445         * config/darwin.c (darwin_binds_local_p): Assume that any
10446         public symbol might be interposed for PIC code. Update function
10447         header comment to reflect current Darwin capability.
10448
10449 2021-04-24  Richard Sandiford  <richard.sandiford@arm.com>
10450
10451         * doc/sourcebuild.texi: Document no-opts and any-opts target
10452         selectors.
10453
10454 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
10455
10456         * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.
10457
10458 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
10459
10460         * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.
10461
10462 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
10463
10464         PR target/100041
10465         * config/i386/i386-options.c (ix86_option_override_internal):
10466         Error out when -m96bit-long-double is used with 64bit targets.
10467         * config/i386/i386.md (*pushxf_rounded): Remove pattern.
10468
10469 2021-04-23  Martin Liska  <mliska@suse.cz>
10470
10471         * lto-wrapper.c: Remove FIXME about usage of
10472         hardware_concurrency. The function is not on par with
10473         what we have now.
10474
10475 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
10476
10477         PR target/100182
10478         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
10479         Copy operand 3 to operand 4.  Use sse_reg_operand
10480         as operand 3 predicate.
10481         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
10482         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
10483         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
10484         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
10485         Copy operand 1 to operand 0.
10486         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
10487         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
10488         (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.
10489
10490 2021-04-23  Alex Coplan  <alex.coplan@arm.com>
10491
10492         PR rtl-optimization/100230
10493         * early-remat.c (early_remat::sort_candidates): Use delete[]
10494         instead of delete for array allocated with new[].
10495
10496 2021-04-23  Richard Biener  <rguenther@suse.de>
10497
10498         * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing.
10499         (capture_info::capture_info): Likewise.
10500         (capture_info::walk_match): Likewise.
10501         (expr::gen_transform): Likewise.
10502         (dt_simplify::gen_1): Likewise.
10503         * gimple-match-head.c (maybe_resimplify_conditional_op):
10504         Remove VEC_COND_EXPR special-casing.
10505         (gimple_simplify): Likewise.
10506         * gimple.c (gimple_could_trap_p_1): Adjust.
10507         * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR
10508         to participate in PRE.
10509
10510 2021-04-23  Richard Biener  <rguenther@suse.de>
10511
10512         * cfganal.c (connect_infinite_loops_to_exit): First call
10513         add_noreturn_fake_exit_edges.
10514         * ipa-sra.c (process_scan_results): Do not call the now redundant
10515         add_noreturn_fake_exit_edges.
10516         * predict.c (tree_estimate_probability): Likewise.
10517         (rebuild_frequencies): Likewise.
10518         * store-motion.c (one_store_motion_pass): Likewise.
10519
10520 2021-04-23  Richard Biener  <rguenther@suse.de>
10521
10522         PR tree-optimization/100222
10523         * predict.c (pass_profile::execute): Remove redundant call to
10524         mark_irreducible_loops.
10525         (report_predictor_hitrates): Likewise.
10526
10527 2021-04-23  Richard Biener  <rguenther@suse.de>
10528
10529         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
10530         valid_gimple_rhs_p by instead gimplifying to one.
10531
10532 2021-04-23  Richard Biener  <rguenther@suse.de>
10533
10534         PR tree-optimization/99971
10535         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
10536         Always use TBAA for loads.
10537
10538 2021-04-23  liuhongt  <hongtao.liu@intel.com>
10539
10540         PR target/100093
10541         * config/i386/i386-options.c (ix86_option_override_internal):
10542         Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags
10543         when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled
10544         by target attribute.
10545
10546 2021-04-23  David Edelsohn  <dje.gcc@gmail.com>
10547
10548         * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to
10549         DWARF2_DEBUG.
10550         * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same.
10551
10552 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
10553
10554         * config.gcc (powerpc-ibm-aix6.*): Remove.
10555         * config/rs6000/aix61.h: Delete.
10556
10557 2021-04-22  Martin Liska  <mliska@suse.cz>
10558
10559         PR testsuite/100159
10560         PR testsuite/100192
10561         * builtins.c (expand_builtin): Fix typos and missing comments.
10562         * dwarf2out.c (gen_subprogram_die): Likewise.
10563         (gen_struct_or_union_type_die): Likewise.
10564
10565 2021-04-22  Uroš Bizjak  <ubizjak@gmail.com>
10566
10567         PR target/100119
10568         * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse):
10569         Remove the sign with FE_DOWNWARD, where x - x = -0.0.
10570
10571 2021-04-21  Iain Sandoe  <iain@sandoe.co.uk>
10572
10573         * config/i386/darwin.h (TARGET_64BIT): Remove definition
10574         based on TARGET_ISA_64BIT.
10575         (TARGET_64BIT_P): Remove definition based on
10576         TARGET_ISA_64BIT_P().
10577
10578 2021-04-21  Martin Liska  <mliska@suse.cz>
10579
10580         Revert:
10581         2021-04-21  Martin Liska  <mliska@suse.cz>
10582
10583         * lto-wrapper.c (cpuset_popcount): Remove.
10584         (init_num_threads): Remove and use hardware_concurrency.
10585
10586 2021-04-21  Martin Liska  <mliska@suse.cz>
10587
10588         PR jit/98615
10589         * main.c (main): Call toplev::finalize in CHECKING_P mode.
10590         * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL
10591         when incremental LTO linking happens.
10592
10593 2021-04-21  Martin Liska  <mliska@suse.cz>
10594
10595         * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the
10596         makeserver cannot be detected, then use -flto=N fallback.
10597
10598 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
10599
10600         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling,
10601         default to yes for aarch64-linux-gnu.
10602         * configure: Regenerate.
10603
10604 2021-04-21  Martin Liska  <mliska@suse.cz>
10605
10606         * lto-wrapper.c (cpuset_popcount): Remove.
10607         (init_num_threads): Remove and use hardware_concurrency.
10608
10609 2021-04-21  Martin Liska  <mliska@suse.cz>
10610
10611         * config/i386/i386.c: Remove superfluous || TARGET_MACHO
10612         which remains to be '(... || 0)' and clang complains about it.
10613         * dwarf2out.c (AT_vms_delta): Declare conditionally.
10614         (add_AT_vms_delta): Likewise.
10615         * tree.c (fld_simplified_type): Use rather more common pattern
10616         for disabling of something (#if 0).
10617         (get_tree_code_name): Likewise.
10618         (verify_type_variant): Likewise.
10619
10620 2021-04-21  Martin Liska  <mliska@suse.cz>
10621
10622         * config/i386/i386-expand.c (decide_alignment): Use newly named
10623         macro TARGET_CPU_P.
10624         * config/i386/i386.c (ix86_decompose_address): Likewise.
10625         (ix86_address_cost): Likewise.
10626         (ix86_lea_outperforms): Likewise.
10627         (ix86_avoid_lea_for_addr): Likewise.
10628         (ix86_add_stmt_cost): Likewise.
10629         * config/i386/i386.h (TARGET_*): Remove.
10630         (TARGET_CPU_P): New macro.
10631         * config/i386/i386.md: Use newly named macro TARGET_CPU_P.
10632         * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise.
10633         (swap_top_of_ready_list): Likewise.
10634         (ix86_atom_sched_reorder): Likewise.
10635         * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise.
10636         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise.
10637
10638 2021-04-21  Martin Liska  <mliska@suse.cz>
10639
10640         * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P):
10641         Define.
10642         (SET_TARGET_NO_SAHF): Likewise.
10643         (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise.
10644         (SET_TARGET_PREFETCH_SSE): Likewise.
10645         (TARGET_EXPLICIT_NO_TUNE_P): Likewise.
10646         (SET_TARGET_NO_TUNE): Likewise.
10647         (TARGET_EXPLICIT_NO_80387_P): Likewise.
10648         (SET_TARGET_NO_80387): Likewise.
10649         (DEF_PTA): New.
10650         * config/i386/i386.h (TARGET_*): Remove.
10651         * opth-gen.awk: Generate new used macros.
10652
10653 2021-04-21  Martin Liska  <mliska@suse.cz>
10654
10655         * config/i386/i386.h (PTA_*): Remove.
10656         (enum pta_flag): New.
10657         (DEF_PTA): Generate PTA_* values from i386-isa.def.
10658         * config/i386/i386-isa.def: New file.
10659
10660 2021-04-21  Alex Coplan  <alex.coplan@arm.com>
10661
10662         PR target/99988
10663         * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
10664         (rest_of_insert_bti): Avoid inserting duplicate bti j insns for
10665         jump table targets.
10666
10667 2021-04-21  H.J. Lu  <hjl.tools@gmail.com>
10668
10669         * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and
10670         x86_64-*-* targets.
10671         * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET):
10672         New.
10673         (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise.
10674         (ix86_handle_option): Handle -mmwait.
10675         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
10676         Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on
10677         __builtin_ia32_monitor and __builtin_ia32_mwait.
10678         * config/i386/i386-options.c (isa2_opts): Add -mmwait.
10679         (ix86_valid_target_attribute_inner_p): Likewise.
10680         (ix86_option_override_internal): Enable mwait/monitor
10681         instructions for -msse3.
10682         * config/i386/i386.h (TARGET_MWAIT): New.
10683         (TARGET_MWAIT_P): Likewise.
10684         * config/i386/i386.opt: Add -mmwait.
10685         * config/i386/mwaitintrin.h: New file.
10686         * config/i386/pmmintrin.h: Include <mwaitintrin.h>.
10687         * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with
10688         TARGET_MWAIT.
10689         (@sse3_monitor_<mode>): Likewise.
10690         * config/i386/x86gprintrin.h: Include <mwaitintrin.h>.
10691         * doc/extend.texi: Document mwait target attribute.
10692         * doc/invoke.texi: Document -mmwait.
10693
10694 2021-04-21  Martin Liska  <mliska@suse.cz>
10695
10696         * config/i386/i386-options.c (DEF_ENUM): Remove it.
10697         * config/i386/i386-opts.h (DEF_ENUM): Likewise.
10698         * config/i386/stringop.def (DEF_ENUM): Likewise.
10699
10700 2021-04-21  Martin Liska  <mliska@suse.cz>
10701
10702         * tree-cfg.c (gimple_verify_flow_info): Use qD instead
10703         of print_generic_expr.
10704
10705 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
10706
10707         PR rtl-optimization/100148
10708         * cprop.c (constprop_register): Use next_nondebug_insn instead of
10709         NEXT_INSN.
10710
10711 2021-04-21  Martin Liska  <mliska@suse.cz>
10712
10713         PR ipa/98815
10714         * cgraphunit.c (cgraph_node::analyze): Remove duplicate
10715         free_dominance_info calls.
10716
10717 2021-04-21  Richard Biener  <rguenther@suse.de>
10718
10719         * gimple-fold.c (maybe_fold_reference): Remove is_lhs
10720         parameter (and assume it to be false).
10721         (fold_gimple_assign): Adjust, remove all callers of
10722         maybe_fold_reference calling it with is_lhs true.
10723         (gimple_fold_call): Likewise.
10724         (fold_stmt_1): Likewise.
10725
10726 2021-04-21  Richard Biener  <rguenther@suse.de>
10727
10728         * fold-const.c (pedantic_non_lvalue_loc): Remove.
10729         (fold_binary_loc): Adjust.
10730         (fold_ternary_loc): Likewise.
10731
10732 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
10733
10734         PR middle-end/100130
10735         * varasm.c (get_block_for_decl): Make sure that any use of the
10736         retain attribute matches the section's retain flag.
10737         (switch_to_section): Check for retain mismatches even when
10738         changing sections, but do not warn if the given decl is the
10739         section's named.decl.
10740         (output_object_block): Pass the first decl in the block (if any)
10741         to switch_to_section.
10742
10743 2021-04-20  H.J. Lu  <hjl.tools@gmail.com>
10744
10745         * config/i386/i386-c.c (ix86_target_macros_internal): Define
10746         __CRC32__ for -mcrc32.
10747         * config/i386/i386-options.c (ix86_option_override_internal):
10748         Enable crc32 instruction for -msse4.2.
10749         * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2
10750         check.
10751         (sse4_2_crc32di): Likewise.
10752         * config/i386/ia32intrin.h: Use crc32 target option for CRC32
10753         intrinsics.
10754
10755 2021-04-20  Segher Boessenkool  <segher@kernel.crashing.org>
10756
10757         PR target/100108
10758         * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
10759         OPTION_MASK_ISEL.
10760
10761 2021-04-20  Martin Liska  <mliska@suse.cz>
10762
10763         * doc/invoke.texi: Fix typo.
10764         * params.opt: Likewise.
10765
10766 2021-04-20  Martin Liska  <mliska@suse.cz>
10767
10768         * doc/invoke.texi: Document new param.
10769
10770 2021-04-19  Andrew MacLeod  <amacleod@redhat.com>
10771
10772         PR tree-optimization/100081
10773         * gimple-range-cache.h (ranger_cache): Inherit from gori_compute
10774         rather than gori_compute_cache.
10775         * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
10776         (range_def_chain::m_logical_depth): New member.
10777         (range_def_chain::range_def_chain): Initialize m_logical_depth.
10778         (range_def_chain::get_def_chain): Don't build defchains through more
10779         than LOGICAL_LIMIT logical expressions.
10780         * params.opt (param_ranger_logical_depth): New.
10781
10782 2021-04-19  Richard Earnshaw  <rearnsha@arm.com>
10783
10784         PR target/100067
10785         * config/arm/arm.c (arm_configure_build_target): Do not strip
10786         extended FPU/SIMD feature bits from the target ISA when -mfpu
10787         is specified (partial revert of r11-8168).
10788
10789 2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>
10790
10791         * params.opt (-param=openacc-kernels=): Add.
10792         * omp-oacc-kernels-decompose.cc
10793         (pass_omp_oacc_kernels_decompose::gate): Use it.
10794         * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
10795         (--param): ... here, 'openacc-kernels'.
10796
10797 2021-04-19  Martin Liska  <mliska@suse.cz>
10798
10799         PR c/100143
10800         * gengtype.c (finish_root_table): Align function arguments
10801         in between declaration and definition.
10802
10803 2021-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10804
10805         * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
10806         frames larger than the SEH maximum frame size.
10807
10808 2021-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
10809
10810         PR rtl-optimization/99927
10811         * combine.c (distribute_notes) [REG_UNUSED]: If the register already
10812         is dead, just drop it.
10813
10814 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
10815
10816         PR d/99914
10817         * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
10818         * doc/tm.texi: Regenerate.
10819         * doc/tm.texi.in (D language and ABI): Add @hook for
10820         TARGET_D_TEMPLATES_ALWAYS_COMDAT.
10821
10822 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
10823
10824         * config/darwin-d.c (darwin_d_handle_target_object_format): New
10825         function.
10826         (darwin_d_register_target_info): New function.
10827         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10828         * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
10829         function.
10830         (dragonfly_d_register_target_info): New function.
10831         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10832         * config/freebsd-d.c (freebsd_d_handle_target_object_format): New
10833         function.
10834         (freebsd_d_register_target_info): New function.
10835         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10836         * config/glibc-d.c (glibc_d_handle_target_object_format): New
10837         function.
10838         (glibc_d_register_target_info): New function.
10839         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10840         * config/i386/i386-d.c (ix86_d_handle_target_object_format): New
10841         function.
10842         (ix86_d_register_target_info): Add ix86_d_handle_target_object_format
10843         as handler for objectFormat key.
10844         * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
10845         function.
10846         (winnt_d_register_target_info): New function.
10847         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10848         * config/netbsd-d.c (netbsd_d_handle_target_object_format): New
10849         function.
10850         (netbsd_d_register_target_info): New function.
10851         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10852         * config/openbsd-d.c (openbsd_d_handle_target_object_format): New
10853         function.
10854         (openbsd_d_register_target_info): New function.
10855         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10856         * config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
10857         (pa_d_register_target_info): Add pa_d_handle_target_object_format as
10858         handler for objectFormat key.
10859         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
10860         function.
10861         (rs6000_d_register_target_info): Add
10862         rs6000_d_handle_target_object_format as handler for objectFormat key.
10863         * config/sol2-d.c (solaris_d_handle_target_object_format): New
10864         function.
10865         (solaris_d_register_target_info): New function.
10866         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10867
10868 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
10869
10870         PR target/91710
10871         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
10872         abi_break argument from bool * to unsigned *, store there the pre-GCC 9
10873         alignment.
10874         (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
10875         (aarch64_function_arg_regno_p): Likewise.  Only emit -Wpsabi note if
10876         the old and new alignment after applying MIN/MAX to it is different.
10877
10878 2021-04-16  Tamar Christina  <tamar.christina@arm.com>
10879
10880         PR target/100048
10881         * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
10882         * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
10883         TRN optab.
10884         * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
10885
10886 2021-04-16  Bill Schmidt  <wschmidt@linux.ibm.com>
10887
10888         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
10889         this section and its subsections.
10890
10891 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
10892
10893         PR target/100075
10894         * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
10895         define_insn patterns.
10896
10897 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
10898
10899         PR rtl-optimization/98689
10900         * reg-notes.def (UNTYPED_CALL): New note.
10901         * combine.c (distribute_notes): Handle it.
10902         * emit-rtl.c (try_split): Likewise.
10903         * rtlanal.c (rtx_properties::try_to_add_insn): Likewise.  Assume
10904         that calls with the note implicitly set all return value registers.
10905         * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL
10906         to untyped_calls.
10907
10908 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
10909
10910         PR rtl-optimization/99596
10911         * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global
10912         register accesses for const calls.  Assume that pure functions
10913         can only read from global registers.  Ignore cases in which
10914         the stack pointer has been marked global.
10915
10916 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
10917
10918         PR target/99767
10919         * tree-vect-loop.c (vect_transform_loop): Don't remove just
10920         dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
10921         them by their last argument.
10922
10923 2021-04-15  Martin Liska  <mliska@suse.cz>
10924
10925         * doc/invoke.texi: Other params don't use it, remove it.
10926
10927 2021-04-15  Richard Biener  <rguenther@suse.de>
10928
10929         * gimple-builder.h: Add deprecation note.
10930
10931 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
10932
10933         PR c++/98852
10934         * attribs.h (restrict_type_identity_attributes_to): Declare.
10935         * attribs.c (restrict_type_identity_attributes_to): New function.
10936
10937 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
10938
10939         PR c/98852
10940         * attribs.h (affects_type_identity_attributes): Declare.
10941         * attribs.c (remove_attributes_matching): New function.
10942         (affects_type_identity_attributes): Likewise.
10943
10944 2021-04-15  Jakub Jelinek  <jakub@redhat.com>
10945
10946         PR target/100056
10947         * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3):
10948         Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with
10949         ZERO_EXTEND, SIGN_EXTEND or AND.
10950
10951 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
10952
10953         PR rtl-optimization/99929
10954         * rtl.h (same_vector_encodings_p): New function.
10955         * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
10956         * cselib.c (rtx_equal_for_cselib_1): Likewise.
10957         * jump.c (rtx_renumbered_equal_p): Likewise.
10958         * lra-constraints.c (operands_match_p): Likewise.
10959         * reload.c (operands_match_p): Likewise.
10960         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
10961
10962 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
10963
10964         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
10965         more information about variable-length CONST_VECTORs.
10966
10967 2021-04-14  Vladimir N. Makarov  <vmakarov@redhat.com>
10968
10969         PR rtl-optimization/100066
10970         * lra-constraints.c (split_reg): Check paradoxical_subreg_p for
10971         ordered modes when choosing splitting mode for hard reg.
10972
10973 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
10974
10975         PR target/99246
10976         * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
10977         New function.
10978         (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
10979
10980 2021-04-14  Andreas Krebbel  <krebbel@linux.ibm.com>
10981
10982         * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros
10983         for mask operand types.
10984         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
10985         (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate
10986         operand.
10987         (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
10988         immediate operand.
10989         * config/s390/s390.c (s390_const_operand_ok): Check the new
10990         operand types and generate a list of valid values.
10991
10992 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
10993
10994         * doc/tm.texi: Regenerate.
10995         * doc/tm.texi.in (D language and ABI): Add @hook for
10996         TARGET_D_REGISTER_OS_TARGET_INFO.
10997
10998 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
10999
11000         * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
11001         function.
11002         (aarch64_d_register_target_info): New function.
11003         * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
11004         Declare.
11005         * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
11006         Define.
11007         * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function.
11008         (arm_d_register_target_info): New function.
11009         * config/arm/arm-protos.h (arm_d_register_target_info): Declare.
11010         * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11011         * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function.
11012         (ix86_d_register_target_info): New function.
11013         * config/i386/i386-protos.h (ix86_d_register_target_info): Declare.
11014         * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11015         * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function.
11016         (mips_d_register_target_info): New function.
11017         * config/mips/mips-protos.h (mips_d_register_target_info): Declare.
11018         * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11019         * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function.
11020         (pa_d_register_target_info): New function.
11021         * config/pa/pa-protos.h (pa_d_register_target_info): Declare.
11022         * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11023         * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New
11024         function.
11025         (riscv_d_register_target_info): New function.
11026         * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare.
11027         * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11028         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New
11029         function.
11030         (rs6000_d_register_target_info): New function.
11031         * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
11032         Declare.
11033         * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11034         * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function.
11035         (s390_d_register_target_info): New function.
11036         * config/s390/s390-protos.h (s390_d_register_target_info): Declare.
11037         * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11038         * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New
11039         function.
11040         (sparc_d_register_target_info): New function.
11041         * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare.
11042         * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11043         * doc/tm.texi: Regenerate.
11044         * doc/tm.texi.in (D language and ABI): Add @hook for
11045         TARGET_D_REGISTER_CPU_TARGET_INFO.
11046
11047 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
11048
11049         * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function.
11050         * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare.
11051         * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define.
11052         * doc/tm.texi: Regenerate.
11053         * doc/tm.texi.in (D language and ABI): Add @hook for
11054         TARGET_D_HAS_STDCALL_CONVENTION.
11055
11056 2021-04-14  Richard Biener  <rguenther@suse.de>
11057
11058         * tree-cfg.c (verify_gimple_assign_ternary): Verify that
11059         VEC_COND_EXPRs have a gimple_val condition.
11060         * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR
11061         can no longer have a GENERIC condition.
11062
11063 2021-04-14  Richard Earnshaw  <rearnsha@arm.com>
11064
11065         PR target/100067
11066         * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits
11067         from the isa_delta when -mfpu has been used.
11068         (arm_options_perform_arch_sanity_checks): It's the architecture that
11069         lacks an FPU not the processor.
11070
11071 2021-04-13  Richard Biener  <rguenther@suse.de>
11072
11073         PR tree-optimization/100053
11074         * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
11075         not use optimistic dominance queries for backedges to validate
11076         predicated values.
11077         (dominated_by_p_w_unex): Add parameter to ignore executable
11078         state on backedges.
11079         (rpo_elim::eliminate_avail): Adjust.
11080
11081 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
11082
11083         PR target/100028
11084         * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
11085         *aarch64_bfxilsi_extrdi): New define_insn patterns.
11086
11087 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
11088
11089         PR target/99648
11090         * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P
11091         outermode, return NULL if the result doesn't encode back to the
11092         original byte sequence.
11093         (simplify_gen_subreg): Don't create SUBREGs from constants to
11094         MODE_COMPOSITE_P outermode.
11095
11096 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
11097
11098         PR rtl-optimization/99905
11099         * combine.c (expand_compound_operation): If pos + len > modewidth,
11100         perform the right shift by pos in inner_mode and then convert to mode,
11101         instead of trying to simplify a shift of rtx with inner_mode by pos
11102         as if it was a shift in mode.
11103
11104 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
11105
11106         PR debug/99830
11107         * combine.c (simplify_and_const_int_1): Don't optimize varop
11108         away if it has side-effects.
11109
11110 2021-04-12  Martin Liska  <mliska@suse.cz>
11111
11112         * doc/extend.texi: Escape @smallexample content.
11113
11114 2021-04-12  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
11115
11116         * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
11117           alternative in order to load a DFP zero.
11118
11119 2021-04-12  Martin Liska  <mliska@suse.cz>
11120
11121         * doc/extend.texi: Be more precise in documentation
11122         of symver attribute.
11123
11124 2021-04-12  Martin Liska  <mliska@suse.cz>
11125
11126         PR sanitizer/99877
11127         * gimplify.c (gimplify_expr): Right now, we unpoison all
11128         variables before a goto <dest>. We should not do it if we are
11129         in a omp context.
11130
11131 2021-04-12  Cui,Lili  <lili.cui@intel.com>
11132
11133         * common/config/i386/cpuinfo.h (get_intel_cpu): Handle
11134         rocketlake.
11135         * common/config/i386/i386-common.c (processor_names): Add
11136         rocketlake.
11137         (processor_alias_table): Add rocketlake.
11138         * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add
11139         INTEL_COREI7_ROCKETLAKE.
11140         * config.gcc: Add -march=rocketlake.
11141         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11142         rocketlake.
11143         * config/i386/i386-options.c (m_ROCKETLAKE)  : Define.
11144         (processor_cost_table): Add rocketlake cost.
11145         * config/i386/i386.h (ix86_size_cost) : Define
11146         TARGET_ROCKETLAKE.
11147         (processor_type) : Add PROCESSOR_ROCKETLAKE.
11148         (PTA_ROCKETLAKE): Ditto.
11149         * doc/extend.texi: Add rocketlake.
11150         * doc/invoke.texi: Add rocketlake.
11151
11152 2021-04-12  Cui,Lili  <lili.cui@intel.com>
11153
11154         * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list.
11155         * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE.
11156         * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model.
11157         * doc/invoke.texi: Change alderlake ISA list.
11158
11159 2021-04-11  Hafiz Abid Qadeer  <abidh@codesourcery.com>
11160
11161         PR middle-end/98088
11162         * omp-expand.c (expand_oacc_collapse_init): Update condition in
11163         a gcc_assert.
11164
11165 2021-04-10  H.J. Lu  <hjl.tools@gmail.com>
11166
11167         PR target/99744
11168         * config/i386/serializeintrin.h (_serialize): Defined as macro.
11169
11170 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
11171
11172         PR lto/99849
11173         * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
11174         just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
11175
11176 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
11177
11178         PR middle-end/99989
11179         * gimple-ssa-warn-alloca.c
11180         (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to
11181         0 with integer precision unconditionally.
11182
11183 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
11184
11185         PR rtl-optimization/98601
11186         * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
11187         not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
11188         unaligned_mems handle VOIDmode like BLKmode.
11189
11190 2021-04-10  Jan Hubicka  <hubicka@ucw.cz>
11191
11192         PR lto/99857
11193         * tree.c (free_lang_data_in_decl): Do not release body of
11194         declare_variant_alt.
11195
11196 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
11197
11198         * config/aarch64/aarch64.c (aarch64_option_restore): If the
11199         architecture was specified explicitly and the tuning wasn't,
11200         tune for the architecture rather than the configured default CPU.
11201
11202 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
11203
11204         * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
11205         as the temporary register.
11206
11207 2021-04-09  Martin Liska  <mliska@suse.cz>
11208
11209         * doc/extend.texi: Move non-target attributes on the top level.
11210
11211 2021-04-09  Martin Liska  <mliska@suse.cz>
11212
11213         * doc/invoke.texi: Document minimum and maximum value of the
11214         argument for both supported compression algorithms.
11215
11216 2021-04-08  David Edelsohn  <dje.gcc@gmail.com>
11217
11218         * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select
11219         TLS BSS before TLS data.
11220         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm.
11221
11222 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
11223
11224         * doc/sourcebuild.texi (stdint_types_mbig_endian): Document.
11225
11226 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
11227
11228         * match.pd: Extend vec_cond folds to handle shifts.
11229
11230 2021-04-08  Maciej W. Rozycki  <macro@orcam.me.uk>
11231
11232         * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
11233         peephole.
11234
11235 2021-04-08  Alex Coplan  <alex.coplan@arm.com>
11236
11237         PR target/99647
11238         * config/arm/iterators.md (MVE_vecs): New.
11239         (V_elem): Also handle V2DF.
11240         * config/arm/mve.md (*mve_mov<mode>): Rename to ...
11241         (*mve_vdup<mode>): ... this. Remove second alternative since
11242         vec_duplicate of const_int is not canonical RTL, and we don't
11243         want to match symbol_refs.
11244         (*mve_vec_duplicate<mode>): Delete (pattern is redundant).
11245
11246 2021-04-08  Xionghu Luo  <luoxhu@linux.ibm.com>
11247
11248         * fold-const.c (fold_single_bit_test): Fix typo.
11249         * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
11250         instead.
11251
11252 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
11253
11254         PR tree-optimization/97513
11255         * tree-vect-slp.c (vect_add_slp_permutation): New function,
11256         split out from...
11257         (vectorizable_slp_permutation): ...here.  Detect cases in which
11258         all VEC_PERM_EXPRs are guaranteed to have the same stepped
11259         permute vector and only generate one permute vector for that case.
11260         Extend that case to handle variable-length vectors.
11261
11262 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
11263
11264         PR tree-optimization/99873
11265         * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function.
11266         (vect_build_slp_instance): Don't split store groups that could
11267         use IFN_STORE_LANES.
11268
11269 2021-04-07  Jakub Jelinek  <jakub@redhat.com>
11270
11271         PR target/99872
11272         * varasm.c (output_constant_pool_contents): Don't strip name encoding
11273         from XSTR (desc->sym, 0) or from label before passing those to
11274         ASM_OUTPUT_DEF.
11275
11276 2021-04-07  Richard Biener  <rguenther@suse.de>
11277
11278         PR tree-optimization/99954
11279         * tree-loop-distribution.c: Include tree-affine.h.
11280         (generate_memcpy_builtin): Try using tree-affine to prove
11281         non-overlap.
11282         (loop_distribution::classify_builtin_ldst): Always classify
11283         as PKIND_MEMMOVE.
11284
11285 2021-04-07  Richard Biener  <rguenther@suse.de>
11286
11287         PR tree-optimization/99947
11288         * tree-vect-loop.c (vectorizable_induction): Pre-allocate
11289         steps vector to avoid pushing elements from the reallocated
11290         vector.
11291
11292 2021-04-07  Richard Biener  <rguenther@suse.de>
11293
11294         * tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
11295         * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
11296         printing...
11297         * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
11298         function.
11299         (debug_vn_reference_ops): New.
11300
11301 2021-04-07  Bin Cheng  <bin.cheng@linux.alibaba.com>
11302
11303         PR tree-optimization/98736
11304         * tree-loop-distribution.c
11305         * (loop_distribution::bb_top_order_init):
11306         Compute RPO with programing order preserved by calling function
11307         rev_post_order_and_mark_dfs_back_seme.
11308
11309 2021-04-06  Vladimir N. Makarov  <vmakarov@redhat.com>
11310
11311         PR target/99781
11312         * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
11313         * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
11314         functions.
11315         (process_bb_lives): Don't update biggest mode of hard reg for
11316         implicit in multi-register group.  Use the new functions for
11317         updating dead_set and unused_set by register notes.
11318
11319 2021-04-06  Xianmiao Qu  <xianmiao_qu@c-sky.com>
11320
11321         * config/csky/csky_pipeline_ck802.md : Use insn reservation name
11322         instead of *.
11323
11324 2021-04-06  H.J. Lu  <hjl.tools@gmail.com>
11325
11326         * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
11327         (skylake_memset): Likewise.
11328         (skylake_cost): Change CLEAR_RATIO to 17.
11329         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
11330         Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
11331         m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
11332
11333 2021-04-06  Richard Biener  <rguenther@suse.de>
11334
11335         PR tree-optimization/99880
11336         * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
11337         set vectorized defs of relevant PHIs.
11338
11339 2021-04-06  Richard Biener  <rguenther@suse.de>
11340
11341         PR tree-optimization/99924
11342         * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
11343         nodes w/o scalar stmts as visited.
11344
11345 2021-04-06  Alex Coplan  <alex.coplan@arm.com>
11346
11347         PR target/99748
11348         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
11349         PCS for [su]fix_optab.
11350
11351 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
11352
11353         * config/darwin.c (machopic_legitimize_pic_address): Check
11354         that the current pic register is one of the hard reg set
11355         before setting liveness.
11356
11357 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
11358
11359         * config/darwin.c (machopic_legitimize_pic_address): Fix
11360         whitespace, remove unused code.
11361
11362 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
11363
11364         PR tree-optimization/99882
11365         * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
11366         pointer type.
11367
11368 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
11369
11370         PR rtl-optimization/99863
11371         * dse.c (replace_read): Drop regs_live argument.  Instead of
11372         regs_live, use store_insn->fixed_regs_live if non-NULL,
11373         otherwise punt if insns sequence clobbers or sets any hard
11374         registers.
11375
11376 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
11377
11378         PR testsuite/98125
11379         * targhooks.h (default_print_patchable_function_entry_1): Declare.
11380         * targhooks.c (default_print_patchable_function_entry_1): New function,
11381         copied from default_print_patchable_function_entry with an added flags
11382         argument.
11383         (default_print_patchable_function_entry): Rewritten into a small
11384         wrapper around default_print_patchable_function_entry_1.
11385         * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
11386         Redefine.
11387         (rs6000_print_patchable_function_entry): New function.
11388
11389 2021-04-02  Eric Botcazou  <ebotcazou@adacore.com>
11390
11391         * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
11392
11393 2021-04-01  Jason Merrill  <jason@redhat.com>
11394
11395         PR c++/98481
11396         * common.opt: Document v15 and v16.
11397
11398 2021-04-01  Richard Biener  <rguenther@suse.de>
11399
11400         PR tree-optimization/99863
11401         * gimplify.c (gimplify_init_constructor): Recompute vector
11402         constructor flags.
11403
11404 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
11405
11406         * doc/extend.texi (symver attribute): Fix up syntax errors
11407         in the examples.
11408
11409 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
11410
11411         PR tree-optimization/96573
11412         * gimple-ssa-store-merging.c (init_symbolic_number): Handle
11413         also pointer types.
11414
11415 2021-04-01  Richard Biener  <rguenther@suse.de>
11416
11417         PR tree-optimization/99856
11418         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
11419         precision to vector element precision.
11420
11421 2021-04-01  Martin Jambor  <mjambor@suse.cz>
11422
11423         PR tree-optimization/97009
11424         * tree-sra.c (access_or_its_child_written): New function.
11425         (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
11426         test.
11427
11428 2021-03-31  Jan Hubicka  <hubicka@ucw.cz>
11429
11430         PR ipa/98265
11431         * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
11432
11433 2021-03-31  Pat Haugen  <pthaugen@linux.ibm.com>
11434
11435         PR target/99133
11436         * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
11437         xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
11438         xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
11439         * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
11440         mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
11441         mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
11442         Likewise.
11443         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
11444         * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
11445         (define_attr "prefixed"): Update initializer.
11446
11447 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
11448
11449         PR debug/99490
11450         * dwarf2out.c (debug_ranges_dwo_section): New variable.
11451         (DW_RANGES_IDX_SKELETON): Define.
11452         (struct dw_ranges): Add begin_entry and end_entry members.
11453         (DEBUG_DWO_RNGLISTS_SECTION): Define.
11454         (add_ranges_num): Adjust r initializer for addition of *_entry
11455         members.
11456         (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
11457         set idx to DW_RANGES_IDX_SKELETON.
11458         (use_distinct_base_address_for_range): New function.
11459         (index_rnglists): Don't set r->idx if it is equal to
11460         DW_RANGES_IDX_SKELETON.  Initialize r->begin_entry and
11461         r->end_entry for -gsplit-dwarf if those will be needed by
11462         output_rnglists.
11463         (output_rnglists): Add DWO argument.  If true, switch to
11464         debug_ranges_dwo_section rather than debug_ranges_section.
11465         Adjust l1/l2 label indexes.  Only output the offset table when
11466         dwo is true and don't include in there the skeleton range
11467         entry if present.  For -gsplit-dwarf, skip ranges that belong
11468         to the other rnglists section.  Change return type from void
11469         to bool and return true if there are any range entries for
11470         the other section.  For dwarf_split_debug_info use
11471         DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
11472         entries instead of DW_RLE_start_end, DW_RLE_start_length and
11473         DW_RLE_base_address.  Use use_distinct_base_address_for_range.
11474         (init_sections_and_labels): Initialize debug_ranges_dwo_section
11475         if -gsplit-dwarf and DWARF >= 5.  Adjust ranges_section_label
11476         and range_base_label indexes.
11477         (dwarf2out_finish): Call index_rnglists earlier before finalizing
11478         .debug_addr.  Never emit DW_AT_rnglists_base attribute.  For
11479         -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
11480         with different dwo arguments.
11481         (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
11482
11483 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
11484
11485         PR tree-optimization/98268
11486         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
11487         recompute_tree_invariant_for_addr_expr after successfully
11488         folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
11489
11490 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
11491
11492         PR tree-optimization/99726
11493         * tree-data-ref.c (create_intersect_range_checks_index): Bail
11494         out if there is more than one access function SCEV for the loop
11495         being versioned.
11496
11497 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
11498
11499         PR rtl-optimization/97141
11500         PR rtl-optimization/98726
11501         * emit-rtl.c (valid_for_const_vector_p): Return true for
11502         CONST_POLY_INT_P.
11503         * rtx-vector-builder.h (rtx_vector_builder::step): Return a
11504         poly_wide_int instead of a wide_int.
11505         (rtx_vector_builder::apply_set): Take a poly_wide_int instead
11506         of a wide_int.
11507         * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
11508         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
11509         false for CONST_VECTORs that cannot be forced to memory.
11510         * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
11511         is too complex to force to memory, build it up from individual
11512         elements instead.
11513
11514 2021-03-31  Jan Hubicka  <jh@suse.cz>
11515
11516         PR lto/99447
11517         * cgraph.c (cgraph_node::release_body): Fix overactive check.
11518
11519 2021-03-31  Christophe Lyon  <christophe.lyon@linaro.org>
11520
11521         PR target/99786
11522         * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
11523         for V4HI and V2SI.
11524
11525 2021-03-31  H.J. Lu  <hjl.tools@gmail.com>
11526
11527         * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
11528         For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
11529         to SImode.
11530         (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
11531         "rep movsb/stosb" only for known sizes.
11532         * config/i386/i386-options.c (processor_cost_table): Use Ice
11533         Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
11534         Rapids and Alder Lake.
11535         * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
11536         * config/i386/x86-tune-costs.h (icelake_memcpy): New.
11537         (icelake_memset): Likewise.
11538         (icelake_cost): Likewise.
11539         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
11540         New.
11541
11542 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
11543
11544         PR target/98119
11545         * config/aarch64/aarch64.c
11546         (aarch64_vectorize_preferred_vector_alignment): Query the size
11547         of the provided SVE vector; do not assume that all SVE vectors
11548         have the same size.
11549
11550 2021-03-31  Jan Hubicka  <jh@suse.cz>
11551
11552         PR lto/99447
11553         * cgraph.c (cgraph_node::release_body): Remove all callers and
11554         references.
11555         * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
11556         * cgraphunit.c (cgraph_node::expand): And here.
11557
11558 2021-03-31  Martin Liska  <mliska@suse.cz>
11559
11560         * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
11561         and one negated condition.
11562
11563 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
11564             Richard Sandiford  <richard.sandiford@arm.com>
11565
11566         PR target/99813
11567         * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
11568         constraints on operands[2] and similarly 0 and rk constraints
11569         on operands[1] corresponding to that.
11570
11571 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
11572
11573         PR bootstrap/98860
11574         * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
11575         linker doesn't support DWARF sections new in DWARF5.
11576         * config/i386/i386-options.c (ix86_option_override_internal): Default
11577         to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
11578         targets.
11579         * config.in: Regenerated.
11580         * configure: Regenerated.
11581
11582 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11583
11584         PR target/99820
11585         * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
11586         available issue_info before using it.
11587
11588 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11589
11590         PR target/99822
11591         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
11592         in operand 1.
11593
11594 2021-03-30  Xionghu Luo  <luoxhu@linux.ibm.com>
11595
11596         PR target/99718
11597         * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
11598         (altivec_lvsl_reg_<mode>): ... this.
11599         (altivec_lvsr_reg): Change to ...
11600         (altivec_lvsr_reg_<mode>): ... this.
11601         * config/rs6000/predicates.md (vec_set_index_operand): New.
11602         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11603         Enable 32bit variable vec_insert for all TARGET_VSX.
11604         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
11605         Enable 32bit variable vec_insert for p9 and above.
11606         (rs6000_expand_vector_set_var_p8): Rename to ...
11607         (rs6000_expand_vector_set_var_p7): ... this.
11608         (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
11609         position.
11610         * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
11611         * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
11612         gen_altivec_lvsr_reg_di.
11613
11614 2021-03-30  H.J. Lu  <hjl.tools@gmail.com>
11615
11616         PR target/99744
11617         * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
11618         (__rdtscp): Likewise.
11619
11620 2021-03-30  Tamar Christina  <tamar.christina@arm.com>
11621
11622         PR tree-optimization/99825
11623         * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
11624         Reject non-mult 2 lanes.
11625
11626 2021-03-30  Richard Earnshaw  <rearnsha@arm.com>
11627
11628         PR target/99773
11629         * config/arm/arm.c (arm_file_start): Fix emission of
11630         Tag_ABI_VFP_args attribute.
11631
11632 2021-03-30  Richard Biener  <rguenther@suse.de>
11633
11634         PR tree-optimization/99824
11635         * stor-layout.c (set_min_and_max_values_for_integral_type):
11636         Assert the precision is within the bounds of
11637         WIDE_INT_MAX_PRECISION.
11638         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
11639         the outermost component ref only to lower the access size
11640         and initialize that from the access type.
11641
11642 2021-03-30  Richard Sandiford  <richard.sandiford@arm.com>
11643
11644         PR target/98136
11645         * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
11646         CONST_INTs to aarch64_expand_mov_immediate when called after RA.
11647
11648 2021-03-30  Mihailo Stojanovic  <mihailo.stojanovic@typhoon-hil.com>
11649
11650         * config/aarch64/aarch64.md
11651         (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
11652         attribute to disambiguate between SIMD and FP variants of the
11653         instruction.
11654
11655 2021-03-29  Jan Hubicka  <hubicka@ucw.cz>
11656
11657         * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
11658         (analyze_ssa_name_flags): Fix typo in comment.
11659
11660 2021-03-29  Alex Coplan  <alex.coplan@arm.com>
11661
11662         PR target/99216
11663         * config/aarch64/aarch64-sve-builtins.cc
11664         (function_builder::add_function): Add placeholder_p argument, use
11665         placeholder decls if this is set.
11666         (function_builder::add_unique_function): Instead of conditionally adding
11667         direct overloads, unconditionally add either a direct overload or a
11668         placeholder.
11669         (function_builder::add_overloaded_function): Set placeholder_p if we're
11670         using C++ overloads. Use the obstack for string storage instead
11671         of relying on the tree nodes.
11672         (function_builder::add_overloaded_functions): Don't return early for
11673         m_direct_overloads: we need to add placeholders.
11674         * config/aarch64/aarch64-sve-builtins.h
11675         (function_builder::add_function): Add placeholder_p argument.
11676
11677 2021-03-29  Richard Biener  <rguenther@suse.de>
11678
11679         PR tree-optimization/99807
11680         * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
11681         assert below VEC_PERM handling.
11682
11683 2021-03-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11684
11685         PR target/99037
11686         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
11687         aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
11688         matching const_int 0.
11689         (move_lo_quad_internal_be_<mode>): Likewise.
11690         (move_lo_quad_<mode>): Update for the above.
11691         * config/aarch64/iterators.md (VQ_2E): Delete.
11692
11693 2021-03-29  Jakub Jelinek  <jakub@redhat.com>
11694
11695         PR tree-optimization/99777
11696         * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
11697         types other than scalar integral types.
11698
11699 2021-03-28  David Edelsohn  <dje.gcc@gmail.com>
11700
11701         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
11702         XCOFF TLS reloc decorations.
11703
11704 2021-03-28  Gerald Pfeifer  <gerald@pfeifer.com>
11705
11706         * doc/analyzer.texi (Analyzer Internals): Update link to
11707         "A Memory Model for Static Analysis of C Programs".
11708
11709 2021-03-26  David Edelsohn  <dje.gcc@gmail.com>
11710
11711         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
11712         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
11713         Declare.
11714         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
11715         (rs6000_special_round_type_align): Recursively check innermost first
11716         field.
11717
11718 2021-03-26  Jakub Jelinek  <jakub@redhat.com>
11719
11720         PR debug/99334
11721         * dwarf2out.h (struct dw_fde_node): Add rule18 member.
11722         * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
11723         assignment with drap_reg active, queue reg save for hfp with offset 0
11724         and flush queued reg saves.  When handling a push with rule18,
11725         defer queueing reg save for hfp and just assert the offset is 0.
11726         (scan_trace): Assert that fde->rule18 is false.
11727
11728 2021-03-26  Vladimir Makarov  <vmakarov@redhat.com>
11729
11730         PR target/99766
11731         * ira-costs.c (record_reg_classes): Put case with
11732         CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
11733         * ira.c (ira_setup_alts): Ditto.
11734         * lra-constraints.c (process_alt_operands): Ditto.
11735         * recog.c (asm_operand_ok): Ditto.
11736         * reload.c (find_reloads): Ditto.
11737
11738 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11739
11740         * config/aarch64/aarch64-protos.h
11741         (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
11742         (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
11743         * config/aarch64/aarch64.c (generic_addrcost_table): Update
11744         accordingly, using the same costs as for post_modify.
11745         (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
11746         (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
11747         (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
11748         (a64fx_addrcost_table): Likewise.
11749         (neoversev1_addrcost_table): New.
11750         (neoversev1_tunings): Use neoversev1_addrcost_table.
11751         (aarch64_address_cost): Use the new post_modify costs for CImode
11752         and XImode.
11753
11754 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11755
11756         * config/aarch64/aarch64.opt
11757         (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
11758         * doc/invoke.texi: Document it.
11759         * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
11760         (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
11761         (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
11762         (aarch64_vec_issue_info): New structures.
11763         (cpu_vector_cost): Write comments above the variables rather
11764         than to the side.
11765         (cpu_vector_cost::issue_info): New member variable.
11766         * config/aarch64/aarch64.c: Include gimple-pretty-print.h
11767         and tree-ssa-loop-niter.h.
11768         (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
11769         (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
11770         (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
11771         (thunderx3t110_vector_cost): Initialize issue_info to null.
11772         (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
11773         (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
11774         (neoversev1_vector_cost): Use them.
11775         (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
11776         (aarch64_vector_costs::saw_sve_only_op): New member variable.
11777         (aarch64_vector_costs::num_vector_iterations): Likewise.
11778         (aarch64_vector_costs::scalar_ops): Likewise.
11779         (aarch64_vector_costs::advsimd_ops): Likewise.
11780         (aarch64_vector_costs::sve_ops): Likewise.
11781         (aarch64_vector_costs::seen_loads): Likewise.
11782         (aarch64_simd_vec_costs_for_flags): New function.
11783         (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
11784         Count the number of predicate operations required by SVE WHILE
11785         instructions.
11786         (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
11787         (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
11788         (aarch64_count_ops): Likewise.
11789         (aarch64_add_stmt_cost): Record whether see an SVE operation
11790         that cannot currently be implementing using Advanced SIMD.
11791         Record issue information about the scalar, Advanced SIMD
11792         and (where relevant) SVE versions of a loop.
11793         (aarch64_vec_op_count::dump): New function.
11794         (aarch64_sve_op_count::dump): Likewise.
11795         (aarch64_estimate_min_cycles_per_iter): Likewise.
11796         (aarch64_adjust_body_cost): If issue information is available,
11797         try to compare the issue rates of the various loop implementations
11798         and increase or decrease the vector body cost accordingly.
11799
11800 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11801
11802         * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
11803         Assume a zero cost for induction phis.
11804
11805 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11806
11807         * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
11808         function.
11809         (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
11810         vector comparisons.
11811
11812 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11813
11814         * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
11815         New function.
11816         (aarch64_add_stmt_cost): Call it.
11817
11818 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11819
11820         * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
11821         New tuning parameter.
11822         * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
11823         (aarch64_estimated_sve_vq): New function.
11824         (aarch64_vector_costs::analyzed_vinfo): New member variable.
11825         (aarch64_vector_costs::is_loop): Likewise.
11826         (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
11827         (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
11828         (aarch64_record_potential_advsimd_unrolling): New function.
11829         (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
11830         (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
11831         aarch64_analyze_bb_vinfo on the first use of a costs structure.
11832         Detect whether we're vectorizing a loop for SVE that might be
11833         completely unrolled if it used Advanced SIMD instead.
11834         (aarch64_adjust_body_cost_for_latency): New function.
11835         (aarch64_finish_cost): Call it.
11836
11837 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11838
11839         * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
11840         (aarch64_init_cost): New function.
11841         (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
11842         the default unsigned[3].
11843         (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
11844         (TARGET_VECTORIZE_INIT_COST): Override.
11845         (TARGET_VECTORIZE_FINISH_COST): Likewise.
11846         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
11847
11848 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11849
11850         * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
11851         (neoversev1_sve_vector_cost): New cost structures.
11852         (neoversev1_vector_cost): Likewise.
11853         (neoversev1_tunings): Use them.  Enable use_new_vector_costs.
11854
11855 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11856
11857         * config/aarch64/aarch64-protos.h
11858         (sve_vec_cost::scatter_store_elt_cost): New member variable.
11859         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
11860         accordingly, taking the cost from the cost of a scalar_store.
11861         (a64fx_sve_vector_cost): Likewise.
11862         (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
11863
11864 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11865
11866         * config/aarch64/aarch64-protos.h
11867         (simd_vec_cost::store_elt_extra_cost): New member variable.
11868         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
11869         accordingly, using the vec_to_scalar cost for the new field.
11870         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
11871         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
11872         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
11873         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
11874         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
11875         (thunderx3t110_advsimd_vector_cost): Likewise.
11876         (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
11877
11878 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11879
11880         * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
11881         (simd_vec_cost::ld3_st3_permute_cost): New member variables.
11882         (simd_vec_cost::ld4_st4_permute_cost): Likewise.
11883         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
11884         accordingly, using zero for the new costs.
11885         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
11886         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
11887         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
11888         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
11889         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
11890         (thunderx3t110_advsimd_vector_cost): Likewise.
11891         (aarch64_ld234_st234_vectors): New function.
11892         (aarch64_adjust_stmt_cost): Likewise.
11893         (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
11894         the new vector costs.
11895
11896 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11897
11898         * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
11899         derived class of simd_vec_cost.  Add information about CLAST[AB]
11900         and FADDA instructions.
11901         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
11902         accordingly, using the vec_to_scalar costs for the new fields.
11903         (a64fx_sve_vector_cost): Likewise.
11904         (aarch64_reduc_type): New function.
11905         (aarch64_sve_in_loop_reduction_latency): Likewise.
11906         (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
11907         Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
11908         that occur in the loop body.
11909         (aarch64_add_stmt_cost): Update call accordingly.
11910
11911 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11912
11913         * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
11914         New tuning flag.
11915         * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
11916         above the fields rather than to the right.
11917         (simd_vec_cost::reduc_i8_cost): New member variable.
11918         (simd_vec_cost::reduc_i16_cost): Likewise.
11919         (simd_vec_cost::reduc_i32_cost): Likewise.
11920         (simd_vec_cost::reduc_i64_cost): Likewise.
11921         (simd_vec_cost::reduc_f16_cost): Likewise.
11922         (simd_vec_cost::reduc_f32_cost): Likewise.
11923         (simd_vec_cost::reduc_f64_cost): Likewise.
11924         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
11925         accordingly, using the vec_to_scalar_cost for the new fields.
11926         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
11927         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
11928         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
11929         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
11930         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
11931         (thunderx3t110_advsimd_vector_cost): Likewise.
11932         (aarch64_use_new_vector_costs_p): New function.
11933         (aarch64_simd_vec_costs): New function, split out from...
11934         (aarch64_builtin_vectorization_cost): ...here.
11935         (aarch64_is_reduction): New function.
11936         (aarch64_detect_vector_stmt_subtype): Likewise.
11937         (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
11938         using the new vector costs.
11939
11940 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11941
11942         PR ipa/99466
11943         * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
11944         TLS declarations as public.
11945
11946 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11947
11948         * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
11949         * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
11950         * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
11951         * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
11952         * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
11953         * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
11954         * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
11955         * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
11956         * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
11957
11958 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11959
11960         PR d/91595
11961         * config.gcc (*-*-cygwin*): Add winnt-d.o
11962         (*-*-mingw*): Likewise.
11963         * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
11964         * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
11965         * config/i386/t-cygming: Add winnt-d.o.
11966         * config/i386/winnt-d.c: New file.
11967
11968 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11969
11970         * config/freebsd-d.c: Include memmodel.h.
11971
11972 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11973
11974         PR d/99691
11975         * config.gcc (*-*-openbsd*): Add openbsd-d.o.
11976         * config/t-openbsd: Add openbsd-d.o.
11977         * config/openbsd-d.c: New file.
11978
11979 2021-03-25  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
11980
11981         PR tree-optimization/96974
11982         * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
11983         with graceful exit.
11984
11985 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
11986
11987         Revert:
11988         2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
11989
11990         PR target/98209
11991         PR target/99744
11992         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
11993         always_inline in system headers.
11994
11995 2021-03-25  Kewen Lin  <linkw@linux.ibm.com>
11996
11997         * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
11998
11999 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
12000
12001         PR c++/99565
12002         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
12003         * fold-const.c (operand_compare::operand_equal_p): Don't compare
12004         field offsets if OEP_ADDRESS_OF_SAME_FIELD.
12005
12006 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
12007
12008         PR target/98209
12009         PR target/99744
12010         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
12011         always_inline in system headers.
12012
12013 2021-03-25  Richard Biener  <rguenther@suse.de>
12014
12015         PR tree-optimization/99746
12016         * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
12017         the scalar stmt as patterned.  Instead set up required things
12018         manually.
12019
12020 2021-03-25  Xionghu Luo  <luoxhu@linux.ibm.com>
12021
12022         * config/rs6000/rs6000.c (power8_costs): Change l2 cache
12023         from 256 to 512.
12024
12025 2021-03-24  Martin Liska  <mliska@suse.cz>
12026
12027         PR target/99753
12028         * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
12029         error.
12030         * config/i386/i386-options.c (ix86_option_override_internal):
12031         Add run-time assert.
12032
12033 2021-03-24  Martin Jambor  <mjambor@suse.cz>
12034
12035         PR ipa/99122
12036         * ipa-cp.c (initialize_node_lattices): Mark as bottom all
12037         parameters with unknown type.
12038         (ipacp_value_safe_for_type): New function.
12039         (propagate_vals_across_arith_jfunc): Verify that the constant type
12040         can be used for a type of the formal parameter.
12041         (propagate_vals_across_ancestor): Likewise.
12042         (propagate_scalar_across_jump_function): Likewise.  Pass the type
12043         also to propagate_vals_across_ancestor.
12044
12045 2021-03-24  Christophe Lyon  <christophe.lyon@linaro.org>
12046
12047         PR target/99727
12048         * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
12049         constraint.
12050         (movmisalign<mode>_mve_load): Likewise.
12051
12052 2021-03-24  Jakub Jelinek  <jakub@redhat.com>
12053
12054         PR target/99724
12055         * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
12056         movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
12057
12058 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
12059
12060         * doc/sourcebuild.texi (sysconf): New effective target.
12061
12062 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
12063
12064         * config/i386/predicates.md (reg_or_const_vec_operand): New.
12065         * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
12066         the now *-prefixed insn_and_split, turn the splitter const vec
12067         into an input for the insn, making it an ignored immediate for
12068         non-split cases, and loaded into the scratch register
12069         otherwise.
12070
12071 2021-03-23  Vladimir N. Makarov  <vmakarov@redhat.com>
12072
12073         PR target/99581
12074         * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
12075         Use define_relaxed_memory_constraint for them.
12076
12077 2021-03-23  Iain Sandoe  <iain@sandoe.co.uk>
12078
12079         PR target/99733
12080         * config/host-darwin.c (darwin_gt_pch_use_address): Add a
12081         colon to the diagnostic message.
12082
12083 2021-03-23  Ilya Leoshkevich  <iii@linux.ibm.com>
12084
12085         * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
12086         set_info's uses.
12087         (try_fwprop_subst_note): Use set_info instead of insn_info.
12088         (try_fwprop_subst_pattern): Likewise.
12089         (try_fwprop_subst_notes): Likewise.
12090         (try_fwprop_subst): Likewise.
12091         (forward_propagate_subreg): Likewise.
12092         (forward_propagate_and_simplify): Likewise.
12093         (forward_propagate_into): Likewise.
12094         * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
12095         method.
12096         (set_info::single_nondebug_insn_use): Likewise.
12097         (set_info::single_phi_use): Likewise.
12098         * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
12099         method.
12100         (set_info::single_nondebug_insn_use): Likewise.
12101         (set_info::single_phi_use): Likewise.
12102
12103 2021-03-23  Christophe Lyon  <christophe.lyon@linaro.org>
12104
12105         * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
12106
12107 2021-03-23  Jakub Jelinek  <jakub@redhat.com>
12108
12109         PR target/99540
12110         * config/aarch64/aarch64.c (aarch64_add_offset): Tell
12111         expand_mult to perform an unsigned rather than a signed
12112         multiplication.
12113
12114 2021-03-23  H.J. Lu  <hjl.tools@gmail.com>
12115
12116         PR target/99704
12117         * config/i386/cpuid.h (__cpuid): Add __volatile__.
12118         (__cpuid_count): Likewise.
12119
12120 2021-03-23  Richard Biener  <rguenther@suse.de>
12121
12122         PR tree-optimization/99721
12123         * tree-vect-slp.c (vect_slp_analyze_node_operations):
12124         Make sure we can schedule the node.
12125
12126 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
12127
12128         * config/riscv/riscv.c (riscv_subword): Take endianness into
12129         account when calculating the byte offset.
12130
12131 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
12132
12133         * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
12134         * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
12135         (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
12136         (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
12137         (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
12138         new predicate "subreg_lowpart_operator"
12139
12140 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
12141
12142         * config/riscv/riscv.c (riscv_swap_instruction): New function
12143         to byteswap an SImode rtx containing an instruction.
12144         (riscv_trampoline_init): Byteswap the generated instructions
12145         when needed.
12146
12147 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
12148
12149         * common/config/riscv/riscv-common.c
12150         (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
12151         * config.gcc (riscv32be-*, riscv64be-*): Set
12152         TARGET_BIG_ENDIAN_DEFAULT to 1.
12153         * config/riscv/elf.h (LINK_SPEC): Change -melf* value
12154         depending on default endianness.
12155         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
12156         * config/riscv/linux.h (LINK_SPEC): Likewise.
12157         * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
12158         default endianness.
12159         * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
12160
12161 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
12162
12163         * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
12164         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
12165         * config/riscv/linux.h (LINK_SPEC): Likewise.
12166         * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
12167         -mlittle-endian.
12168         (BYTES_BIG_ENDIAN): Handle big endian.
12169         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
12170         * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
12171         options.
12172         * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
12173
12174 2021-03-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
12175
12176         * regcprop.c (find_oldest_value_reg): Ask target whether
12177           different mode is fine for replacement register.
12178
12179 2021-03-23  Aldy Hernandez  <aldyh@redhat.com>
12180
12181         PR tree-optimization/99296
12182         * value-range.cc (irange::irange_set_1bit_anti_range): New.
12183         (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
12184         * value-range.h (irange::irange_set_1bit_anti_range): New.
12185
12186 2021-03-22  Vladimir N. Makarov  <vmakarov@redhat.com>
12187
12188         PR target/99581
12189         * config/aarch64/constraints.md (UtQ): Use
12190         define_relaxed_memory_constraint for it.
12191         * doc/md.texi (define_relaxed_memory_constraint): Describe it.
12192         * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
12193         * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
12194         (have_relaxed_memory_constraints): New static var.
12195         (relaxed_memory_start, relaxed_memory_end): Ditto.
12196         (add_constraint): Add arg is_relaxed_memory.  Check name for
12197         relaxed memory.  Set up is_relaxed_memory in constraint_data and
12198         have_relaxed_memory_constraints.  Adjust calls.
12199         (choose_enum_order): Process relaxed memory.
12200         (write_tm_preds_h): Ditto.
12201         (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
12202         * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
12203         * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
12204         * ira-lives.c (single_reg_class): Use
12205         insn_extra_relaxed_memory_constraint.
12206         * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
12207         * lra-constraints.c (valid_address_p): Use
12208         insn_extra_relaxed_memory_constraint instead of other memory
12209         constraints.
12210         (process_alt_operands): Process CT_RELAXED_MEMORY.
12211         (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
12212         * recog.c (asm_operand_ok, preprocess_constraints): Process
12213         CT_RELAXED_MEMORY.
12214         * reload.c (find_reloads): Ditto.
12215         * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
12216         * stmt.c (parse_input_constraint): Use
12217         insn_extra_relaxed_memory_constraint.
12218
12219 2021-03-22  Segher Boessenkool  <segher@kernel.crashing.org>
12220
12221         PR target/97926
12222         * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
12223         there are no NaNs.
12224
12225 2021-03-22  Alex Coplan  <alex.coplan@arm.com>
12226
12227         PR target/97252
12228         * config/arm/arm-protos.h (neon_make_constant): Add generate
12229         argument to guard emitting insns, default to true.
12230         * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
12231         CONST_VECTORs which neon_make_constant can't handle.
12232         (neon_vdup_constant): Add generate argument, avoid emitting
12233         insns if it's not set.
12234         (neon_make_constant): Plumb new generate argument through.
12235         * config/arm/constraints.md (Ui): New. Use it...
12236         * config/arm/mve.md (*mve_mov<mode>): ... here.
12237         * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
12238         synthesize constants.
12239
12240 2021-03-22  Richard Biener  <rguenther@suse.de>
12241
12242         * debug.h: Add deprecation warning.
12243
12244 2021-03-22  Richard Biener  <rguenther@suse.de>
12245
12246         PR tree-optimization/99694
12247         * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
12248         PHI result.
12249
12250 2021-03-22  Kito Cheng  <kito.cheng@sifive.com>
12251
12252         PR target/99702
12253         * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
12254         after type checking.
12255
12256 2021-03-22  Jakub Jelinek  <jakub@redhat.com>
12257
12258         PR debug/99562
12259         PR debug/66728
12260         * dwarf2out.c (get_full_len): Use get_precision rather than
12261         min_precision.
12262         (add_const_value_attribute): Make sure add_AT_wide argument has
12263         precision prec rather than some very wide one.
12264
12265 2021-03-22  Kewen Lin  <linkw@linux.ibm.com>
12266
12267         * config/rs6000/rs6000.md (*rotldi3_insert_sf,
12268         *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
12269         floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
12270         floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
12271         *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
12272         fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
12273         *round32<mode>2_fprs, *roundu32<mode>2_fprs,
12274         *fix_trunc<mode>si2_internal): Fix empty split condition.
12275         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
12276         vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
12277         *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
12278         *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
12279
12280 2021-03-22  Xionghu Luo  <luoxhu@linux.ibm.com>
12281
12282         PR target/98914
12283         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
12284         Convert idx to DImode.
12285         (rs6000_expand_vector_set_var_p8): Likewise.
12286
12287 2021-03-21  Jakub Jelinek  <jakub@redhat.com>
12288
12289         PR debug/99388
12290         * dwarf2out.c (insert_float): Change return type from void to
12291         unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
12292         (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
12293         Adjust callers.
12294
12295 2021-03-20  H.J. Lu  <hjl.tools@gmail.com>
12296
12297         PR target/99679
12298         * config/i386/i386.c (construct_container): Check cfun != NULL
12299         before accessing silent_p.
12300
12301 2021-03-20  Ahamed Husni  <ahamedhusni73@gmail.com>
12302
12303         * asan.c: Fix typos in comments.
12304
12305 2021-03-20  Vladimir N. Makarov  <vmakarov@redhat.com>
12306
12307         PR rtl-optimization/99680
12308         * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
12309         (process_address_1): Check empty constraint before using
12310         CONSTRAINT_LEN.
12311
12312 2021-03-19  Pat Haugen  <pthaugen@linux.ibm.com>
12313
12314         * config/rs6000/rs6000.c (power10_cost): New.
12315         (rs6000_option_override_internal): Set Power10 costs.
12316         (rs6000_issue_rate): Set Power10 issue rate.
12317         * config/rs6000/power10.md: Rewrite for Power10.
12318
12319 2021-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
12320
12321         PR target/99663
12322         * lra-constraints.c (process_address_1): Don't use unknown
12323         constraint for address constraint.
12324
12325 2021-03-19  Iain Sandoe  <iain@sandoe.co.uk>
12326
12327         PR target/99661
12328         * config.gcc (powerpc-*-darwin8): Delete the reference to
12329         the now removed darwin8.h.
12330
12331 2021-03-19  Olivier Hainque  <hainque@adacore.com>
12332
12333         PR target/99660
12334         * config/vxworksae.h (VX_CPU_PREFIX): Define.
12335
12336 2021-03-19  John David Anglin  <danglin@gcc.gnu.org>
12337
12338         * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
12339
12340 2021-03-19  Tamar Christina  <tamar.christina@arm.com>
12341
12342         PR tree-optimization/99656
12343         * tree-vect-slp-patterns.c (linear_loads_p,
12344         complex_add_pattern::matches, is_eq_or_top,
12345         vect_validate_multiplication, complex_mul_pattern::matches,
12346         complex_fms_pattern::matches): Remove complex_perm_kinds_t.
12347         * tree-vectorizer.h: (complex_load_perm_t): Removed.
12348         (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
12349         complex_load_perm_t.
12350
12351 2021-03-19  H.J. Lu  <hjl.tools@gmail.com>
12352
12353         PR target/99652
12354         * config/i386/i386-options.c (ix86_init_machine_status): Set
12355         silent_p to true.
12356         * config/i386/i386.c (init_cumulative_args): Set silent_p to
12357         false.
12358         (construct_container): Return early for return and argument
12359         errors if silent_p is true.
12360         * config/i386/i386.h (machine_function): Add silent_p.
12361
12362 2021-03-19  Jakub Jelinek  <jakub@redhat.com>
12363
12364         PR target/99593
12365         * config/arm/constraints.md (Ds): New constraint.
12366         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
12367         constraint instead of w,Dm.
12368
12369 2021-03-19  Andrew Stubbs  <ams@codesourcery.com>
12370
12371         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
12372         in error message.
12373
12374 2021-03-19  Eric Botcazou  <ebotcazou@adacore.com>
12375
12376         PR middle-end/99641
12377         * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
12378         array type, do the computation of the current position in sizetype.
12379
12380 2021-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
12381
12382         PR target/99422
12383         * lra-constraints.c (process_address_1): Use lookup_constraint
12384         only for a single constraint.
12385
12386 2021-03-18  Martin Sebor  <msebor@redhat.com>
12387
12388         PR middle-end/99502
12389         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
12390         (inbounds_memaccess_p): ...to this.  Check the ending offset of
12391         the accessed member.
12392
12393 2021-03-18  Andrew Stubbs  <ams@codesourcery.com>
12394
12395         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
12396           %> quote markers to error messages.
12397         (gcn_goacc_validate_dims): Likewise.
12398         (gcn_conditional_register_usage): Remove exclaimation mark from error
12399         message.
12400         (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
12401
12402 2021-03-18  Jan Hubicka  <hubicka@ucw.cz>
12403
12404         * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
12405         integer divides1.
12406
12407 2021-03-18  Sinan Lin  <sinan@isrc.iscas.ac.cn>
12408             Kito Cheng  <kito.cheng@sifive.com>
12409
12410         * config/riscv/riscv.c (riscv_block_move_straight): Change type
12411         to unsigned HOST_WIDE_INT for parameter and local variable with
12412         HOST_WIDE_INT type.
12413         (riscv_adjust_block_mem): Ditto.
12414         (riscv_block_move_loop): Ditto.
12415         (riscv_expand_block_move): Ditto.
12416
12417 2021-03-18  Nick Clifton  <nickc@redhat.com>
12418
12419         * config/v850/v850.c (construct_restore_jr): Increase static
12420          buffer size.
12421         (construct_save_jarl): Likewise.
12422         * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
12423
12424 2021-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12425
12426         * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
12427         (aarch64_override_options_internal): Use it.
12428         (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
12429         tune_flags.
12430
12431 2021-03-17  Sandra Loosemore  <sandra@codesourcery.com>
12432
12433         * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
12434         error message format issues.
12435         (nios2_option_override): Likewise.
12436         (nios2_expand_fpu_builtin): Likewise.
12437         (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
12438         truncation warning.
12439         (nios2_expand_custom_builtin): More error message format fixes.
12440         (nios2_expand_rdwrctl_builtin): Likewise.
12441         (nios2_expand_rdprs_builtin): Likewise.
12442         (nios2_expand_eni_builtin): Likewise.
12443         (nios2_expand_builtin): Likewise.
12444         (nios2_register_custom_code): Likewise.
12445         (nios2_valid_target_attribute_rec): Likewise.
12446         (nios2_add_insn_asm): Fix uninitialized variable warning.
12447
12448 2021-03-17  Jan Hubicka  <jh@suse.cz>
12449
12450         * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
12451         of gather to match reality.
12452         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
12453
12454 2021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12455
12456         * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
12457         to compare against CC_REG rather than NE.
12458
12459 2021-03-17  H.J. Lu  <hjl.tools@gmail.com>
12460
12461         PR target/99504
12462         * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
12463         inline assembly statements.
12464         (ix86_print_operand): Update 'P' handling for -fno-plt.
12465
12466 2021-03-17  Tamar Christina  <tamar.christina@arm.com>
12467
12468         PR target/99542
12469         * config/aarch64/aarch64.c
12470         (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
12471
12472 2021-03-16  Segher Boessenkool  <segher@kernel.crashing.org>
12473
12474         PR target/98092
12475         * config/rs6000/predicates.md (branch_comparison_operator): Allow
12476         ordered and unordered for CCFPmode, if flag_finite_math_only.
12477
12478 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
12479
12480         PR target/99600
12481         * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
12482         rather than ASHIFT.
12483         * config/i386/i386.md (mult by 1248 into ashift): New splitter.
12484
12485 2021-03-16  Martin Liska  <mliska@suse.cz>
12486
12487         PR target/99592
12488         * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
12489         cl_optimization_compare function.
12490
12491 2021-03-16  Ilya Leoshkevich  <iii@linux.ibm.com>
12492
12493         * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
12494         as "v".
12495
12496 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
12497
12498         PR target/99563
12499         * config/i386/i386.h (struct machine_function): Add
12500         has_explicit_vzeroupper bitfield.
12501         * config/i386/i386-expand.c (ix86_expand_builtin): Set
12502         cfun->machine->has_explicit_vzeroupper when expanding
12503         IX86_BUILTIN_VZEROUPPER.
12504         * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
12505         Do the mode switching only when TARGET_VZEROUPPER, expensive
12506         optimizations turned on and not optimizing for size.
12507         (pass_insert_vzeroupper::gate): Enable even when
12508         cfun->machine->has_explicit_vzeroupper is set.
12509
12510 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
12511
12512         PR target/99542
12513         * config/aarch64/aarch64.c
12514         (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
12515         definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
12516         instead of DECL_ARGUMENTS.  Ignore types for uniform arguments.
12517
12518 2021-03-15  Richard Biener  <rguenther@suse.de>
12519
12520         PR tree-optimization/98834
12521         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
12522         subsetting by truncating the access size.
12523
12524 2021-03-15  Jan Hubicka  <hubicka@ucw.cz>
12525
12526         * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
12527         * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
12528         of znver2_cost.
12529
12530 2021-03-15  Martin Liska  <mliska@suse.cz>
12531
12532         * spellcheck.c: Add missing comma in initialization.
12533
12534 2021-03-14  Uroš Bizjak  <ubizjak@gmail.com>
12535
12536         * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
12537         alternative 2 and alternative 1 with alternative 3 using
12538         YW register constraint.
12539         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
12540         using YW register constraint.
12541         (*vec_extractv16qi_zext): Ditto.
12542         (*vec_extractv4si): Merge alternatives 4 and 5
12543         using Yw register constraint.
12544         (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
12545
12546 2021-03-13  Martin Sebor  <msebor@redhat.com>
12547
12548         PR tree-optimization/99489
12549         * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
12550         is not a call statement.
12551
12552 2021-03-13  Jakub Jelinek  <jakub@redhat.com>
12553
12554         PR tree-optimization/99544
12555         * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
12556         if for vector types multiplication can't be done in type's mode.
12557
12558 2021-03-12  Eric Botcazou  <ebotcazou@adacore.com>
12559
12560         PR target/99422
12561         * config/sparc/constraints.md (w): Rename to...
12562         (W): ... this and ditch previous implementation.
12563         * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
12564         (*movdf_insn_sp64): Likewise.
12565         (*mov<VM64:mode>_insn_sp64): Likewise.
12566         * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
12567         w with W.
12568         (atomic_compare_and_swap_leon3_1): Likewise.
12569         (*atomic_compare_and_swapdi_v8plus): Likewise.
12570         * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
12571         architecture and add missing address validity check during LRA.
12572
12573 2021-03-12  Tobias Burnus  <tobias@codesourcery.com>
12574
12575         PR fortran/98858
12576         * gimplify.c (omp_add_variable): Handle NULL_TREE as size
12577         occuring for assumed-size arrays in use_device_{ptr,addr}.
12578
12579 2021-03-12  Jakub Jelinek  <jakub@redhat.com>
12580
12581         PR target/99321
12582         * config/i386/constraints.md (YW): New internal constraint.
12583         * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
12584         (*<sse2_avx2>_<insn><mode>3<mask_name>,
12585         *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
12586         *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
12587         constraints.
12588         (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
12589         (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
12590         avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
12591         into one, use Yw instead of former x,v.
12592         (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
12593         the last alternative.
12594         (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
12595         <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
12596         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
12597         <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
12598         into one, use <v_Yw> instead of former x,v.
12599         (avx2_interleave_highv32qi<mask_name>,
12600         vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
12601         constraints.  Add && <mask_avx512bw_condition> to condition.
12602         (avx2_interleave_lowv32qi<mask_name>,
12603         vec_interleave_lowv16qi<mask_name>,
12604         avx2_interleave_highv16hi<mask_name>,
12605         vec_interleave_highv8hi<mask_name>,
12606         avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
12607         avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
12608         avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
12609         avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
12610         *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
12611         Yw instead of v in constraints.
12612         * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
12613         (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
12614         instead of Yv in constraints.
12615         (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
12616         *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
12617         *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
12618         mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
12619         *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
12620         constraints.
12621         (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
12622         *mmx_pextrb_zext): Use YW instead of Yv in constraints.
12623         (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
12624         (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
12625         two, one with just x, another isa avx512vl with v.
12626
12627 2021-03-12  Martin Liska  <mliska@suse.cz>
12628
12629         * doc/invoke.texi: Add missing param documentation.
12630
12631 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
12632
12633         PR analyzer/96374
12634         * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
12635         analyzer/trimmed-graph.o.
12636         * doc/analyzer.texi (Analyzer Paths): Rewrite description of
12637         feasibility checking to reflect new implementation.
12638         * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
12639         option.
12640         * shortest-paths.h (shortest_paths::get_shortest_distance): New.
12641
12642 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
12643
12644         * digraph.cc (selftest::test_shortest_paths): Update
12645         shortest_paths init for new param.  Add test of
12646         SPS_TO_GIVEN_TARGET.
12647         * shortest-paths.h (enum shortest_path_sense): New.
12648         (shortest_paths::shortest_paths): Add "sense" param.
12649         Update for renamings.  Generalize to use "sense" param.
12650         (shortest_paths::get_shortest_path): Rename param.
12651         (shortest_paths::m_sense): New field.
12652         (shortest_paths::m_prev): Rename...
12653         (shortest_paths::m_best_edge): ...to this.
12654         (shortest_paths::get_shortest_path): Update for renamings.
12655         Conditionalize flipping of path on sense of traversal.
12656
12657 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
12658
12659         * digraph.cc (selftest::test_shortest_paths): Add test coverage
12660         for paths from B and C.
12661         * shortest-paths.h (shortest_paths::shortest_paths): Handle
12662         unreachable nodes, rather than asserting.
12663
12664 2021-03-11  David Edelsohn  <dje.gcc@gmail.com>
12665
12666         PR target/99094
12667         * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
12668         xcoff_tbss_section_name.
12669         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
12670         * xcoffout.c (xcoff_tbss_section_name): Delete.
12671         * xcoffout.h (xcoff_tbss_section_name): Delete.
12672
12673 2021-03-11  Richard Biener  <rguenther@suse.de>
12674
12675         PR tree-optimization/99523
12676         * tree-cfg.c (dump_function_to_file): Dump SSA names
12677         w/o identifier to the decls section as well, not only those
12678         without a VAR_DECL.
12679
12680 2021-03-11  Jakub Jelinek  <jakub@redhat.com>
12681
12682         PR ipa/99517
12683         * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
12684         function calls with lhs fail if the lhs don't have compatible types.
12685
12686 2021-03-11  Hans-Peter Nilsson  <hp@axis.com>
12687
12688         * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
12689         Change FRAME_POINTER_REGNUM to correspond to a new faked
12690         register faked_fp, part of GENNONACR_REGS like faked_ap.
12691         (CRIS_FAKED_REGS_CONTENTS): New helper macro.
12692         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
12693         (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
12694         (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
12695         * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
12696         register.
12697         (CRIS_REAL_FP_REGNUM): New constant.
12698         * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
12699         for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
12700         (cris_initial_elimination_offset): Handle elimination changes
12701         to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
12702         and add one from FRAME_POINTER_REGNUM to
12703         HARD_FRAME_POINTER_REGNUM.
12704         (cris_expand_prologue, cris_expand_epilogue): Emit code for
12705         hard_frame_pointer_rtx instead of frame_pointer_rtx.
12706
12707 2021-03-10  David Edelsohn  <dje.gcc@gmail.com>
12708
12709         PR target/99492
12710         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
12711         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
12712
12713 2021-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
12714
12715         PR target/99422
12716         * lra-constraints.c (process_address_1): Don't check unknown
12717         constraint, use X for empty constraint.
12718
12719 2021-03-10  Alex Coplan  <alex.coplan@arm.com>
12720
12721         * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
12722         Fix typo in comment describing "is_ha" argument.
12723
12724 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
12725
12726         * doc/sourcebuild.texi: Document LRA target selector.
12727
12728 2021-03-10  David Malcolm  <dmalcolm@redhat.com>
12729
12730         * doc/ux.texi: Add subsection contrasting interactive versus
12731         batch usage of GCC.
12732
12733 2021-03-10  Joel Hutton  <joel.hutton@arm.com>
12734
12735         PR target/99102
12736         * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
12737         check condition.
12738         (vectorizable_load): Fix gather load mask check condition.
12739
12740 2021-03-10  Richard Biener  <rguenther@suse.de>
12741
12742         PR tree-optimization/99510
12743         * tree.c (check_aligned_type): Check that the candidate
12744         has TYPE_USER_ALIGN set instead of matching with the
12745         original type.
12746
12747 2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
12748
12749         * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
12750         float and vector integer modes only if the mode is not larger.
12751
12752 2021-03-10  Hans-Peter Nilsson  <hp@axis.com>
12753
12754         * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
12755
12756 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
12757
12758         * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
12759         constraints > 9.
12760         * ira-lives.c (single_reg_class): Ditto.
12761
12762 2021-03-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12763
12764         * config.gcc (aarch64-*-rtems*): Include general rtems.h after
12765         the architecture-specific rtems.h.
12766         (aarch64-*-rtems*): Likewise.
12767         (arm*-*-rtems*): Likewise.
12768         (epiphany-*-rtems*): Likewise.
12769         (riscv*-*-rtems*): Likewise.
12770
12771 2021-03-09  Jakub Jelinek  <jakub@redhat.com>
12772
12773         PR tree-optimization/99305
12774         * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
12775         before integer_all_onesp instead of vice versa.
12776
12777 2021-03-09  Richard Earnshaw  <rearnsha@arm.com>
12778
12779         * common/config/arm/arm-common.c (arm_config_default): Change type
12780         of 'i' to unsigned.
12781
12782 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
12783
12784         PR target/99454
12785         * lra-constraints.c (process_address_1): Process constraint 'g'
12786         separately and digital constraints containing more one digit.
12787
12788 2021-03-09  Nick Clifton  <nickc@redhat.com>
12789
12790         * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
12791         (DWARF"_DEBUGGING_INFO): Define.
12792
12793 2021-03-09  Eric Botcazou  <ebotcazou@adacore.com>
12794
12795         PR c++/90448
12796         * calls.c (initialize_argument_information): When the argument
12797         is passed by reference, do not make a copy in a thunk only if
12798         the argument is already in memory.  Remove redundant test for
12799         the case of callee copy.
12800
12801 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
12802
12803         PR target/99454
12804         * lra-constraints.c (process_address_1): Process 0..9 constraints
12805         in process_address_1.
12806
12807 2021-03-09  Andreas Krebbel  <krebbel@linux.ibm.com>
12808
12809         * config/s390/s390.c (struct s390_processor processor_table):
12810         Binutils name string must not be empty.
12811
12812 2021-03-09  Claudiu Zissulescu  <claziss@synopsys.com>
12813
12814         * config/arc/arc.c (arc_attr_type): Remove function.
12815
12816 2021-03-09  Martin Liska  <mliska@suse.cz>
12817
12818         PR target/99464
12819         * config/i386/i386-options.c (ix86_option_override_internal):
12820         Set isa_flags for OPTS argument and not for the global
12821         global_options.
12822
12823 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
12824
12825         * config/rs6000/predicates.md (ds_form_mem_operand): Check
12826         in correct code.
12827
12828 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
12829
12830         PR target/99070
12831         * config/rs6000/predicates.md (ds_form_mem_operand) New
12832         predicate.
12833         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
12834         ds_form_mem_operand in ld/lwa patterns.
12835         * config/rs6000/fusion.md: Regenerate file.
12836
12837 2021-03-08  Martin Sebor  <msebor@redhat.com>
12838
12839         PR middle-end/98266
12840         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
12841         (array_bounds_checker::check_array_bounds): Call it.
12842
12843 2021-03-08  Martin Sebor  <msebor@redhat.com>
12844
12845         PR middle-end/97631
12846         * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
12847         (handle_builtin_stxncpy_strncat): Rename locals.  Determine
12848         destination size from allocation calls.  Issue a more appropriate
12849         kind of warning.
12850         (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
12851         (handle_builtin_memset): Same.
12852
12853 2021-03-08  Peter Bergner  <bergner@linux.ibm.com>
12854
12855         PR target/98959
12856         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
12857         to ensure we do not have an Altivec style address.
12858         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
12859         an Altivec style address.
12860         (*vsx_le_perm_store_<mode>): Likewise.
12861         (splitters after *vsx_le_perm_store_<mode>): Likewise.
12862         (vsx_load_<mode>): Disable special expander if passed an Altivec
12863         style address.
12864         (vsx_store_<mode>): Likewise.
12865
12866 2021-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12867
12868         PR target/99437
12869         * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
12870         (aarch64_simd_shift_imm_vec_hi): Likewise.
12871         (aarch64_simd_shift_imm_vec_si): Likewise.
12872         (aarch64_simd_shift_imm_vec_di): Likewise.
12873         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
12874         predicate from above.
12875         (aarch64_shrn<mode>_insn_be): Likewise.
12876         (aarch64_rshrn<mode>_insn_le): Likewise.
12877         (aarch64_rshrn<mode>_insn_be): Likewise.
12878         (aarch64_shrn2<mode>_insn_le): Likewise.
12879         (aarch64_shrn2<mode>_insn_be): Likewise.
12880         (aarch64_rshrn2<mode>_insn_le): Likewise.
12881         (aarch64_rshrn2<mode>_insn_be): Likewise.
12882
12883 2021-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
12884
12885         PR target/99422
12886         * lra-constraints.c (skip_contraint_modifiers): New function.
12887         (process_address_1): Use it before lookup_constraint call.
12888
12889 2021-03-08  Martin Liska  <mliska@suse.cz>
12890
12891         PR target/99463
12892         * config/i386/i386-options.c (ix86_option_override_internal):
12893         Enable UINTR and HRESET for -march that supports it.
12894
12895 2021-03-08  Ilya Leoshkevich  <iii@linux.ibm.com>
12896
12897         * config/s390/s390.c (f_constraint_p): New function.
12898         (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
12899         (TARGET_MD_ASM_ADJUST): Likewise.
12900
12901 2021-03-08  Tobias Burnus  <tobias@codesourcery.com>
12902
12903         PR fortran/97927
12904         * tree-nested.c (convert_local_reference_stmt): Avoid calling
12905         lookup_field_for_decl for Fortran module (= namespace context).
12906
12907 2021-03-08  Andreas Krebbel  <krebbel@linux.ibm.com>
12908
12909         * config/s390/s390.c (s390_expand_vec_compare): Implement <0
12910         comparison with arithmetic right shift.
12911         (s390_expand_vcond): No need for a force_reg anymore.
12912         s390_vec_compare will do it.
12913         * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
12914         immediate operands.
12915
12916 2021-03-07  Jakub Jelinek  <jakub@redhat.com>
12917
12918         PR target/99321
12919         * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
12920         but TARGET_AVX512BW or TARGET_AVX512VL is not set.  Adjust description
12921         and comment.
12922         * config/i386/sse.md (v_Yw): New define_mode_attr.
12923         (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
12924         *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
12925         in constraints.
12926         * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
12927         xYw in constraints.
12928
12929 2021-03-06  Julian Brown  <julian@codesourcery.com>
12930
12931         * tree-pretty-print.c (dump_generic_node): Emit non-generic
12932         address space info for aggregates.
12933
12934 2021-03-06  Hans-Peter Nilsson  <hp@axis.com>
12935
12936         * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
12937
12938 2021-03-05  Jakub Jelinek  <jakub@redhat.com>
12939
12940         PR middle-end/99322
12941         * tree-cfg.c (bb_to_omp_idx): New variable.
12942         (execute_build_cfg): Release the bb_to_omp_idx vector after
12943         cleanup_tree_cfg returns.
12944         (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
12945         for bb_to_omp_idx being a vec<int> instead of pointer to array
12946         of ints.
12947         (make_edges): Remove bb_to_omp_idx local variable, don't pass
12948         it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
12949         vec<int> instead of pointer to array of ints and don't free/release
12950         it at the end.
12951         (remove_bb): When removing a bb and placing forced label somewhere
12952         else, ensure it is put into the same OpenMP region during cfg
12953         pass if possible or to entry successor as fallback.  Unregister
12954         bb from bb_to_omp_idx.
12955
12956 2021-03-05  Vladimir N. Makarov  <vmakarov@redhat.com>
12957
12958         PR target/99378
12959         * lra-constraints.c (process_address_1): Skip decomposing address
12960         for asm insn operand with unknown constraint.
12961
12962 2021-03-05  Martin Jambor  <mjambor@suse.cz>
12963
12964         PR ipa/98078
12965         * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
12966         corresponding speculative edges if we are about to resolve
12967         sepculation.  Make edge direct (and so resolve speculations) before
12968         removing it from call_site_hash.
12969         (cgraph_edge::make_direct): Relax the initial assert to allow calling
12970         the function on speculative direct edges.
12971
12972 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
12973
12974         PR rtl-optimization/99376
12975         * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
12976         of low-order zero bits is too large, set the result to 0 directly.
12977
12978 2021-03-04  Jakub Jelinek  <jakub@redhat.com>
12979
12980         PR middle-end/93235
12981         * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
12982         SUBREG and a SUBREG to op_mode can't be created.
12983
12984 2021-03-04  Alex Coplan  <alex.coplan@arm.com>
12985
12986         PR target/99381
12987         * config/aarch64/aarch64-sve-builtins.cc
12988         (function_resolver::require_vector_type): Handle error_mark_node.
12989
12990 2021-03-04  Ilya Leoshkevich  <iii@linux.ibm.com>
12991
12992         * cfgexpand.c (expand_asm_loc): Pass new parameter.
12993         (expand_asm_stmt): Likewise.
12994         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
12995         parameter.
12996         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
12997         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
12998         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
12999         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
13000         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
13001         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
13002         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
13003         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
13004         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
13005         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
13006         * doc/tm.texi (md_asm_adjust): Likewise.
13007         * target.def (md_asm_adjust): Likewise.
13008
13009 2021-03-04  Richard Biener  <rguenther@suse.de>
13010
13011         PR middle-end/97855
13012         * tree-pretty-print.c: Poison pp_printf.
13013         (dump_decl_name): Avoid use of pp_printf.
13014         (dump_block_node): Likewise.
13015         (dump_generic_node): Likewise.
13016
13017 2021-03-04  Martin Sebor  <msebor@redhat.com>
13018
13019         PR middle-end/96963
13020         PR middle-end/94655
13021         * builtins.c (handle_array_ref): New helper.
13022         (handle_mem_ref): New helper.
13023         (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
13024         into new helper functions.  Correct a workaround for vectorized
13025         assignments.
13026
13027 2021-03-03  Pat Haugen  <pthaugen@linux.ibm.com>
13028
13029         * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
13030         floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
13031         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
13032         *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
13033         attribute for Power10.
13034         * config/rs6000/mma.md (*movoo): Likewise.
13035         * config/rs6000/rs6000.md (define_attr "size"): Add 256.
13036         (define_mode_attr bits): Add DD/TD modes.
13037         * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
13038         store_conditionalpti): Update size attribute for Power10.
13039
13040 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13041
13042         PR bootstrap/92002
13043         * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
13044         -Wuninitialized, -Wmaybe-uninitialized.
13045         (wide-int.o-warn): Likewise.
13046
13047 2021-03-03  Richard Earnshaw  <rearnsha@arm.com>
13048
13049         * common/config/arm/arm-common.c: Include configargs.h.
13050         (arm_config_default): New function.
13051         (arm_target_mode): Renamed from arm_target_thumb_only.  Handle
13052         processors that do not support Thumb.  Take into account the
13053         --with-mode configuration setting for selecting the default.
13054         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
13055         (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
13056
13057 2021-03-03  Martin Liska  <mliska@suse.cz>
13058
13059         PR gcov-profile/97461
13060         * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
13061
13062 2021-03-03  Eric Botcazou  <ebotcazou@adacore.com>
13063
13064         PR target/99234
13065         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
13066         point back the hard frame pointer to its default location when the
13067         frame is larger than SEH_MAX_FRAME_SIZE.
13068
13069 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
13070
13071         PR target/99321
13072         * config/i386/predicates.md (logic_operator): New define_predicate.
13073         * config/i386/i386.md (mov + mem using comm arith peephole2):
13074         Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
13075         and the inner mode is [QH]Imode.
13076
13077 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
13078
13079         PR debug/99090
13080         * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
13081         (new_loc_list): Clear end_entry.
13082         (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
13083         if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx.  Fix comment
13084         typo.
13085         (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
13086         initialize also end_entry.
13087
13088 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
13089
13090         PR target/99085
13091         * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
13092         partitions, if in non-layout mode after reorder_blocks also move
13093         affected blocks to ensure a single partition transition.
13094
13095 2021-03-03  Jason Merrill  <jason@redhat.com>
13096
13097         PR c++/96078
13098         * cgraphunit.c (process_function_and_variable_attributes): Don't
13099         warn about flatten on an alias if the target also has it.
13100         * cgraph.h (symtab_node::get_alias_target_tree): New.
13101
13102 2021-03-02  David Edelsohn  <dje.gcc@gmail.com>
13103
13104         * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
13105         period to symbol name.
13106         (tls_get_addr_internal<mode>): Same.
13107
13108 2021-03-02  David Malcolm  <dmalcolm@redhat.com>
13109
13110         PR c/99323
13111         * diagnostic-show-locus.c
13112         (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
13113         column 0.
13114
13115 2021-03-02  Martin Sebor  <msebor@redhat.com>
13116
13117         PR middle-end/99276
13118         * builtins.c (warn_for_access): Remove stray warning text.
13119
13120 2021-03-02  Martin Sebor  <msebor@redhat.com>
13121
13122         PR middle-end/99295
13123         * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
13124         property.
13125
13126 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
13127
13128         PR debug/99319
13129         * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
13130         -gdwarf-5 -gstrict-dwarf.  For -gsplit-dwarf -gdwarf-5 use
13131         DW_MACRO_*_strx instead of DW_MACRO_*_strp.  Handle
13132         DW_MACRO_define_strx and DW_MACRO_undef_strx.
13133         (save_macinfo_strings): Use DW_MACRO_*_str* even with
13134         -gdwarf-5 -gstrict-dwarf.  Handle DW_MACRO_define_strx and
13135         DW_MACRO_undef_strx.
13136
13137 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
13138
13139         * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
13140         builtin signature.
13141         (BT_FN_V8HI_V8HI_UINT): Likewise.
13142         (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
13143         * config/s390/s390-builtins.def (B_NNPA): New macro definition.
13144         (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
13145         New builtin definitions.
13146         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
13147         vector extension version.
13148         * config/s390/s390.c (s390_expand_builtin): Check if builtins are
13149         available with current -march level.
13150         * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
13151         (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
13152         (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
13153         * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
13154         (vec_extend_to_fp32_lo): Likewise.
13155         (vec_round_from_fp32): Likewise.
13156         (vec_convert_to_fp16): Likewise.
13157         (vec_convert_from_fp16): Likewise.
13158         * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
13159         (vclfnls_v8hi): Likewise.
13160         (vcrnfs_v8hi): Likewise.
13161         (vcfn_v8hi): Likewise.
13162         (vcnf_v8hi): Likewise.
13163
13164 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
13165
13166         * common/config/s390/s390-common.c (processor_flags_table): New entry.
13167         * config.gcc: Enable arch14 for --with-arch and --with-tune.
13168         * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
13169         arch14 for unknown CPU models.
13170         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
13171         * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
13172         (s390_get_sched_attrmask): Likewise.
13173         (s390_get_unit_mask): Likewise.
13174         * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
13175         (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
13176         (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
13177         (TARGET_NNPA_P): New macro definitions.
13178         * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
13179         * config/s390/s390.opt: Add PROCESSOR_ARCH14.
13180
13181 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
13182
13183         PR middle-end/95757
13184         * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
13185         condition.  Call register_edge_assert_for_1 for == 0, != 0, == 1 and
13186         != 1 comparisons if name is lhs of a comparison.
13187
13188 2021-03-01  Iain Sandoe  <iain@sandoe.co.uk>
13189
13190         PR target/44107
13191         PR target/48097
13192         * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
13193         * config/darwin.c (darwin_should_restore_cfa_state): New.
13194         * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
13195         * doc/tm.texi: Regenerated.
13196         * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
13197         * dwarf2cfi.c (connect_traces): If the target requests, restore
13198         the CFA expression after a DW_CFA_restore.
13199         * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
13200
13201 2021-03-01  Martin Liska  <mliska@suse.cz>
13202
13203         PR target/99313
13204         * optc-save-gen.awk: Add 4 more exceptions.
13205
13206 2021-03-01  Nathan Sidwell  <nathan@acm.org>
13207
13208         PR c++/99294
13209         * tree.h (TYPE_ALIGN_RAW): New accessor.
13210         (TYPE_ALIGN): Use it.
13211
13212 2021-03-01  Jan Hubicka  <jh@suse.cz>
13213
13214         PR ipa/98338
13215         * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
13216
13217 2021-03-01  Eric Botcazou  <ebotcazou@adacore.com>
13218
13219         PR target/99234
13220         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
13221         point the hard frame pointer to the SSE register save area instead
13222         of the general register save area.  Perform only minimal adjustment
13223         for small frames if it is initially not correctly aligned.
13224         (ix86_expand_prologue): Remove early saves for a SEH target.
13225         * config/i386/winnt.c (struct seh_frame_state): Document constraint.
13226
13227 2021-02-28  Jakub Jelinek  <jakub@redhat.com>
13228
13229         PR c/99304
13230         * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
13231         typo - referneced -> referenced.
13232         * tree.c (component_ref_size): Fix comment typo -
13233         refernce -> reference.
13234         * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
13235         traling -> trailing.
13236         (aliasing_component_refs_p): Fix comment typos -
13237         refernce -> reference and refernece -> reference and
13238         traling -> trailing.
13239         (nonoverlapping_refs_since_match_p): Fix comment typo -
13240         referneces -> references.
13241         * doc/invoke.texi (--param modref-max-bases): Fix a typo -
13242         referneces -> references.
13243
13244 2021-02-27  Iain Sandoe  <iain@sandoe.co.uk>
13245
13246         * config/host-darwin.c (darwin_gt_pch_use_address): Modify
13247         diagnostic message to avoid use of a contraction and format
13248         warning.
13249
13250 2021-02-27  Jakub Jelinek  <jakub@redhat.com>
13251
13252         PR other/99288
13253         * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
13254         HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
13255         * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
13256         HOST_WIDE_INT_PRINT_DEC in inform format string.  Fix comment
13257         typos.
13258
13259 2021-02-26  Richard Biener  <rguenther@suse.de>
13260
13261         PR middle-end/99281
13262         * expr.c (store_field): For calls with return-slot optimization
13263         and addressable return type expand the store directly.
13264
13265 2021-02-26  Richard Biener  <rguenther@suse.de>
13266
13267         PR c/99275
13268         * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
13269
13270 2021-02-26  Peter Bergner  <bergner@linux.ibm.com>
13271
13272         PR target/99279
13273         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
13274         with an "if" test.
13275
13276 2021-02-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
13277
13278         * config.gcc: Add rs6000-pcrel-opt.o.
13279         * config/rs6000/rs6000-pcrel-opt.c: New file.
13280         * config/rs6000/pcrel-opt.md: New file.
13281         * config/rs6000/predicates.md: Add d_form_memory predicate.
13282         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
13283         * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
13284         * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
13285         pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
13286         and make_pass_pcrel_opt().
13287         * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
13288         (rs6000_option_override_internal): Add pcrel-opt.
13289         (rs6000_delegitimize_address): Support pcrel-opt.
13290         (rs6000_opt_masks): Add pcrel-opt.
13291         (pcrel_opt_valid_mem_p): New function.
13292         (reg_to_non_prefixed): Make global.
13293         (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
13294         (output_pcrel_opt_reloc): New function.
13295         * config/rs6000/rs6000.md (loads_extern_addr): New attr.
13296         (pcrel_extern_addr): Set loads_extern_addr.
13297         Add include for pcrel-opt.md.
13298         * config/rs6000/rs6000.opt: Add -mpcrel-opt.
13299         * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
13300         pcrel-opt.md.
13301
13302 2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
13303
13304         PR target/98996
13305         * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
13306         If TARGET_64BIT and dest is SUBREG, we check the width, if it
13307         equal to SImode, we use SImode operation, just like what we are
13308         doing for REG one.
13309
13310 2021-02-26  Marek Polacek  <polacek@redhat.com>
13311
13312         * builtins.c (warn_for_access): Fix typos.
13313
13314 2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
13315
13316         * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
13317         mark in front of the immediate quantity.
13318         (<optab>_rolsi3_uxtw): Likewise.
13319
13320 2021-02-25  Richard Earnshaw  <rearnsha@arm.com>
13321
13322         PR target/99271
13323         * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
13324         (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
13325         (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
13326         address and disable when the FPCXT is not available.
13327         (nonsecure_call_value_reg_thumb2): Likewise.
13328
13329 2021-02-25  Nathan Sidwell  <nathan@acm.org>
13330
13331         PR c++/99166
13332         * doc/invoke.texi (flang-info-module-cmi): Renamed option.
13333
13334 2021-02-25  Tamar Christina  <tamar.christina@arm.com>
13335
13336         * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
13337
13338 2021-02-25  Richard Biener  <rguenther@suse.de>
13339
13340         PR tree-optimization/99253
13341         * tree-vect-loop.c (check_reduction_path): First compute
13342         code, then verify out-of-loop uses.
13343
13344 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
13345
13346         PR target/95798
13347         * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
13348
13349 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
13350
13351         PR tree-optimization/80635
13352         * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
13353         VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
13354         has mode precision.
13355
13356 2021-02-25  Richard Biener  <rguenther@suse.de>
13357
13358         * tree-vect-slp.c (optimize_load_redistribution_1): Delay
13359         load_map population.
13360         (vect_match_slp_patterns_2): Revert part of last change.
13361         (vect_analyze_slp): Do not interleave optimize_load_redistribution
13362         with pattern detection but do it afterwards.  Dump the
13363         whole SLP graph after pattern recognition and load
13364         redistribution optimization finished.
13365
13366 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
13367
13368         PR fortran/99226
13369         * omp-low.c (struct omp_context): Add teams_nested_p and
13370         nonteams_nested_p members.
13371         (scan_omp_target): Diagnose teams nested inside of target with other
13372         directives strictly nested inside of the same target.
13373         (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
13374         ctx->nonteams_nested_p as needed.
13375
13376 2021-02-24  Vladimir N. Makarov  <vmakarov@redhat.com>
13377
13378         PR inline-asm/99123
13379         * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
13380
13381 2021-02-24  Hans-Peter Nilsson  <hp@axis.com>
13382
13383         * config/cris/cris.c (cris_expand_prologue): Set
13384         current_function_static_stack_size, if flag_stack_usage_info.
13385
13386 2021-02-24  Pat Haugen  <pthaugen@linux.ibm.com>
13387
13388         * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
13389         (rs6000_final_prescan_insn): Adjust.
13390         (rs6000_asm_output_opcode): Likewise.
13391
13392 2021-02-24  Martin Sebor  <msebor@redhat.com>
13393
13394         PR middle-end/97172
13395         * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
13396         from function arguments.
13397
13398 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
13399
13400         PR tree-optimization/99220
13401         * tree-vect-slp.c (optimize_load_redistribution_1): Remove
13402         node from cache when it's about to be deleted.
13403
13404 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
13405
13406         PR tree-optimization/99225
13407         * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
13408         to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
13409         build_int_cst (..., 1).  Formatting fixes.
13410
13411 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
13412
13413         PR tree-optimization/99149
13414         * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
13415         buffer.
13416         (vect_slp_reset_pattern): Remove.
13417         (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
13418         (complex_mul_pattern::build, complex_fma_pattern::build,
13419         complex_fms_pattern::build): Fix ref counts.
13420         * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
13421         when node is being deleted.
13422         (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
13423         (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
13424         stores.
13425         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
13426
13427 2021-02-24  Matthias Klose  <doko@ubuntu.com>
13428
13429         Revert:
13430         2020-12-07  Matthias Klose  <doko@ubuntu.com>
13431
13432         * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
13433         and ENABLE_RTL_FLAG_CHECKING.
13434
13435 2021-02-24  Richard Biener  <rguenther@suse.de>
13436
13437         PR c/99224
13438         * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
13439
13440 2021-02-23  Peter Bergner  <bergner@linux.ibm.com>
13441
13442         * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
13443         (vsx_assemble_pair): ...to this.
13444         (*mma_assemble_pair): Rename from this...
13445         (*vsx_assemble_pair): ...to this.
13446         (mma_disassemble_pair): Rename from this...
13447         (vsx_disassemble_pair): ...to this.
13448         (*mma_disassemble_pair): Rename from this...
13449         (*vsx_disassemble_pair): ...to this.
13450         * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
13451         BU_COMPAT): New macros.
13452         (mma_assemble_pair): Rename from this...
13453         (vsx_assemble_pair): ...to this.
13454         (mma_disassemble_pair): Rename from this...
13455         (vsx_disassemble_pair): ...to this.
13456         (mma_assemble_pair): New compatibility built-in.
13457         (mma_disassemble_pair): Likewise.
13458         * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
13459         (RS6000_BUILTIN_COMPAT): Define.
13460         (bdesc_compat): New.
13461         (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
13462         (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
13463         and VSX_BUILTIN_ASSEMBLE_PAIR.
13464         (rs6000_init_builtins): Register compatibility built-ins.
13465         (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
13466         VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
13467         VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
13468         * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
13469         (__builtin_vsx_assemble_pair): ...to this.
13470         (__builtin_mma_disassemble_pair): Rename from this...
13471         (__builtin_vsx_disassemble_pair): ...to this.
13472
13473 2021-02-23  Martin Liska  <mliska@suse.cz>
13474
13475         PR sanitizer/99168
13476         * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
13477         with different alignment. That leads to an invalid red zone
13478         size allocated in runtime.
13479
13480 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
13481
13482         PR tree-optimization/99204
13483         * fold-const.c (fold_read_from_constant_string): Check that
13484         tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
13485
13486 2021-02-23  Segher Boessenkool  <segher@kernel.crashing.org>
13487             Kewen Lin  <linkw@gcc.gnu.org>
13488
13489         * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
13490         (rotl<mode>3_insert_3): ...this.
13491         (plus_ior_xor): New code_iterator.
13492         (define_split for GPR rl*imi): New splitter.
13493         * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
13494         for integer merging.
13495
13496 2021-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13497
13498         * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
13499         Define.
13500         * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
13501         into a register when the above is enabled.
13502         * config/aarch64/aarch64.c (neoversev1_tunings):
13503         AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
13504         (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
13505
13506 2021-02-22  Hans-Peter Nilsson  <hp@axis.com>
13507
13508         * config/cris/cris.c (cris_print_operand) <'T'>: Change
13509         valid operand from is now an addi mult-value to shift-value.
13510         * config/cris/cris.md (*addi): Change expression of scaled
13511         operand from mult to ashift.
13512         * config/cris/cris.md (*addi_reload): New insn_and_split.
13513
13514 2021-02-22  John David Anglin  <danglin@gcc.gnu.org>
13515
13516         PR target/85074
13517         * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
13518         hook_bool_const_tree_hwi_hwi_const_tree_true.
13519         (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
13520
13521 2021-02-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
13522
13523         PR rtl-optimization/98791
13524         * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
13525         for unordered modes.
13526
13527 2021-02-22  Martin Liska  <mliska@suse.cz>
13528
13529         * tree-inline.c (inline_forbidden_p): Set
13530         inline_forbidden_reason.
13531
13532 2021-02-22  Richard Biener  <rguenther@suse.de>
13533
13534         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
13535         costed subgraph.
13536
13537 2021-02-22  Richard Biener  <rguenther@suse.de>
13538
13539         PR tree-optimization/99165
13540         * gimple-ssa-store-merging.c (pass_store_merging::process_store):
13541         Accumulate changed to ret.
13542
13543 2021-02-21  Uros Bizjak  <ubizjak@gmail.com>
13544
13545         Revert:
13546         2020-12-09  Uroš Bizjak  <ubizjak@gmail.com>
13547
13548         * config/i386/i386.h (REG_ALLOC_ORDER): Remove
13549
13550 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
13551
13552         PR target/99134
13553         * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
13554         pattern.
13555         (trunctf<DFP_ALL:mode>2): Likewise.
13556         (trunctdtf2_vr): Likewise.
13557         (trunctdtf2): Likewise.
13558         (extend<DFP_ALL:mode>tf2_vr): Likewise.
13559         (extend<DFP_ALL:mode>tf2): Likewise.
13560         (extendtftd2_vr): Likewise.
13561         (extendtftd2): Likewise.
13562
13563 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
13564
13565         * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
13566         add memory alternative.
13567         (tf_to_fprx2): New pattern.
13568
13569 2021-02-19  Martin Sebor  <msebor@redhat.com>
13570
13571         PR c/97172
13572         * attribs.c (init_attr_rdwr_indices): Guard vblist use.
13573         (attr_access::free_lang_data): Remove a spurious test.
13574
13575 2021-02-19  Nathan Sidwell  <nathan@acm.org>
13576
13577         * doc/invoke.texi (flang-info-module-read): Document.
13578
13579 2021-02-19  Martin Liska  <mliska@suse.cz>
13580
13581         PR translation/99167
13582         * params.opt: Fix typo.
13583
13584 2021-02-19  Richard Biener  <rguenther@suse.de>
13585
13586         PR middle-end/99122
13587         * tree-inline.c (inline_forbidden_p): Do not inline functions
13588         with VLA arguments or return value.
13589
13590 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
13591
13592         PR target/98998
13593         * config/arm/arm.md (*stack_protect_combined_set_insn,
13594         *stack_protect_combined_test_insn): If force_const_mem result
13595         is not valid general operand, force its address into the destination
13596         register first.
13597
13598 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
13599
13600         PR ipa/99034
13601         * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
13602         pad or non-local label, put FORCED_LABELs from bb b after that label
13603         rather than before it.
13604
13605 2021-02-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
13606
13607         PR target/98657
13608         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
13609         expand_vector_broadcast' to emit the vec_duplicate operand.
13610
13611 2021-02-18  Vladimir N. Makarov  <vmakarov@redhat.com>
13612
13613         PR rtl-optimization/96264
13614         * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
13615         hard regs.
13616
13617 2021-02-18  H.J. Lu  <hjl.tools@gmail.com>
13618
13619         PR target/99113
13620         * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
13621         looking up the retain attribute.
13622         (resolve_unique_section): Likewise.
13623         (get_variable_section): Likewise.
13624         (switch_to_section): Likewise.  Warn when a symbol without the
13625         retain attribute and a symbol with the retain attribute are
13626         placed in the section with the same name, instead of the used
13627         attribute.
13628         * doc/extend.texi: Document the "retain" attribute.
13629
13630 2021-02-18  Nathan Sidwell  <nathan@acm.org>
13631
13632         PR c++/99023
13633         * doc/invoke.texi (flang-info-include-translate): Document header
13634         lookup behaviour.
13635
13636 2021-02-18  Richard Biener  <rguenther@suse.de>
13637
13638         PR middle-end/99122
13639         * ipa-fnsummary.c (analyze_function_body): Set
13640         CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
13641         * tree-inline.c (insert_init_debug_bind): Pass NULL for
13642         error_mark_node values.
13643         (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
13644         values.
13645         (setup_one_parameter): Delay force_value_to_type until when
13646         it's needed.
13647
13648 2021-02-18  Hans-Peter Nilsson  <hp@axis.com>
13649
13650         PR tree-optimization/99142
13651         * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
13652
13653 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
13654
13655         * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
13656         wide_int_bitmask::wide_int_bitmask (uint64_t),
13657         wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
13658         wide_int_bitmask::operator ~ () const,
13659         wide_int_bitmask::operator | (wide_int_bitmask) const,
13660         wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
13661         instead of inline.
13662         * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
13663         PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
13664         PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
13665         PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
13666         PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
13667         PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
13668         PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
13669         PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
13670         PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
13671         PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
13672         PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
13673         PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
13674         PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
13675         PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
13676         PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
13677         PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
13678         PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
13679         PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
13680         PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
13681         PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
13682         PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
13683         PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
13684         PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
13685         PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
13686
13687 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
13688
13689         PR middle-end/99109
13690         * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
13691         (build_printable_array_type): ... this.  Add nelts argument.  For
13692         overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead.  If
13693         nelts, call build_array_type_nelts.
13694         (array_bounds_checker::check_mem_ref): Use build_printable_array_type
13695         instead of build_zero_elt_array_type and build_array_type_nelts.
13696
13697 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
13698
13699         PR target/99104
13700         * config/i386/i386.c (distance_non_agu_define): Don't call
13701         extract_insn_cached here.
13702         (ix86_lea_outperforms): Save and restore recog_data around call
13703         to distance_non_agu_define and distance_agu_use.
13704         (ix86_ok_to_clobber_flags): Remove.
13705         (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
13706         (ix86_avoid_lea_for_addr): Likewise.  Adjust function comment.
13707         * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
13708         into define_insn.  Move the splitting to define_peephole2 and
13709         check there using peep2_regno_dead_p if FLAGS_REG is dead.
13710
13711 2021-02-17  Julian Brown  <julian@codesourcery.com>
13712
13713         * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
13714         for non-decls.
13715
13716 2021-02-17  Xi Ruoyao  <xry111@mengyan1223.wang>
13717
13718         PR target/98491
13719         * config/mips/mips.c (mips_symbol_insns): Do not use
13720         MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
13721
13722 2021-02-16  Vladimir N. Makarov  <vmakarov@redhat.com>
13723
13724         PR inline-asm/98096
13725         * stmt.c (resolve_operand_name_1): Take inout operands into account
13726         for access to labels by names.
13727         * doc/extend.texi: Describe counting operands for accessing labels.
13728
13729 2021-02-16  Richard Biener  <rguenther@suse.de>
13730
13731         PR tree-optimization/38474
13732         * tree-ssa-structalias.c (variable_info::address_taken): New.
13733         (new_var_info): Initialize address_taken.
13734         (process_constraint): Set address_taken.
13735         (solve_constraints): Use the new address_taken flag rather
13736         than is_reg_var for sorting variables.
13737         (dump_constraint): Dump the variable number if the name
13738         is just NULL.
13739
13740 2021-02-16  Jakub Jelinek  <jakub@redhat.com>
13741
13742         PR target/99100
13743         * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
13744         multiply by 4096 and for inbranch by 8192.
13745         * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
13746         return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
13747
13748 2021-02-15  Maya Rashish  <coypu@sdf.org>
13749
13750         * config/aarch64/aarch64.c (aarch64_init_builtins):
13751         Call SUBTARGET_INIT_BUILTINS.
13752
13753 2021-02-15  Peter Bergner  <bergner@linux.ibm.com>
13754
13755         PR rtl-optimization/98872
13756         * init-regs.c (initialize_uninitialized_regs): Skip initialization
13757         if CONST0_RTX is NULL.
13758
13759 2021-02-15  Richard Sandiford  <richard.sandiford@arm.com>
13760
13761         PR rtl-optimization/98863
13762         * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
13763         (function_info::build_info): Turn into a declaration, moving the
13764         definition to internals.h.
13765         (function_info::bb_walker): Declare.
13766         (function_info::create_reg_use): Likewise.
13767         (function_info::calculate_potential_phi_regs): Take a build_info
13768         parameter.
13769         (function_info::place_phis, function_info::create_ebbs): Declare.
13770         (function_info::calculate_ebb_live_in_for_debug): Likewise.
13771         (function_info::populate_backedge_phis): Delete.
13772         (function_info::start_block, function_info::end_block): Declare.
13773         (function_info::populate_phi_inputs): Delete.
13774         (function_info::m_potential_phi_regs): Move information to build_info.
13775         * rtl-ssa/internals.h: New file.
13776         (function_info::bb_phi_info): New class.
13777         (function_info::build_info): Moved from functions.h.
13778         Add a constructor and destructor.
13779         (function_info::build_info::ebb_use): Delete.
13780         (function_info::build_info::ebb_def): Likewise.
13781         (function_info::build_info::bb_live_out): Likewise.
13782         (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
13783         (function_info::build_info::potential_phi_regs): Likewise.
13784         (function_info::build_info::potential_phi_regs_for_debug): Likewise.
13785         (function_info::build_info::ebb_def_regs): Likewise.
13786         (function_info::build_info::bb_phis): Likewise.
13787         (function_info::build_info::bb_mem_live_out): Likewise.
13788         (function_info::build_info::bb_to_rpo): Likewise.
13789         (function_info::build_info::def_stack): Likewise.
13790         (function_info::build_info::old_def_stack_limit): Likewise.
13791         * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
13792         Remove the regno argument.  Push the previous definition onto the
13793         definition stack where necessary.
13794         * rtl-ssa/accesses.cc: Include internals.h.
13795         * rtl-ssa/changes.cc: Likewise.
13796         * rtl-ssa/blocks.cc: Likewise.
13797         (function_info::build_info::build_info): Define.
13798         (function_info::build_info::~build_info): Likewise.
13799         (function_info::bb_walker): New class.
13800         (function_info::bb_walker::bb_walker): Define.
13801         (function_info::add_live_out_use): Convert a logarithmic-complexity
13802         test into a linear one.  Allow the same definition to be passed
13803         multiple times.
13804         (function_info::calculate_potential_phi_regs): Moved from
13805         functions.cc.  Take a build_info parameter and store the
13806         information there instead.
13807         (function_info::place_phis): New function.
13808         (function_info::add_entry_block_defs): Update call to record_reg_def.
13809         (function_info::calculate_ebb_live_in_for_debug): New function.
13810         (function_info::add_phi_nodes): Use bb_phis to decide which
13811         registers need phi nodes and initialize ebb_def_regs accordingly.
13812         Do not add degenerate phis here.
13813         (function_info::add_artificial_accesses): Use create_reg_use.
13814         Assert that all definitions are listed in the DF LR sets.
13815         Update call to record_reg_def.
13816         (function_info::record_block_live_out): Record live-out register
13817         values in the phis of successor blocks.  Use the live-out set
13818         when processing the last block in an EBB, instead of always
13819         using the live-in sets of successor blocks.  AND the live sets
13820         with the set of registers that have been defined in the EBB,
13821         rather than with all potential phi registers.  Cope correctly
13822         with branches back to the start of the current EBB.
13823         (function_info::start_block): New function.
13824         (function_info::end_block): Likewise.
13825         (function_info::populate_phi_inputs): Likewise.
13826         (function_info::create_ebbs): Likewise.
13827         (function_info::process_all_blocks): Rewrite into a multi-phase
13828         process.
13829         * rtl-ssa/functions.cc: Include internals.h.
13830         (function_info::calculate_potential_phi_regs): Move to blocks.cc.
13831         (function_info::init_function_data): Remove caller.
13832         * rtl-ssa/insns.cc: Include internals.h
13833         (function_info::create_reg_use): New function.  Lazily any
13834         degenerate phis needed by the linear RPO view.
13835         (function_info::record_use): Use create_reg_use.  When processing
13836         debug uses, use potential_phi_regs and test it before checking
13837         whether the register is live on entry to the current EBB.  Lazily
13838         calculate ebb_live_in_for_debug.
13839         (function_info::record_call_clobbers): Update call to record_reg_def.
13840         (function_info::record_def): Likewise.
13841
13842 2021-02-15  Martin Liska  <mliska@suse.cz>
13843
13844         * toplev.c (init_asm_output): Free output of
13845         gen_command_line_string function.
13846         (process_options): Likewise.
13847
13848 2021-02-15  Martin Liska  <mliska@suse.cz>
13849
13850         * params.opt: Add 2 missing Param keywords.
13851
13852 2021-02-15  Eric Botcazou  <ebotcazou@adacore.com>
13853
13854         * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
13855
13856 2021-02-15  Jakub Jelinek  <jakub@redhat.com>
13857
13858         PR tree-optimization/99079
13859         * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
13860         useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
13861         require both type and TREE_TYPE (@1) to be integral types and either
13862         type having smaller or equal precision, or TREE_TYPE (@1) being
13863         unsigned type, or type being signed type.  If TREE_TYPE (@1)
13864         doesn't have wrapping overflow, perform the subtraction of one in
13865         unsigned type.
13866
13867 2021-02-14  Jan Hubicka  <hubicka@ucw.cz>
13868             Richard Biener  <rguether@suse.de>
13869
13870         PR ipa/97346
13871         * ipa-reference.c (ipa_init): Only conditinally initialize
13872         reference_vars_to_consider.
13873         (propagate): Conditionally deninitialize reference_vars_to_consider.
13874         (ipa_reference_write_optimization_summary): Sanity check that
13875         reference_vars_to_consider is not allocated.
13876
13877 2021-02-13  Levy Hsu  <admin@levyhsu.com>
13878
13879         PR target/97417
13880         * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
13881         extend parameter to get_si_mem_base_reg declaration.
13882         (get_si_mem_base_reg): Add extend parameter.  Set it.
13883         (analyze): Pass extend arg to get_si_mem_base_reg.
13884         (transform): Likewise.  Use it when rewriting mems.
13885         * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
13886         loads and emit sign/zero extending load followed by subreg move.
13887
13888 2021-02-13  Jim Wilson  <jimw@sifive.com>
13889
13890         PR target/97417
13891         * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
13892         exit when !reload_completed.  Only perform check for compressed reg
13893         if reload_completed.
13894         (riscv_rtx_costs): In MEM case, when optimizing for size and
13895         shorten memrefs, if not compressible, then increase cost.
13896
13897 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
13898
13899         PR rtl-optimization/98439
13900         * recog.c (pass_split_before_regstack::gate): Enable even when
13901         pass_split_before_sched2 is enabled if -fselective-scheduling2 is
13902         on.
13903
13904 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
13905
13906         PR target/96166
13907         * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
13908         swap of V2SImode elements in memory into DImode memory rotate by 32.
13909
13910 2021-02-12  Martin Sebor  <msebor@redhat.com>
13911
13912         * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
13913
13914 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
13915
13916         * rtl-ssa/accesses.cc (function_info::make_use_available): Use
13917         m_temp_obstack rather than m_obstack to allocate the temporary use.
13918
13919 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
13920
13921         * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
13922         as read-modify operations.
13923
13924 2021-02-12  Richard Biener  <rguenther@suse.de>
13925
13926         PR middle-end/38474
13927         * ipa-fnsummary.c (unmodified_parm_1): Only walk when
13928         fbi->aa_walk_budget is bigger than zero.  Update
13929         fbi->aa_walk_budget.
13930         (param_change_prob): Likewise.
13931         * ipa-prop.c (detect_type_change_from_memory_writes):
13932         Properly account walk_aliased_vdefs.
13933         (parm_preserved_before_stmt_p): Canonicalize updates.
13934         (parm_ref_data_preserved_p): Likewise.
13935         (parm_ref_data_pass_through_p): Likewise.
13936         (determine_known_aggregate_parts): Account own alias queries.
13937
13938 2021-02-12  Martin Liska  <mliska@suse.cz>
13939
13940         * opts-common.c (decode_cmdline_option): Release werror_arg.
13941         * opts.c (gen_producer_string): Release output of
13942         gen_command_line_string.
13943
13944 2021-02-12  Richard Biener  <rguenther@suse.de>
13945
13946         PR tree-optimization/38474
13947         * params.opt (-param=max-store-chains-to-track=): New param.
13948         (-param=max-stores-to-track=): Likewise.
13949         * doc/invoke.texi (max-store-chains-to-track): Document.
13950         (max-stores-to-track): Likewise.
13951         * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
13952         New.
13953         (pass_store_merging::m_n_stores): Likewise.
13954         (pass_store_merging::terminate_and_process_chain): Update
13955         m_n_stores and m_n_chains.
13956         (pass_store_merging::process_store): Likewise.   Terminate
13957         oldest chains if the number of stores or chains get too large.
13958         (imm_store_chain_info::terminate_and_process_chain): Dump
13959         chain length.
13960
13961 2021-02-11  Eric Botcazou  <ebotcazou@adacore.com>
13962
13963         * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
13964         the cold section, emit a nop before the directive if the previous
13965         active instruction can throw.
13966
13967 2021-02-11  Peter Bergner  <bergner@linux.ibm.com>
13968
13969         PR target/99041
13970         * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
13971         memory addresses that are legal for quad word accesses.
13972
13973 2021-02-11  Andrea Corallo  <andrea.corallo@arm.com>
13974
13975         PR target/98931
13976         * config/arm/thumb2.md (*doloop_end_internal): Generate
13977         alternative sequence to handle long range branches.
13978
13979 2021-02-11  Joel Hutton  <joel.hutton@arm.com>
13980
13981         PR tree-optimization/98772
13982         * optabs-tree.c (supportable_half_widening_operation): New function
13983         to check for supportable V8QI->V8HI widening patterns.
13984         * optabs-tree.h (supportable_half_widening_operation): New function.
13985         * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
13986         to create promotion stmts for V8QI->V8HI widening patterns.
13987         (vectorizable_conversion): Add case for V8QI->V8HI.
13988
13989 2021-02-11  Richard Biener  <rguenther@suse.de>
13990
13991         * sparseset.h (SPARSESET_ELT_BITS): Remove.
13992         (SPARSESET_ELT_TYPE): Use unsigned int.
13993         * fwprop.c: Do not include sparseset.h.
13994
13995 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
13996
13997         PR c++/99035
13998         * varasm.c (declare_weak): For -fsyntax-only, allow even
13999         TREE_ASM_WRITTEN function decls.
14000
14001 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
14002
14003         PR target/99025
14004         * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
14005         <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
14006         <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
14007         <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
14008         calling simplify_gen_subreg on it.
14009
14010 2021-02-10  Martin Liska  <mliska@suse.cz>
14011
14012         * config/nvptx/nvptx.c (nvptx_option_override): Use
14013         flag_patchable_function_entry instead of the removed
14014         function_entry_patch_area_size.
14015
14016 2021-02-10  Martin Liska  <mliska@suse.cz>
14017
14018         PR tree-optimization/99002
14019         PR tree-optimization/99026
14020         * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
14021         leak when adjacent cases are merged.
14022         * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
14023         release_clusters.
14024         (make_pass_lower_switch): Remove trailing whitespace.
14025         * tree-switch-conversion.h (release_clusters): New.
14026
14027 2021-02-10  Richard Biener  <rguenther@suse.de>
14028
14029         PR rtl-optimization/99054
14030         * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
14031         (fixup_partitions): Adjust.
14032         (rtl_verify_edges): Likewise.
14033
14034 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
14035
14036         PR middle-end/99007
14037         * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
14038         temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
14039         calls.
14040
14041 2021-02-10  Richard Biener  <rguenther@suse.de>
14042
14043         PR ipa/99029
14044         * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
14045         for callees.
14046
14047 2021-02-10  Richard Biener  <rguenther@suse.de>
14048
14049         PR tree-optimization/99024
14050         * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
14051         clear loop->aux if it is associated with the destroyed loop_vinfo.
14052
14053 2021-02-10  Martin Liska  <mliska@suse.cz>
14054
14055         PR tree-optimization/99002
14056         * gimple-if-to-switch.cc (find_conditions): Fix memory leak
14057         in the function.
14058
14059 2021-02-10  Martin Liska  <mliska@suse.cz>
14060
14061         PR ipa/99003
14062         * ipa-icf.c (sem_item::add_reference): Fix memory leak when
14063         a reference exists.
14064
14065 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
14066
14067         PR debug/98755
14068         * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
14069         at class scope for DWARF5+.
14070
14071 2021-02-09  Eric Botcazou  <ebotcazou@adacore.com>
14072
14073         PR rtl-optimization/96015
14074         * reorg.c (skip_consecutive_labels): Minor comment tweaks.
14075         (relax_delay_slots): When deleting a jump to the next active
14076         instruction over a barrier, first delete the barrier if the
14077         jump is the only way to reach the target label.
14078
14079 2021-02-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
14080
14081         * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
14082         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
14083         vector multiplies and vect.alu for SSRA.
14084         * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
14085         vect.mul cost field.
14086         * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
14087         * config/arm/arm.c: Likewise.
14088
14089 2021-02-09  Richard Biener  <rguenther@suse.de>
14090
14091         PR tree-optimization/98863
14092         * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
14093         * tree-ssa-sccvn.c (last_pushed_avail): New global.
14094         (rpo_elim::eliminate_push_avail): Chain pushed avails.
14095         (unwind_state::avail_top): Add.
14096         (do_unwind): Rewrite unwinding of avail entries.
14097         (do_rpo_vn): Initialize last_pushed_avail and
14098         avail_top of the undo state.
14099
14100 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
14101
14102         PR middle-end/99004
14103         * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
14104         const char * to char * and free those pointers after use.
14105
14106 2021-02-09  Richard Biener  <rguenther@suse.de>
14107
14108         PR tree-optimization/99017
14109         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
14110         zero vector cost entries.
14111
14112 2021-02-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
14113
14114         PR middle-end/98974
14115         * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
14116         parameter in vectorizable_condition.
14117
14118 2021-02-08  Richard Biener  <rguenther@suse.de>
14119
14120         PR lto/96591
14121         * tree.c (walk_tree_1): Walk VECTOR_CST elements.
14122
14123 2021-02-08  Martin Liska  <mliska@suse.cz>
14124
14125         PR lto/98971
14126         * cfgexpand.c (pass_expand::execute): Parse per-function option
14127         flag_patchable_function_entry and use it.
14128         * common.opt: Remove function_entry_patch_area_size and
14129         function_entry_patch_area_start global variables.
14130         * opts.c (parse_and_check_patch_area): New function.
14131         (common_handle_option): Use it.
14132         * opts.h (parse_and_check_patch_area): New function.
14133         * toplev.c (process_options): Parse and use
14134         function_entry_patch_area_size.
14135
14136 2021-02-08  Martin Sebor  <msebor@redhat.com>
14137
14138         * doc/extend.texi (attribute malloc): Correct typos.
14139
14140 2021-02-05  Nathan Sidwell  <nathan@acm.org>
14141
14142         PR driver/98943
14143         * gcc.c (driver::maybe_run_linker): Check for input file
14144         accessibility if not linking.
14145
14146 2021-02-05  Richard Biener  <rguenther@suse.de>
14147
14148         PR tree-optimization/98855
14149         * tree-vectorizer.h (add_stmt_cost): New overload.
14150         * tree-vect-slp.c (li_cost_vec_cmp): New.
14151         (vect_bb_slp_scalar_cost): Cost individual loop regions
14152         separately.  Account for the scalar instance root stmt.
14153
14154 2021-02-05  Tom de Vries  <tdevries@suse.de>
14155
14156         PR debug/98656
14157         * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
14158         argument.
14159         (bit_test_cluster::emit): Reuse location_t for newly created
14160         gswitch statement.
14161         (switch_decision_tree::try_switch_expansion): Preserve
14162         location_t.
14163         * tree-switch-conversion.h: Change function signatures.
14164
14165 2021-02-05  Jakub Jelinek  <jakub@redhat.com>
14166
14167         PR target/98957
14168         * config/i386/i386-options.c (m_NONE, m_ALL): Define.
14169         * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
14170         X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
14171         (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
14172
14173 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14174
14175         * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
14176         * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
14177         * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
14178         (vget_high_f16): Reimplement using new builtin.
14179         (vget_high_f32): Likewise.
14180         (vget_high_f64): Likewise.
14181         (vget_high_p8): Likewise.
14182         (vget_high_p16): Likewise.
14183         (vget_high_p64): Likewise.
14184         (vget_high_s8): Likewise.
14185         (vget_high_s16): Likewise.
14186         (vget_high_s32): Likewise.
14187         (vget_high_s64): Likewise.
14188         (vget_high_u8): Likewise.
14189         (vget_high_u16): Likewise.
14190         (vget_high_u32): Likewise.
14191         (vget_high_u64): Likewise.
14192
14193 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14194
14195         * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
14196         * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
14197         * config/aarch64/arm_neon.h (__GET_LOW): Delete.
14198         (vget_low_f16): Reimplement using new builtin.
14199         (vget_low_f32): Likewise.
14200         (vget_low_f64): Likewise.
14201         (vget_low_p8): Likewise.
14202         (vget_low_p16): Likewise.
14203         (vget_low_p64): Likewise.
14204         (vget_low_s8): Likewise.
14205         (vget_low_s16): Likewise.
14206         (vget_low_s32): Likewise.
14207         (vget_low_s64): Likewise.
14208         (vget_low_u8): Likewise.
14209         (vget_low_u16): Likewise.
14210         (vget_low_u32): Likewise.
14211         (vget_low_u64): Likewise.
14212
14213 2021-02-05  Kito Cheng  <kito.cheng@sifive.com>
14214
14215         * gcc.c (print_multilib_info): Check all required argument is provided
14216         by default arg.
14217
14218 2021-02-05  liuhongt  <hongtao.liu@intel.com>
14219
14220         PR target/98537
14221         * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
14222         generate integer mask comparison for 128/256-bits vector when
14223         op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
14224         delete redundant !maskcmp condition.
14225         (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
14226         here.
14227         (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
14228         condition directly to if (maskcmp), add extra check for
14229         cmpmode, it should be MODE_INT.
14230         (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
14231         parameters op_true/op_false.
14232         (ix86_use_mask_cmp_p): New.
14233
14234 2021-02-05  liuhongt  <hongtao.liu@intel.com>
14235
14236         PR target/98172
14237         * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
14238         Remove m_GENERIC from ~list.
14239         (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
14240
14241 2021-02-04  David Malcolm  <dmalcolm@redhat.com>
14242
14243         PR c/97932
14244         * diagnostic-show-locus.c (compatible_locations_p): Require
14245         locations in the same macro map to be either both from the
14246         macro definition, or both from the macro arguments.
14247
14248 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
14249
14250         * config/aarch64/aarch64-simd-builtins.def: Add
14251         [su]mull_hi_lane[q] builtin generator macros.
14252         * config/aarch64/aarch64-simd.md
14253         (aarch64_<su>mull_hi_lane<mode>_insn): Define.
14254         (aarch64_<su>mull_hi_lane<mode>): Define.
14255         (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
14256         (aarch64_<su>mull_hi_laneq<mode>): Define.
14257         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
14258         builtin instead of inline asm.
14259         (vmull_high_lane_s32): Likewise.
14260         (vmull_high_lane_u16): Likewise.
14261         (vmull_high_lane_u32): Likewise.
14262         (vmull_high_laneq_s16): Likewise.
14263         (vmull_high_laneq_s32): Likewise.
14264         (vmull_high_laneq_u16): Likewise.
14265         (vmull_high_laneq_u32): Liekwise.
14266
14267 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
14268
14269         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
14270         builtin generator macros.
14271         * config/aarch64/aarch64-simd.md
14272         (aarch64_<su>mull_hi_n<mode>_insn): Define.
14273         (aarch64_<su>mull_hi_n<mode>): Define.
14274         * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
14275         instead of inline asm.
14276         (vmull_high_n_s32): Likewise.
14277         (vmull_high_n_u16): Likewise.
14278         (vmull_high_n_u32): Likewise.
14279
14280 2021-02-04  Richard Biener  <rguenther@suse.de>
14281
14282         PR tree-optimization/98855
14283         * tree-vect-loop.c (vectorizable_phi): Do not cost
14284         single-argument PHIs.
14285         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
14286         * tree-vect-stmts.c (vectorizable_bswap): Also perform
14287         costing for SLP operation.
14288
14289 2021-02-04  Martin Liska  <mliska@suse.cz>
14290
14291         * doc/extend.texi: Mention -mprefer-vector-width in target
14292         attributes.
14293
14294 2021-02-03  Martin Sebor  <msebor@redhat.com>
14295
14296         PR tree-optimization/98937
14297         * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
14298         Flush pointer_query cache.
14299
14300 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
14301
14302         * config/rs6000/genfusion.pl (gen_2logical): Add missing
14303         fixes based on patch review.
14304         * config/rs6000/fusion.md: Regenerate file.
14305
14306 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
14307
14308         * config/rs6000/t-rs6000: Comment out auto generation of
14309         fusion.md for now.
14310
14311 2021-02-03  Andrew Stubbs  <ams@codesourcery.com>
14312
14313         * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
14314         * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
14315         (output_file_start): Add gfx908.
14316         * config/gcn/gcn.opt (gpu_type): Add gfx908.
14317         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
14318         (MULTILIB_DIRNAMES): Add gfx908.
14319         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
14320         (main): Recognize gfx908.
14321         * config/gcn/t-omp-device: Add gfx908.
14322
14323 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
14324
14325         * config/aarch64/aarch64-simd-builtins.def: Add
14326         [su]mlsl_hi_lane[q] builtin macro generators.
14327         * config/aarch64/aarch64-simd.md
14328         (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
14329         (aarch64_<su>mlsl_hi_lane<mode>): Define.
14330         (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
14331         (aarch64_<su>mlsl_hi_laneq<mode>): Define.
14332         * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
14333         builtin instead of inline asm.
14334         (vmlsl_high_lane_s32): Likewise.
14335         (vmlsl_high_lane_u16): Likewise.
14336         (vmlsl_high_lane_u32): Likewise.
14337         (vmlsl_high_laneq_s16): Likewise.
14338         (vmlsl_high_laneq_s32): Likewise.
14339         (vmlsl_high_laneq_u16): Likewise.
14340         (vmlsl_high_laneq_u32): Likewise.
14341         (vmlal_high_laneq_u32): Likewise.
14342
14343 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
14344
14345         * config/aarch64/aarch64-simd-builtins.def: Add
14346         [su]mlal_hi_lane[q] builtin generator macros.
14347         * config/aarch64/aarch64-simd.md
14348         (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
14349         (aarch64_<su>mlal_hi_lane<mode>): Define.
14350         (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
14351         (aarch64_<su>mlal_hi_laneq<mode>): Define.
14352         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
14353         builtin instead of inline asm.
14354         (vmlal_high_lane_s32): Likewise.
14355         (vmlal_high_lane_u16): Likewise.
14356         (vmlal_high_lane_u32): Likewise.
14357         (vmlal_high_laneq_s16): Likewise.
14358         (vmlal_high_laneq_s32): Likewise.
14359         (vmlal_high_laneq_u16): Likewise.
14360         (vmlal_high_laneq_u32): Likewise.
14361
14362 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
14363
14364         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
14365         builtin generator macros.
14366         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
14367         Define.
14368         (aarch64_<su>mlsl_hi_n<mode>): Define.
14369         * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
14370         instead of inline asm.
14371         (vmlsl_high_n_s32): Likewise.
14372         (vmlsl_high_n_u16): Likewise.
14373         (vmlsl_high_n_u32): Likewise.
14374
14375 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
14376
14377         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
14378         builtin generator macros.
14379         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
14380         Define.
14381         (aarch64_<su>mlal_hi_n<mode>): Define.
14382         * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
14383         instead of inline asm.
14384         (vmlal_high_n_s32): Likewise.
14385         (vmlal_high_n_u16): Likewise.
14386         (vmlal_high_n_u32): Likewise.
14387
14388 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
14389
14390         * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
14391         generator macros.
14392         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
14393         Rename to...
14394         (aarch64_<su>mlal_hi<mode>_insn): This.
14395         (aarch64_<su>mlal_hi<mode>): Define.
14396         * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
14397         instead of inline asm.
14398         (vmlal_high_s16): Likewise.
14399         (vmlal_high_s32): Likewise.
14400         (vmlal_high_u8): Likewise.
14401         (vmlal_high_u16): Likewise.
14402         (vmlal_high_u32): Likewise.
14403
14404 2021-02-03  Ilya Leoshkevich  <iii@linux.ibm.com>
14405
14406         * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
14407         after calling alter_subreg() on a (mem).
14408
14409 2021-02-03  Martin Liska  <mliska@suse.cz>
14410
14411         PR lto/98912
14412         * lto-streamer-out.c (produce_lto_section): Fill up missing
14413         padding.
14414         * lto-streamer.h (struct lto_section): Add _padding field.
14415
14416 2021-02-03  Richard Biener  <rguenther@suse.de>
14417
14418         * lto-streamer.c (lto_get_section_name): Free temporary
14419         buffer.
14420         * tree-loop-distribution.c
14421         (loop_distribution::merge_dep_scc_partitions): Free edge data.
14422
14423 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
14424
14425         PR middle-end/97487
14426         * ifcvt.c (noce_can_force_operand): New function.
14427         (noce_emit_move_insn): Use it.
14428         (noce_try_sign_mask): Likewise.  Formatting fix.
14429
14430 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
14431
14432         PR middle-end/97971
14433         * lra-constraints.c (process_alt_operands): For inline asm, don't call
14434         fatal_insn, but instead return false.
14435
14436 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
14437
14438         PR tree-optimization/98287
14439         * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
14440         for V1DImode.
14441
14442 2021-02-03  Tamar Christina  <tamar.christina@arm.com>
14443
14444         PR tree-optimization/98928
14445         * tree-vect-loop.c (vect_analyze_loop_2): Change
14446         STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
14447         * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
14448         * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
14449         (class _stmt_vec_info): Add slp_vect_pattern_only_p.
14450
14451 2021-02-02  Richard Biener  <rguenther@suse.de>
14452
14453         * gimple-loop-interchange.cc (prepare_data_references):
14454         Release vectors.
14455         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
14456         * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
14457         * tree-vect-stmts.c (vectorizable_condition): Do not
14458         allocate vectors.
14459         (vectorizable_comparison): Likewise.
14460
14461 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14462
14463         * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
14464         * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
14465         * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
14466         (vrsqrteq_u32): Likewise.
14467
14468 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14469
14470         * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
14471         * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
14472         (aarch64_sqxtun2<mode>_be): Likewise.
14473         (aarch64_sqxtun2<mode>): Likewise.
14474         * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
14475         (vqmovun_high_s32): Likewise.
14476         (vqmovun_high_s64): Likewise.
14477         * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
14478
14479 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14480
14481         * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
14482         AUTO_FP flags.
14483         (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
14484
14485 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14486
14487         * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
14488         fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
14489         fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
14490         ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
14491         fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
14492         fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
14493         fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
14494         fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
14495
14496 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14497
14498         * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
14499         * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
14500         ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
14501
14502 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14503
14504         * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
14505         uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
14506
14507 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14508
14509         * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
14510         vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
14511         vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
14512         ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
14513         udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
14514         ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
14515         ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
14516         ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
14517         NONE builtin flags.
14518
14519 2021-02-02  Jakub Jelinek  <jakub@redhat.com>
14520
14521         PR tree-optimization/98848
14522         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
14523         STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
14524
14525 2021-02-02  Kito Cheng  <kito.cheng@sifive.com>
14526
14527         PR target/98743
14528         * expr.c: Check mode before calling store_expr.
14529
14530 2021-02-02  Christophe Lyon  <christophe.lyon@linaro.org>
14531
14532         * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
14533         (VORNQ): Remove.
14534         * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
14535         instruction using expression ior.
14536         (mve_vornq_u<mode>): New expander.
14537         (mve_vornq_f<mode>): Use ior code instead of unspec.
14538         * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
14539
14540 2021-02-02  Alexandre Oliva  <oliva@adacore.com>
14541
14542         * tree-nested.c (convert_nonlocal_reference_op): Move
14543         current_function_decl restore after re-gimplification.
14544         (convert_local_reference_op): Likewise.
14545
14546 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14547
14548         * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
14549         Define builtins.
14550         * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
14551         Define.
14552         (aarch64_rshrn<mode>_insn_be): Likewise.
14553         (aarch64_rshrn<mode>): Likewise.
14554         (aarch64_rshrn2<mode>_insn_le): Likewise.
14555         (aarch64_rshrn2<mode>_insn_be): Likewise.
14556         (aarch64_rshrn2<mode>): Likewise.
14557         * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
14558         * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
14559         using builtin.
14560         (vrshrn_high_n_s32): Likewise.
14561         (vrshrn_high_n_s64): Likewise.
14562         (vrshrn_high_n_u16): Likewise.
14563         (vrshrn_high_n_u32): Likewise.
14564         (vrshrn_high_n_u64): Likewise.
14565         (vrshrn_n_s16): Likewise.
14566         (vrshrn_n_s32): Likewise.
14567         (vrshrn_n_s64): Likewise.
14568         (vrshrn_n_u16): Likewise.
14569         (vrshrn_n_u32): Likewise.
14570         (vrshrn_n_u64): Likewise.
14571
14572 2021-02-01  Sergei Trofimovich  <siarheit@google.com>
14573
14574         PR tree-optimization/98499
14575         * ipa-modref.c (analyze_ssa_name_flags): treat RVO
14576         conservatively and assume all possible side-effects.
14577
14578 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14579
14580         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
14581         vec_unpacku_hi_): Define builtins.
14582         * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
14583         builtin.
14584         (vmovl_high_s16): Likewise.
14585         (vmovl_high_s32): Likewise.
14586         (vmovl_high_u8): Likewise.
14587         (vmovl_high_u16): Likewise.
14588         (vmovl_high_u32): Likewise.
14589
14590 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14591
14592         * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
14593         Define builtins.
14594         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
14595         pattern.
14596         * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
14597         UNSPEC_UABDL.
14598         * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
14599         builtin.
14600         (vabdl_s16): Likewise.
14601         (vabdl_s32): Likewise.
14602         (vabdl_u8): Likewise.
14603         (vabdl_u16): Likewise.
14604         (vabdl_u32): Likewise.
14605         * config/aarch64/iterators.md (ABDL): New int iterator.
14606         (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
14607
14608 2021-02-01  Martin Sebor  <msebor@redhat.com>
14609
14610         * tree.h (BLOCK_VARS): Add comment.
14611         (BLOCK_SUBBLOCKS): Same.
14612         (BLOCK_SUPERCONTEXT): Same.
14613         (BLOCK_ABSTRACT_ORIGIN): Same.
14614         (inlined_function_outer_scope_p): Same.
14615
14616 2021-02-01  Martin Sebor  <msebor@redhat.com>
14617
14618         PR middle-end/97172
14619         * attribs.c (attr_access::free_lang_data): Define new function.
14620         * attribs.h (attr_access::free_lang_data): Declare new function.
14621
14622 2021-02-01  Richard Biener  <rguenther@suse.de>
14623
14624         * vec.h (auto_vec::auto_vec): Add memory stat parameters
14625         and pass them on.
14626         * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
14627
14628 2021-02-01  Tamar Christina  <tamar.christina@arm.com>
14629
14630         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
14631         aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
14632
14633 2021-02-01  Richard Biener  <rguenther@suse.de>
14634
14635         PR rtl-optimization/98863
14636         * config/i386/i386-features.c (convert_scalars_to_vector):
14637         Set DF_RD_PRUNE_DEAD_DEFS.
14638
14639 2021-01-31  Eric Botcazou  <ebotcazou@adacore.com>
14640
14641         * system.h (SIZE_MAX): Define if not already defined.
14642
14643 2021-01-30  Aaron Sawdey  <acsawdey@linux.ibm.com>
14644
14645         * config/rs6000/genfusion.pl (gen_2logical): New function to
14646         generate patterns for logical-logical fusion.
14647         * config/rs6000/fusion.md: Regenerated patterns.
14648         * config/rs6000/rs6000-cpus.def: Add
14649         OPTION_MASK_P10_FUSION_2LOGICAL.
14650         * config/rs6000/rs6000.c (rs6000_option_override_internal):
14651         Enable logical-logical fusion for p10.
14652         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
14653
14654 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
14655
14656         * config/rs6000/rs6000.opt: Add periods to new AIX options.
14657
14658 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
14659
14660         * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
14661         (mabi=vec-default): New.
14662         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
14663         __EXTABI__ for AIX Vector extended ABI.
14664         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
14665         extabi info.
14666         (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
14667         are non-volatile.
14668         * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
14669
14670 2021-01-30  Jakub Jelinek  <jakub@redhat.com>
14671
14672         * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
14673         DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
14674
14675 2021-01-29  Vladimir N. Makarov  <vmakarov@redhat.com>
14676
14677         PR target/97701
14678         * lra-constraints.c (in_class_p): Don't narrow class only for REG
14679         or MEM.
14680
14681 2021-01-29  Will Schmidt  <will_schmidt@vnet.ibm.com>
14682
14683         * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
14684         clauses for CODE_FOR_vsx_xvcvuxddp_scale and
14685         CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
14686
14687 2021-01-29  Andrew MacLeod  <amacleod@redhat.com>
14688
14689         PR tree-optimization/98866
14690         * gimple-range-gori.h (gori_compute:set_range_invariant): New.
14691         * gimple-range-gori.cc (gori_map::set_range_invariant): New.
14692         (gori_map::m_maybe_invariant): Rename from all_outgoing.
14693         (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
14694         (gori_map::is_export_p): Ditto.
14695         (gori_map::calculate_gori): Ditto.
14696         (gori_compute::set_range_invariant): New.
14697         * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
14698         invariant for pointers evaluating to [1, +INF].
14699
14700 2021-01-29  Richard Biener  <rguenther@suse.de>
14701
14702         PR rtl-optimization/98863
14703         * config/i386/i386-features.c (remove_partial_avx_dependency):
14704         Do not perform DF analysis.
14705         (pass_data_remove_partial_avx_dependency): Remove
14706         TODO_df_finish.
14707
14708 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
14709
14710         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
14711         builtin generator macros.
14712         * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
14713         Define.
14714         * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
14715         instead of inline asm.
14716         (vmull_n_s32): Likewise.
14717         (vmull_n_u16): Likewise.
14718         (vmull_n_u32): Likewise.
14719
14720 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14721
14722         * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
14723         Define builtins.
14724         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
14725         Rename to...
14726         (aarch64_<sur>abdl2<mode>): ... This.
14727         (<sur>sadv16qi): Adjust use of above.
14728         * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
14729         builtin.
14730         (vabdl_high_s16): Likewise.
14731         (vabdl_high_s32): Likewise.
14732         (vabdl_high_u8): Likewise.
14733         (vabdl_high_u16): Likewise.
14734         (vabdl_high_u32): Likewise.
14735
14736 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14737
14738         * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
14739         builtin.
14740         (uabal2): Likewise.
14741         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
14742         pattern.
14743         * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
14744         UNSPEC_UABAL2.
14745         * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
14746         builtin.
14747         (vabal_high_s16): Likewise.
14748         (vabal_high_s32): Likewise.
14749         (vabal_high_u8): Likewise.
14750         (vabal_high_u16): Likewise.
14751         (vabal_high_u32): Likewise.
14752         * config/aarch64/iterators.md (ABAL2): New mode iterator.
14753         (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
14754
14755 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14756
14757         * config/aarch64/aarch64-simd-builtins.def (sabal): Define
14758         builtin.
14759         (uabal): Likewise.
14760         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
14761         Rename to...
14762         (aarch64_<sur>abal<mode>): ... This
14763         (<sur>sadv16qi): Adust use of the above.
14764         * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
14765         builtin.
14766         (vabal_s16): Likewise.
14767         (vabal_s32): Likewise.
14768         (vabal_u8): Likewise.
14769         (vabal_u16): Likewise.
14770         (vabal_u32): Likewise.
14771
14772 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14773
14774         * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
14775         Define builtins.
14776         * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
14777         Define.
14778         * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
14779         builtin.
14780         (vaddlv_s16): Likewise.
14781         (vaddlv_u8): Likewise.
14782         (vaddlv_u16): Likewise.
14783         (vaddlvq_s8): Likewise.
14784         (vaddlvq_s16): Likewise.
14785         (vaddlvq_s32): Likewise.
14786         (vaddlvq_u8): Likewise.
14787         (vaddlvq_u16): Likewise.
14788         (vaddlvq_u32): Likewise.
14789         (vaddlv_s32): Likewise.
14790         (vaddlv_u32): Likewise.
14791         * config/aarch64/iterators.md (VDQV_L): New mode iterator.
14792         (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
14793         (Vwstype): New mode attribute.
14794         (Vwsuf): Likewise.
14795         (VWIDE_S): Likewise.
14796         (USADDLV): New int iterator.
14797         (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
14798
14799 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
14800
14801         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
14802         builtin generator macros.
14803         * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
14804         Define.
14805         * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
14806         instead of inline asm.
14807         (vmlsl_lane_s32): Likewise.
14808         (vmlsl_lane_u16): Likewise.
14809         (vmlsl_lane_u32): Likewise.
14810         (vmlsl_laneq_s16): Likewise.
14811         (vmlsl_laneq_s32): Likewise.
14812         (vmlsl_laneq_u16): Likewise.
14813         (vmlsl_laneq_u32): Likewise.
14814
14815 2021-01-29  Richard Biener  <rguenther@suse.de>
14816
14817         * doc/invoke.texi (--param max-gcse-memory): Document unit
14818         of size.
14819         * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
14820         * params.opt (--param max-gcse-memory): Adjust default and
14821         document unit of size.
14822
14823 2021-01-29  Richard Biener  <rguenther@suse.de>
14824
14825         PR rtl-optimization/98863
14826         * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
14827         HOST_WIDE_INT for the memory estimate.
14828
14829 2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
14830             Richard Biener  <rguenther@suse.de>
14831
14832         PR tree-optimization/97627
14833         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
14834         Do not analyze fake edges.
14835
14836 2021-01-29  Richard Biener  <rguenther@suse.de>
14837
14838         PR rtl-optimization/98144
14839         * df.h (df_mir_bb_info): Add con_visited member.
14840         * df-problems.c (df_mir_alloc): Initialize con_visited,
14841         do not fully populate IN and OUT.
14842         (df_mir_reset): Likewise.
14843         (df_mir_confluence_0): Set con_visited.
14844         (df_mir_confluence_n): Properly handle implicitely
14845         fully populated IN and OUT as designated by con_visited
14846         and update con_visited accordingly.
14847
14848 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
14849
14850         PR target/98849
14851         * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
14852         vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
14853         && !TARGET_REALLY_IWMMXT to conditions.
14854
14855 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
14856
14857         PR debug/98331
14858         * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
14859         a BARRIER.
14860
14861 2021-01-28  Marek Polacek  <polacek@redhat.com>
14862
14863         PR c++/94775
14864         * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
14865         the main variant, maybe reset it in its variants too.
14866         * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
14867         (check_aligned_type): Check if TYPE_USER_ALIGN match.
14868
14869 2021-01-28  Christophe Lyon  <christophe.lyon@linaro.org>
14870
14871         PR target/98730
14872         * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
14873         of constant zero for comparisons.
14874
14875 2021-01-28  Michael Meissner  <meissner@linux.ibm.com>
14876
14877         * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
14878         support for mapping built-in function names for long double
14879         built-in functions if long double is IEEE 128-bit.
14880
14881 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
14882
14883         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
14884         builtin generator macros.
14885         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
14886         Define.
14887         * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
14888         instead of inline asm.
14889         (vmlsl_n_s32): Likewise.
14890         (vmlsl_n_u16): Likewise.
14891         (vmlsl_n_u32): Likewise.
14892
14893 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
14894
14895         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
14896         builtin generator macros.
14897         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
14898         Define.
14899         * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
14900         instead of inline asm.
14901         (vmlal_n_s32): Likewise.
14902         (vmlal_n_u16): Likewise.
14903         (vmlal_n_u32): Likewise.
14904
14905 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14906
14907         * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
14908         builtin.
14909         * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
14910         Define.
14911         (aarch64_shrn2<mode>_insn_be): Likewise.
14912         (aarch64_shrn2<mode>): Likewise.
14913         * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
14914         using builtins.
14915         (vshrn_high_n_s32): Likewise.
14916         (vshrn_high_n_s64): Likewise.
14917         (vshrn_high_n_u16): Likewise.
14918         (vshrn_high_n_u32): Likewise.
14919         (vshrn_high_n_u64): Likewise.
14920
14921 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14922
14923         * config/aarch64/aarch64-simd-builtins.def (shrn): Define
14924         builtin.
14925         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
14926         Define.
14927         (aarch64_shrn<mode>_insn_be): Likewise.
14928         (aarch64_shrn<mode>): Likewise.
14929         * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
14930         builtins.
14931         (vshrn_n_s32): Likewise.
14932         (vshrn_n_s64): Likewise.
14933         (vshrn_n_u16): Likewise.
14934         (vshrn_n_u32): Likewise.
14935         (vshrn_n_u64): Likewise.
14936         * config/aarch64/iterators.md (vn_mode): New mode attribute.
14937
14938 2021-01-28  Richard Biener  <rguenther@suse.de>
14939
14940         PR rtl-optimization/80960
14941         * dse.c (check_mem_read_rtx): Call get_addr on the
14942         offsetted address.
14943
14944 2021-01-28  Xionghu Luo  <luoxhu@linux.ibm.com>
14945             David Edelsohn  <dje.gcc@gmail.com>
14946
14947         PR target/98799
14948         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14949         Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
14950         when -m32.
14951         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
14952         Delete.
14953         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
14954         wrapper call rs6000_expand_vector_set_var for cleanup.  Call
14955         rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
14956         directly.
14957         (rs6000_expand_vector_set_var): Delete.
14958         (rs6000_expand_vector_set_var_p9): Make static.
14959         (rs6000_expand_vector_set_var_p8): Make static.
14960
14961 2021-01-28  Xing GUO  <higuoxing@gmail.com>
14962
14963         * common/config/riscv/riscv-common.c
14964         (riscv_subset_list::parsing_subset_version): Fix -march option parsing
14965         when `p` extension exists.
14966
14967 2021-01-27  Vladimir N. Makarov  <vmakarov@redhat.com>
14968
14969         PR rtl-optimization/97684
14970         * ira.c (ira): Call ira_set_pseudo_classes before
14971         update_equiv_regs when it is necessary.
14972
14973 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
14974
14975         PR target/98853
14976         * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
14977         %w0, %w1 and %2 instead of %0, %1 and %2.
14978
14979 2021-01-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
14980
14981         * config/rs6000/genfusion.pl: New script to generate
14982         define_insn_and_split patterns so combine can arrange fused
14983         instructions next to each other.
14984         * config/rs6000/fusion.md: New file, generated fused instruction
14985         patterns for combine.
14986         * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
14987         (non_update_memory_operand): New predicate.
14988         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
14989         OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
14990         POWERPC_MASKS.
14991         * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
14992         prototype.
14993         * config/rs6000/rs6000.c (rs6000_option_override_internal):
14994         Automatically set OPTION_MASK_P10_FUSION and
14995         OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
14996         (rs600_opt_masks): Allow -mpower10-fusion
14997         in function attributes.
14998         (address_is_non_pfx_d_or_x): New function.
14999         * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
15000         * config/rs6000/rs6000.md: Include fusion.md.
15001         * config/rs6000/rs6000.opt: Add -mpower10-fusion
15002         and -mpower10-fusion-ld-cmpi.
15003         * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
15004
15005 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
15006
15007         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
15008         builtin generator macros.
15009         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
15010         Rename to...
15011         (aarch64_<su>mlal<mode>): This.
15012         * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
15013         instead of inline asm.
15014         (vmlal_s16): Likewise.
15015         (vmlal_s32): Likewise.
15016         (vmlal_u8): Likewise.
15017         (vmlal_u16): Likewise.
15018         (vmlal_u32): Likewise.
15019
15020 2021-01-27  Richard Biener  <rguenther@suse.de>
15021
15022         PR tree-optimization/98854
15023         * tree-vect-slp.c (vect_build_slp_tree_2): Also build
15024         PHIs from scalars when the number of CTORs matches the
15025         number of children.
15026
15027 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
15028
15029         * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
15030         generator macro.
15031         * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
15032         Rename to...
15033         (aarch64_mls_n<mode>): This.
15034         * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
15035         instead of asm.
15036         (vmls_n_s32): Likewise.
15037         (vmls_n_u16): Likewise.
15038         (vmls_n_u32): Likewise.
15039         (vmlsq_n_s16): Likewise.
15040         (vmlsq_n_s32): Likewise.
15041         (vmlsq_n_u16): Likewise.
15042         (vmlsq_n_u32): Likewise.
15043
15044 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
15045
15046         * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
15047         generator macro.
15048         * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
15049         than asm.
15050         (vmls_s16): Likewise.
15051         (vmls_s32): Likewise.
15052         (vmls_u8): Likewise.
15053         (vmls_u16): Likewise.
15054         (vmls_u32): Likewise.
15055         (vmlsq_s8): Likewise.
15056         (vmlsq_s16): Likewise.
15057         (vmlsq_s32): Likewise.
15058         (vmlsq_u8): Likewise.
15059         (vmlsq_u16): Likewise.
15060         (vmlsq_u32): Likewise.
15061
15062 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
15063
15064         * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
15065         generator macro.
15066         * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
15067         Rename to...
15068         (aarch64_mla_n<mode>): This.
15069         * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
15070         instead of asm.
15071         (vmla_n_s32): Likewise.
15072         (vmla_n_u16): Likewise.
15073         (vmla_n_u32): Likewise.
15074         (vmlaq_n_s16): Likewise.
15075         (vmlaq_n_s32): Likewise.
15076         (vmlaq_n_u16): Likewise.
15077         (vmlaq_n_u32): Likewise.
15078
15079 2021-01-27  liuhongt  <hongtao.liu@intel.com>
15080
15081         PR target/98833
15082         * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
15083         (*sse2_eq<mode>3): Ditto.
15084
15085 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
15086
15087         * tree-pass.h (PROP_trees): Rename to ...
15088         (PROP_gimple): ... this.
15089         * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
15090         * passes.c (execute_function_dump, execute_function_todo,
15091         execute_one_ipa_transform_pass, execute_one_pass): Likewise.
15092         * varpool.c (ctor_for_folding): Likewise.
15093
15094 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
15095
15096         PR tree-optimization/97260
15097         * varpool.c: Include tree-pass.h.
15098         (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
15099         non-TREE_SIDE_EFFECTS automatic variables.
15100
15101 2021-01-26  Paul Fee  <paul.f.fee@gmail.com>
15102
15103         * doc/cpp.texi (__cplusplus): Document value for -std=c++23
15104         or -std=gnu++23.
15105         * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
15106         * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
15107         (gen_compile_unit_die): Recognise C++23.
15108
15109 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
15110
15111         PR bootstrap/98839
15112         * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
15113         in comparison.
15114
15115 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
15116
15117         PR target/98681
15118         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
15119         Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
15120         and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.
15121
15122 2021-01-26  Richard Biener  <rguenther@suse.de>
15123
15124         * gimple-pretty-print.c (dump_binary_rhs): Handle
15125         VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
15126
15127 2021-01-26  Richard Biener  <rguenther@suse.de>
15128
15129         PR middle-end/98726
15130         * tree.h (vector_cst_int_elt): Remove.
15131         * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
15132         make static.
15133
15134 2021-01-26  Andrew Stubbs  <ams@codesourcery.com>
15135
15136         * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
15137         for V64DFmode min/max reductions.
15138
15139 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
15140
15141         * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
15142         as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
15143         two halves, one with x and the other with const0_rtx, ordered
15144         depending on endianity.
15145
15146 2021-01-26  Alexandre Oliva  <oliva@adacore.com>
15147
15148         * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
15149         temporaries not seen in binding block, and not about to be
15150         added as gimple variables.
15151
15152 2021-01-25  Martin Sebor  <msebor@redhat.com>
15153
15154         PR c++/98646
15155         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
15156
15157 2021-01-25  Martin Liska  <mliska@suse.cz>
15158
15159         * value-prof.c (get_nth_most_common_value): Use %s instead
15160         of %qs string.
15161
15162 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
15163
15164         PR debug/98811
15165         * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
15166         readelf -wi is able to read the emitted .debug_info back.
15167         * configure: Regenerated.
15168
15169 2021-01-25  Martin Liska  <mliska@suse.cz>
15170
15171         PR gcov-profile/98739
15172         * common.opt: Add missing sign symbol.
15173         * value-prof.c (get_nth_most_common_value): Restore handling
15174         of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
15175         PROFILE_REPRODUCIBILITY_MULTITHREADED.
15176
15177 2021-01-25  Richard Biener  <rguenther@suse.de>
15178
15179         PR middle-end/98807
15180         * tree.c (vector_element_bits): Always use precision of
15181         the element type for boolean vectors.
15182
15183 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15184
15185         * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
15186         (ENDFILE_SPEC): Evaluate qnolinkcmds.
15187
15188 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15189
15190         * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
15191         nostartfiles handling since this is already done by
15192         LINK_COMMAND_SPEC.  Evaluate qnolinkcmds.
15193         (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
15194         is already done by LINK_COMMAND_SPEC.
15195         (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
15196         this is already done by LINK_COMMAND_SPEC.  Remove qnolinkcmds
15197         evaluation.
15198
15199 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
15200
15201         PR testsuite/98771
15202         * fold-const-call.c (host_size_t_cst_p): Renamed to ...
15203         (size_t_cst_p): ... this.  Check and store unsigned HOST_WIDE_INT
15204         value rather than host size_t.
15205         (fold_const_call): Change type of s2 from size_t to
15206         unsigned HOST_WIDE_INT.  Use size_t_cst_p instead of
15207         host_size_t_cst_p.  For strncmp calls, pass MIN (s2, SIZE_MAX)
15208         instead of s2 as last argument.
15209
15210 2021-01-25  Tamar Christina  <tamar.christina@arm.com>
15211
15212         * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
15213         VCMLA_OP, VCMUL_OP): New.
15214         * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
15215         * config/arm/neon.md (cmul<conj_op><mode>3): New.
15216         * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
15217         UNSPEC_VCMUL_CONJ): New.
15218         * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
15219         cml<fcmac1><conj_op><mode>4): New.
15220
15221 2021-01-23  Jakub Jelinek  <jakub@redhat.com>
15222
15223         PR testsuite/97301
15224         * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
15225
15226 2021-01-22  Jonathan Wright  <jonathan.wright@arm.com>
15227
15228         * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
15229         generator macro.
15230         * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
15231         than asm.
15232         (vmla_s16): Likewise.
15233         (vmla_s32): Likewise.
15234         (vmla_u8): Likewise.
15235         (vmla_u16): Likewise.
15236         (vmla_u32): Likewise.
15237         (vmlaq_s8): Likewise.
15238         (vmlaq_s16): Likewise.
15239         (vmlaq_s32): Likewise.
15240         (vmlaq_u8): Likewise.
15241         (vmlaq_u16): Likewise.
15242         (vmlaq_u32): Likewise.
15243
15244 2021-01-22  David Malcolm  <dmalcolm@redhat.com>
15245
15246         * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
15247         directive.
15248
15249 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
15250
15251         PR debug/98796
15252         * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
15253         filenames to emit, still emit the required 0 index directory and
15254         filename entries that match DW_AT_comp_dir and DW_AT_name of the
15255         compilation unit.
15256
15257 2021-01-22  Marek Polacek  <polacek@redhat.com>
15258
15259         PR c++/98545
15260         * doc/invoke.texi: Update C++ ABI Version 15 description.
15261
15262 2021-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15263
15264         PR tree-optimization/98766
15265         * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
15266         comparing against type size with param_avoid_fma_max_bits.
15267
15268 2021-01-22  Richard Biener  <rguenther@suse.de>
15269
15270         PR middle-end/98793
15271         * tree.c (vector_element_bits): Key single-bit bool vector on
15272         integer mode rather than not vector mode.
15273
15274 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
15275
15276         PR target/98093
15277         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15278         Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
15279         platforms.
15280         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
15281         to call different path for P8 and P9.
15282         (rs6000_expand_vector_set_var_p9): New function.
15283         (rs6000_expand_vector_set_var_p8): New function.
15284
15285 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
15286
15287         PR target/79251
15288         PR target/98065
15289         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15290         Ajdust variable index vec_insert from address dereference to
15291         ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
15292         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
15293         New declaration.
15294         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
15295
15296 2021-01-22  Martin Liska  <mliska@suse.cz>
15297
15298         PR gcov-profile/98739
15299         * profile.c (compute_value_histograms): Drop time profile for
15300         -fprofile-reproducible=multithreaded.
15301
15302 2021-01-22  Nathan Sidwell  <nathan@acm.org>
15303
15304         * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
15305         existence here.
15306
15307 2021-01-22  Richard Biener  <rguenther@suse.de>
15308
15309         PR middle-end/98773
15310         * tree-data-ref.c (initalize_matrix_A): Revert previous
15311         change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
15312
15313 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
15314
15315         PR tree-optimization/90248
15316         * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
15317         X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
15318         simplifications.
15319         (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
15320         X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
15321
15322 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
15323
15324         PR tree-optimization/98255
15325         * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
15326         extend index - low_bound from sizetype's precision rather than index
15327         precision.
15328         (get_addr_base_and_unit_offset_1): Likewise.
15329         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
15330         * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
15331
15332 2021-01-22  Richard Biener  <rguenther@suse.de>
15333
15334         PR tree-optimization/98786
15335         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
15336         adding new uses of abnormals.  Verify we deal with a conditional
15337         conversion.
15338
15339 2021-01-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
15340
15341         PR target/98636
15342         * optc-save-gen.awk: Add arm_fp16_format to checked_options.
15343
15344 2021-01-22  liuhongt  <hongtao.liu@intel.com>
15345
15346         PR target/96891
15347         PR target/98348
15348         * config/i386/sse.md (VI_128_256): New mode iterator.
15349         (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
15350          *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
15351          *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
15352         define_insn_and_split to lower avx512 vector comparison to avx
15353         version when dest is vector.
15354         (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
15355         define_insn_and_split for negating the comparison result.
15356         * config/i386/predicates.md (float_vector_all_ones_operand):
15357         New predicate.
15358         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
15359         general NOT operator without UNSPEC_MASKOP.
15360
15361 2021-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
15362
15363         PR rtl-optimization/98777
15364         * lra-int.h (lra_pmode_pseudo): New extern.
15365         * lra.c (lra_pmode_pseudo): New global.
15366         (lra): Set it up.
15367         * lra-eliminations.c (eliminate_regs_in_insn): Use it.
15368
15369 2021-01-21  Ilya Leoshkevich  <iii@linux.ibm.com>
15370
15371         * fwprop.c (fwprop_propagation::classify_result): Allow
15372         (subreg (mem)) simplifications.
15373
15374 2021-01-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15375
15376         * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
15377         Split into...
15378         (aarch64_sqdmlal<mode>): ... This...
15379         (aarch64_sqdmlsl<mode>): ... And this.
15380         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
15381         (aarch64_sqdmlal_lane<mode>): ... This...
15382         (aarch64_sqdmlsl_lane<mode>): ... And this.
15383         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
15384         (aarch64_sqdmlsl_laneq<mode>): ... This...
15385         (aarch64_sqdmlal_laneq<mode>):  ... And this.
15386         (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
15387         (aarch64_sqdmlsl_n<mode>): ... This...
15388         (aarch64_sqdmlal_n<mode>): ... And this.
15389         (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
15390         (aarch64_sqdmlal2<mode>_internal): ... This...
15391         (aarch64_sqdmlsl2<mode>_internal): ... And this.
15392
15393 2021-01-21  Christophe Lyon  <christophe.lyon@linaro.org>
15394
15395         * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
15396
15397 2021-01-21  Andrea Corallo  <andrea.corallo@arm.com>
15398
15399         PR target/96372
15400         * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
15401
15402 2021-01-21  liuhongt  <hongtao.liu@intel.com>
15403
15404         PR rtl-optimization/98694
15405         * regcprop.c (copy_value): If SRC had been assigned a mode
15406         narrower than the copy, we can't link DEST into the chain even
15407         they have same hard_regno_nregs(i.e. HImode/SImode in i386
15408         backend).
15409
15410 2021-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15411
15412         * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
15413         Convert to define_insn_and_split.  Split into simple move when moving
15414         bottom element.
15415
15416 2021-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
15417
15418         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
15419         Adjust comment.  Simplify code.
15420
15421 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
15422
15423         PR debug/98765
15424         * dwarf2out.c (reset_indirect_string): Also reset indirect strings
15425         with DW_FORM_line_strp form.
15426         (prune_unused_types_update_strings): Don't add into debug_str_hash
15427         indirect strings with DW_FORM_line_strp form.
15428         (adjust_name_comp_dir): New function.
15429         (dwarf2out_finish): Call it on CU DIEs after resetting
15430         debug_line_str_hash.
15431
15432 2021-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>
15433
15434         PR rtl-optimization/98722
15435         * lra-eliminations.c (eliminate_regs_in_insn): Check that target
15436         has no 3-op add insn to transform insns containing two pluses.
15437
15438 2021-01-20  Richard Biener  <rguenther@suse.de>
15439
15440         * hwint.h (add_hwi): New function.
15441         (mul_hwi): Likewise.
15442         * tree-data-ref.c (initialize_matrix_A): Properly translate
15443         tree constants and avoid HOST_WIDE_INT_MIN.
15444         (lambda_matrix_row_add): Avoid undefined integer overflow
15445         and return true on such overflow.
15446         (lambda_matrix_right_hermite): Handle overflow from
15447         lambda_matrix_row_add gracefully.  Simplify previous fix.
15448         (analyze_subscript_affine_affine): Likewise.
15449
15450 2021-01-20  Eugene Rozenfeld  <erozen@microsoft.com>
15451
15452         PR tree-optimization/96674
15453         * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
15454         x >= y && y != XXX_MIN --> x > y - 1
15455
15456 2021-01-20  Richard Sandiford  <richard.sandiford@arm.com>
15457
15458         PR tree-optimization/98535
15459         * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
15460         If the high and low permutes are the same, remove the high permutes
15461         from the working set and only continue with the low ones.
15462
15463 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
15464
15465         PR tree-optimization/98721
15466         * builtins.c (access_ref::inform_access): Don't assume
15467         SSA_NAME_IDENTIFIER must be non-NULL.  Print messages about
15468         object whenever allocfn is NULL, rather than only when DECL_P
15469         is true.  Use %qE instead of %qD for that.  Formatting fixes.
15470
15471 2021-01-20  Richard Biener  <rguenther@suse.de>
15472
15473         PR tree-optimization/98758
15474         * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
15475         (lambda_matrix_right_hermite): Avoid undefinedness with
15476         signed integer abs and multiplication.
15477         (analyze_subscript_affine_affine): Use lambda_int.
15478
15479 2021-01-20  David Malcolm  <dmalcolm@redhat.com>
15480
15481         PR debug/98751
15482         * dwarf2out.c (output_line_info): Rename static variable
15483         "generation", moving it out of the function to...
15484         (output_line_info_generation): New.
15485         (init_sections_and_labels): Likewise, renaming the variable to...
15486         (init_sections_and_labels_generation): New.
15487         (dwarf2out_c_finalize): Reset the new variables.
15488
15489 2021-01-19  Martin Sebor  <msebor@redhat.com>
15490
15491         PR middle-end/98664
15492         * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
15493         all functions, even if they're not declared artificial or inline.
15494         * tree.c (tree_inlined_location): Use macro expansion location
15495         only if scope traversal fails to expose one.
15496
15497 2021-01-19  Richard Sandiford  <richard.sandiford@arm.com>
15498
15499         PR rtl-optimization/92294
15500         * alias.c (compare_base_symbol_refs): Take an extra parameter
15501         and add the distance between two symbols to it.  Enshrine in
15502         comments that -1 means "either 0 or 1, but we can't tell
15503         which at compile time".
15504         (memrefs_conflict_p): Update call accordingly.
15505         (rtx_equal_for_memref_p): Likewise.  Take the distance between symbols
15506         into account.
15507
15508 2021-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15509
15510         * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
15511         sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
15512         uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
15513         sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
15514         sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
15515         sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
15516         sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
15517         sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
15518         sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
15519         uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
15520         sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
15521         sqmovun): Use NONE flags.
15522
15523 2021-01-19  Richard Biener  <rguenther@suse.de>
15524
15525         PR ipa/98330
15526         * ipa-modref.c (analyze_stmt): Only record a summary for a
15527         direct call.
15528
15529 2021-01-19  Richard Biener  <rguenther@suse.de>
15530
15531         PR middle-end/98638
15532         * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
15533
15534 2021-01-19  Daniel Hellstrom  <daniel@gaisler.com>
15535
15536         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
15537         built-in define __FIX_LEON3FT_TN0018.
15538
15539 2021-01-19  Richard Biener  <rguenther@suse.de>
15540
15541         PR ipa/97673
15542         * tree-inline.c (tree_function_versioning): Set input_location
15543         to UNKNOWN_LOCATION throughout the function.
15544
15545 2021-01-19  Tobias Burnus  <tobias@codesourcery.com>
15546
15547         PR fortran/98476
15548         * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
15549
15550 2021-01-19  Martin Jambor  <mjambor@suse.cz>
15551
15552         PR ipa/98690
15553         * ipa-sra.c (ssa_name_only_returned_p): New parameter fun.  Check
15554         whether non-call exceptions allow removal of a statement.
15555         (isra_analyze_call): Pass the appropriate function to
15556         ssa_name_only_returned_p.
15557
15558 2021-01-19  Geng Qi  <gengqi@linux.alibaba.com>
15559
15560         * config/riscv/arch-canonicalize (longext_sort): New function for
15561          sorting 'multi-letter'.
15562         * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
15563         'alts'. The 'arch' may not be the first of 'alts'.
15564         (_expand_combination): Add underline for the 'ext' without '*'.
15565         This is because, a single-letter extension can always be treated well
15566         with a '_' prefix, but it cannot be separated out if it is appended
15567         to a multi-letter.
15568
15569 2021-01-18  Vladimir N. Makarov  <vmakarov@redhat.com>
15570
15571         PR target/97847
15572         * ira.c (ira): Skip abnormal critical edge splitting.
15573
15574 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
15575
15576         PR tree-optimization/98727
15577         * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
15578         second .MUL_OVERFLOW operand for signed multiplication with overflow
15579         checking if the second operand of multiplication is not constant.
15580
15581 2021-01-18  David Edelsohn  <dje.gcc@gmail.com>
15582
15583         * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
15584         defaults to version 4.
15585
15586 2021-01-18  David Malcolm  <dmalcolm@redhat.com>
15587
15588         * attribs.h (fndecl_dealloc_argno): New decl.
15589         * builtins.c (call_dealloc_argno): Split out second half of
15590         function into...
15591         (fndecl_dealloc_argno): New.
15592         * doc/extend.texi (Common Function Attributes): Document the
15593         interaction between the analyzer and the malloc attribute.
15594         * doc/invoke.texi (Static Analyzer Options): Likewise.
15595
15596 2021-01-17  David Edelsohn  <dje.gcc@gmail.com>
15597
15598         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
15599         dwarf_version to 4.
15600         * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
15601
15602 2021-01-17  Martin Jambor  <mjambor@suse.cz>
15603
15604         PR ipa/98222
15605         * cgraph.c (clone_of_p): Check also former_clone_of as we climb
15606         the clone tree.
15607
15608 2021-01-17  Mark Wielaard  <mark@klomp.org>
15609
15610         * common.opt (gdwarf-): Init(5).
15611         * doc/invoke.texi (-gdwarf): Document default to 5.
15612
15613 2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
15614
15615         * builtin-types.def
15616         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
15617         to...
15618         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
15619         ...this.  Add extra argument.
15620         * gimplify.c (omp_default_clause): Ensure that event handle is
15621         firstprivate in a task region.
15622         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
15623         (gimplify_adjust_omp_clauses): Likewise.
15624         * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
15625         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
15626         * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
15627         if detach clause specified.  Add detach argument when generating
15628         call to GOMP_task.
15629         * omp-low.c (scan_sharing_clauses): Setup data environment for detach
15630         clause.
15631         (finish_taskreg_scan): Move field for variable containing the event
15632         handle to the front of the struct.
15633         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH.  Fix
15634         ordering.
15635         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
15636         OMP_CLAUSE_DETACH clause.
15637         (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
15638         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
15639         * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
15640         Fix ordering.
15641         (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH.  Fix
15642         ordering.
15643         (walk_tree_1): Handle OMP_CLAUSE_DETACH.
15644
15645 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15646
15647         * config/nios2/t-rtems: Reset all MULTILIB_* variables.  Shorten
15648         multilib directory names.  Use MULTILIB_REQUIRED instead of
15649         MULTILIB_EXCEPTIONS.  Add -mhw-mul -mhw-mulx -mhw-div
15650         -mcustom-fpu-cfg=fph2 multilib.
15651
15652 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15653
15654         * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
15655         (nios2_init_fpu_configs): Provide register values for new
15656         -mcustom-fpu-cfg=fph2 option variant.
15657         * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
15658         variant.
15659
15660 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15661
15662         * config/nios2/nios2.c (nios2_custom_check_insns): Remove
15663         custom instruction warnings.
15664
15665 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
15666
15667         PR tree-optimization/96669
15668         * match.pd ((CST << x) & 1 -> x == 0): New simplification.
15669
15670 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
15671
15672         PR tree-optimization/96271
15673         * passes.def: Pass false argument to first two pass_cd_dce
15674         instances and true to last instance.  Add comment that
15675         last instance rewrites no longer addressed locals.
15676         * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
15677         initialize it.
15678         (pass_cd_dce::set_pass_param): New method.
15679         (pass_cd_dce::execute): Return TODO_update_address_taken from
15680         last cd_dce instance.
15681
15682 2021-01-15  Carl Love  <cel@us.ibm.com>
15683
15684         * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
15685         New defines.
15686         * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
15687         * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
15688         DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
15689         DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
15690         MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
15691         Add builtin define.
15692         (MULH, DIVE, MOD):  Add new BU_P10_OVERLOAD_2 definitions.
15693         * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
15694         VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
15695         New overloaded definitions.
15696         (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
15697         P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
15698         P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
15699         P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
15700         P10V_BUILTIN_MULHU_V4SI]: Add case
15701         statement for builtins.
15702         * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
15703         * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
15704         (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
15705         (vsx_mul_v2di): Add if TARGET_POWER10 statement.
15706         (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
15707         (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
15708         mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
15709         Add define_insn, mode is VIlong.
15710         * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
15711         Add builtin descriptions.
15712
15713 2021-01-15  Eric Botcazou  <ebotcazou@adacore.com>
15714
15715         * final.c (final_start_function_1): Reset force_source_line.
15716
15717 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
15718
15719         PR tree-optimization/96669
15720         * match.pd (((1 << A) & 1) != 0 -> A == 0,
15721         ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
15722         possibly different power of two constants and to right shift too.
15723
15724 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
15725
15726         PR tree-optimization/96681
15727         * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
15728         ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
15729         ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
15730         ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
15731
15732 2021-01-15  Alexandre Oliva  <oliva@adacore.com>
15733
15734         * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
15735
15736 2021-01-15  Tamar Christina  <tamar.christina@arm.com>
15737
15738         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
15739         cmul<conj_op><mode>3): New.
15740         * config/aarch64/iterators.md (UNSPEC_FCMUL,
15741         UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
15742         UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
15743         FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
15744         sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
15745         (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
15746         (rot_op): Renamed to conj_op.
15747         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
15748         cmul<conj_op><mode>3): New.
15749         * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
15750         cmul<conj_op><mode>3): New.
15751
15752 2021-01-15  David Malcolm  <dmalcolm@redhat.com>
15753
15754         PR bootstrap/98696
15755         * diagnostic.c
15756         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
15757         Escape the tempfile name when constructing the expected output.
15758
15759 2021-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15760
15761         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
15762         Rename to...
15763         (aarch64_<su>mlsl_hi<mode>): ... This.
15764         (aarch64_<su>mlsl_hi<mode>): Define.
15765         (*aarch64_<su>mlsl<mode): Rename to...
15766         (aarch64_<su>mlsl<mode): ... This.
15767         * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
15768         smlsl_hi, umlsl_hi): Define builtins.
15769         * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
15770         vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
15771         vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
15772         vmlsl_u16, vmlsl_u32): Reimplement with builtins.
15773
15774 2021-01-15  Uroš Bizjak  <ubizjak@gmail.com>
15775
15776         * config/i386/i386-c.c (ix86_target_macros):
15777         Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
15778
15779 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
15780
15781         PR target/88836
15782         * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
15783         * Makefile.in (RTL_SSA_H): New variable.
15784         * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
15785         * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
15786         * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
15787         pass_combine.
15788         * config/aarch64/aarch64-cc-fusion.cc: New file.
15789
15790 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
15791
15792         * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
15793         calling cancel_changes for changes that no longer exist.
15794
15795 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
15796
15797         * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
15798         (function_info::reg_defs): ...this.
15799         * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
15800         (function_info::reg_defs): ...this.
15801
15802 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15803
15804         PR target/71233
15805         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15806
15807 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15808
15809         Revert:
15810         2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15811
15812         PR target/71233
15813         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15814
15815 2021-01-15  Richard Biener  <rguenther@suse.de>
15816
15817         PR tree-optimization/96376
15818         * tree-vect-stmts.c (get_load_store_type): Disregard alignment
15819         for VMAT_INVARIANT.
15820
15821 2021-01-15  Martin Liska  <mliska@suse.cz>
15822
15823         * doc/install.texi: Document that some tests need pytest module.
15824         * doc/sourcebuild.texi: Likewise.
15825
15826 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15827
15828         PR target/71233
15829         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15830
15831 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15832
15833         * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
15834         (mve_vshrq_n_u<mode>_imm): Likewise.
15835         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
15836         * config/arm/vec-common.md: ... here.
15837
15838 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15839
15840         * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
15841         vec-commond.md.
15842         * config/arm/neon.md (vashl<mode>3): Delete.
15843         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
15844         (vasl<mode>3): New expander.
15845
15846 2021-01-15  Richard Biener  <rguenther@suse.de>
15847
15848         PR tree-optimization/98685
15849         * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
15850         of vector extern defs.
15851
15852 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
15853
15854         PR jit/98586
15855         * diagnostic.c (diagnostic_kind_text): Break out this array
15856         from...
15857         (diagnostic_build_prefix): ...here.
15858         (fancy_abort): Detect when diagnostic_initialize has not yet been
15859         called and fall back to a minimal implementation of printing the
15860         ICE, rather than segfaulting in internal_error.
15861
15862 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
15863
15864         * diagnostic.c (diagnostic_initialize): Eliminate
15865         parseable_fixits_p in favor of initializing extra_output_kind from
15866         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
15867         (convert_column_unit): New function, split out from...
15868         (diagnostic_converted_column): ...this.
15869         (print_parseable_fixits): Add "column_unit" and "tabstop" params.
15870         Use them to call convert_column_unit on the column values.
15871         (diagnostic_report_diagnostic): Eliminate conditional on
15872         parseable_fixits_p in favor of a switch statement on
15873         extra_output_kind, passing the appropriate values to the new
15874         params of print_parseable_fixits.
15875         (selftest::test_print_parseable_fixits_none): Update for new
15876         params of print_parseable_fixits.
15877         (selftest::test_print_parseable_fixits_insert): Likewise.
15878         (selftest::test_print_parseable_fixits_remove): Likewise.
15879         (selftest::test_print_parseable_fixits_replace): Likewise.
15880         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
15881         New.
15882         (selftest::diagnostic_c_tests): Call it.
15883         * diagnostic.h (enum diagnostics_extra_output_kind): New.
15884         (diagnostic_context::parseable_fixits_p): Delete field in favor
15885         of...
15886         (diagnostic_context::extra_output_kind): ...this new field.
15887         * doc/invoke.texi (Environment Variables): Add
15888         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
15889         * opts.c (common_handle_option): Update handling of
15890         OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
15891         fields.
15892
15893 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15894
15895         * tree-vect-slp-patterns.c (class complex_operations_pattern,
15896         complex_operations_pattern::matches,
15897         complex_operations_pattern::recognize,
15898         complex_operations_pattern::build): New.
15899         (slp_patterns): Use it.
15900
15901 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15902
15903         * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
15904         * optabs.def (cmls_optab, cmls_conj_optab): New.
15905         * doc/md.texi: Document them.
15906         * tree-vect-slp-patterns.c (class complex_fms_pattern,
15907         complex_fms_pattern::matches, complex_fms_pattern::recognize,
15908         complex_fms_pattern::build): New.
15909
15910 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15911
15912         * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
15913         * optabs.def (cmla_optab, cmla_conj_optab): New.
15914         * doc/md.texi: Document them.
15915         * tree-vect-slp-patterns.c (vect_match_call_p,
15916         class complex_fma_pattern, vect_slp_reset_pattern,
15917         complex_fma_pattern::matches, complex_fma_pattern::recognize,
15918         complex_fma_pattern::build): New.
15919
15920 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15921
15922         * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
15923         * optabs.def (cmul_optab, cmul_conj_optab): New.
15924         * doc/md.texi: Document them.
15925         * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
15926         vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
15927         vect_build_combine_node, class complex_mul_pattern,
15928         complex_mul_pattern::matches, complex_mul_pattern::recognize,
15929         complex_mul_pattern::build): New.
15930
15931 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15932
15933         * tree-vect-slp.c (optimize_load_redistribution_1): New.
15934         (optimize_load_redistribution, vect_is_slp_load_node): New.
15935         (vect_match_slp_patterns): Use it.
15936
15937 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15938
15939         * tree-vect-slp-patterns.c (complex_add_pattern::build):
15940         Elide nodes.
15941
15942 2021-01-14  Thomas Schwinge  <thomas@codesourcery.com>
15943
15944         * config/gcn/mkoffload.c (main): Create an offload image only in
15945         64-bit configurations.
15946
15947 2021-01-14  H.J. Lu  <hjl.tools@gmail.com>
15948
15949         PR target/98667
15950         * config/i386/i386-options.c (ix86_option_override_internal):
15951         Issue an error for -fcf-protection with CF_BRANCH when compiling
15952         for 32-bit non-TARGET_CMOV targets.
15953
15954 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
15955
15956         PR target/98671
15957         * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
15958         Remove declaration and initialization of shadow variable "ret".
15959         (ix86_option_override_internal): Remove delcaration of
15960         shadow variable "i".  Redeclare shadowed variable to unsigned.
15961         * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
15962         * config/i386/i386-builtins.c (get_builtin_code_for_version):
15963         Update for redeclaration.
15964         * config/i386/i386.h (pta_size): Ditto.
15965
15966 2021-01-14  Richard Biener  <rguenther@suse.de>
15967
15968         PR tree-optimization/98674
15969         * tree-data-ref.c (base_supports_access_fn_components_p): New.
15970         (initialize_data_dependence_relation): For two bases without
15971         possible access fns resort to type size equality when determining
15972         shape compatibility.
15973
15974 2021-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
15975
15976         PR target/66791
15977         * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
15978         <=, >= operators in vcle and vcge intrinsics respectively.
15979         * config/arm/arm_neon_builtins.def: Remove entry for
15980         vcge and vcgeu.
15981
15982 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
15983
15984         PR target/98671
15985         * config/i386/i386-options.c (ix86_function_specific_save):
15986         Remove redundant assignment to opts->x_ix86_branch_cost.
15987         * config/i386/i386.c (ix86_prefetch_sse):
15988         Rename from x86_prefetch_sse.  Update all uses.
15989         * config/i386/i386.h: Update for rename.
15990         * config/i386/i386-options.h: Ditto.
15991
15992 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
15993
15994         PR target/98670
15995         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
15996         *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
15997         Use Bm instead of m for non-avx.  Add isa attribute.
15998
15999 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
16000
16001         PR tree-optimization/96688
16002         * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
16003         ~X can be simplified.
16004
16005 2021-01-14  Richard Sandiford  <richard.sandiford@arm.com>
16006
16007         * tree-vect-stmts.c (vect_model_load_cost): Account for unused
16008         IFN_LOAD_LANES results.
16009
16010 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16011
16012         * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
16013         Define.
16014         (aarch64_xtn<mode>): Likewise.
16015         * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
16016         Define
16017         builtins.
16018         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
16019         builtin.
16020         (vmovl_s16): Likewise.
16021         (vmovl_s32): Likewise.
16022         (vmovl_u8): Likewise.
16023         (vmovl_u16): Likewise.
16024         (vmovl_u32): Likewise.
16025         (vmovn_s16): Likewise.
16026         (vmovn_s32): Likewise.
16027         (vmovn_s64): Likewise.
16028         (vmovn_u16): Likewise.
16029         (vmovn_u32): Likewise.
16030         (vmovn_u64): Likewise.
16031
16032 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16033
16034         * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
16035         Define.
16036         (aarch64_<su>qxtn2<mode>_be): Likewise.
16037         (aarch64_<su>qxtn2<mode>): Likewise.
16038         * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
16039         Define builtins.
16040         * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
16041         (su): Handle ss_truncate and us_truncate.
16042         * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
16043         builtin.
16044         (vqmovn_high_s32): Likewise.
16045         (vqmovn_high_s64): Likewise.
16046         (vqmovn_high_u16): Likewise.
16047         (vqmovn_high_u32): Likewise.
16048         (vqmovn_high_u64): Likewise.
16049
16050 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16051
16052         * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
16053         Define.
16054         (aarch64_xtn2<mode>_be): Likewise.
16055         (aarch64_xtn2<mode>): Likewise.
16056         * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
16057         builtins.
16058         * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
16059         builtins.
16060         (vmovn_high_s32): Likewise.
16061         (vmovn_high_s64): Likewise.
16062         (vmovn_high_u16): Likewise.
16063         (vmovn_high_u32): Likewise.
16064         (vmovn_high_u64): Likewise.
16065
16066 2021-01-13  Stafford Horne  <shorne@gmail.com>
16067
16068         * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
16069
16070 2021-01-13  Stafford Horne  <shorne@gmail.com>
16071
16072         * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
16073
16074 2021-01-13  Stafford Horne  <shorne@gmail.com>
16075
16076         * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
16077           define for __or1k_hard_float__.
16078
16079 2021-01-13  Stafford Horne  <shorne@gmail.com>
16080
16081         * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
16082         (PROFILE_HOOK): Define to call _mcount.
16083         (FUNCTION_PROFILER): Change from abort to no-op.
16084
16085 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
16086
16087         PR tree-optimization/96691
16088         * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
16089         (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
16090         (~D ^ C) or (D ^ C) can be simplified.
16091
16092 2021-01-13  Richard Biener  <rguenther@suse.de>
16093
16094         PR tree-optimization/92645
16095         * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
16096         until after vector lowering.
16097
16098 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
16099
16100         * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
16101         to SVE_I.
16102         (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
16103         (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
16104
16105 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
16106
16107         * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
16108         to SVE_I.
16109         (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
16110         (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
16111
16112 2021-01-13  Richard Biener  <rguenther@suse.de>
16113
16114         PR tree-optimization/92645
16115         * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
16116         BIT_FIELD_REF argument.
16117         (vect_build_slp_tree_2): Record the desired vector type
16118         on the external vector def.
16119         (vectorizable_slp_permutation): Handle required punning
16120         of existing vector defs.
16121
16122 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
16123
16124         * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
16125
16126 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
16127
16128         * config/sh/sh.md (movsf_ie): Remove operands[2] test.
16129
16130 2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>
16131
16132         * config.gcc [$target == *-*-gnu*]: Enable
16133         'default_gnu_indirect_function'.
16134
16135 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
16136
16137         PR target/95905
16138         * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
16139         registers before calling targetm.vectorize.vec_perm_const, only after
16140         that.
16141         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
16142         two argument permutation when one operand is zero vector and only
16143         after that force operands into registers.
16144         * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
16145         define_insn_and_split pattern.
16146         (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
16147         (*avx512f_zero_extendv16hiv16si2_1): Likewise.
16148         (*avx2_zero_extendv8hiv8si2_1): Likewise.
16149         (*avx512f_zero_extendv8siv8di2_1): Likewise.
16150         (*avx2_zero_extendv4siv4di2_1): Likewise.
16151         * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
16152         into registers.
16153         * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
16154         * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
16155         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
16156         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
16157         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
16158         * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise.  Use std::swap.
16159
16160 2021-01-13  Martin Liska  <mliska@suse.cz>
16161
16162         PR tree-optimization/98455
16163         * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
16164         Record also virtual PHIs.
16165         (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
16166         conditionally.
16167
16168 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
16169
16170         * doc/invoke.texi (C++ Modules): Fix typos.
16171
16172 2021-01-13  Richard Biener  <rguenther@suse.de>
16173
16174         PR tree-optimization/98640
16175         * tree-ssa-sccvn.c (visit_nary_op): Do not try to
16176         handle plus or minus from a truncated operand to be
16177         sign-extended.
16178
16179 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
16180
16181         PR target/96938
16182         * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
16183         define_insn_and_split patterns.
16184         (splitter after *btr<mode>_2): New splitter.
16185
16186 2021-01-13  Martin Liska  <mliska@suse.cz>
16187
16188         PR ipa/98652
16189         * cgraphunit.c (analyze_functions): Remove dead code.
16190
16191 2021-01-13  Qian Jianhua  <qianjh@cn.fujitsu.com>
16192
16193         * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
16194         * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
16195         (a64fx_regmove_cost, a64fx_vector_cost): New.
16196         (a64fx_tunings): Use the new added cost tables.
16197
16198 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
16199
16200         PR target/95905
16201         * config/i386/predicates.md (pmovzx_parallel): New predicate.
16202         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
16203         define_insn_and_split pattern.
16204         (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
16205         (*sse4_1_zero_extendv2siv2di2_3): Likewise.
16206
16207 2021-01-13  Julian Brown  <julian@codesourcery.com>
16208
16209         * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
16210         to fix v0 register.
16211
16212 2021-01-13  Julian Brown  <julian@codesourcery.com>
16213
16214         * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
16215         on entry to a BB.
16216
16217 2021-01-13  Julian Brown  <julian@codesourcery.com>
16218
16219         * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
16220         for reciprocal-approximation instructions.
16221         (div<mode>3): Use fused multiply-accumulate operations for reciprocal
16222         refinement and division result.
16223         * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
16224
16225 2021-01-13  Julian Brown  <julian@codesourcery.com>
16226
16227         * config/gcn/gcn-valu.md (subdf): Rename to...
16228         (subdf3): This.
16229
16230 2021-01-12  Martin Liska  <mliska@suse.cz>
16231
16232         * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
16233
16234 2021-01-12  Andrea Corallo  <andrea.corallo@arm.com>
16235
16236         * function-abi.h: Fix typo.
16237
16238 2021-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
16239
16240         PR target/97875
16241         PR target/97875
16242         * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
16243         (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
16244         (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
16245         (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
16246         (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
16247         (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
16248         (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
16249         (ARM_HAVE_NEON_V2DI_LDST): Likewise.
16250         (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
16251         (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
16252         (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
16253         (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
16254         (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
16255         (ARM_HAVE_V2DI_LDST): Likewise.
16256         * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
16257         (*movmisalign<mode>_mve_load): New pattern.
16258         * config/arm/neon.md (movmisalign<mode>): Move to ...
16259         * config/arm/vec-common.md: ... here.
16260
16261 2021-01-12  Vladimir N. Makarov  <vmakarov@redhat.com>
16262
16263         PR target/97969
16264         * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
16265         of pattern 'plus (plus (hard reg, const), pseudo)'.
16266
16267 2021-01-12  Richard Biener  <rguenther@suse.de>
16268
16269         PR tree-optimization/98550
16270         * tree-vect-slp.c (vect_record_max_nunits): Check whether
16271         the group size is a multiple of the vector element count.
16272         (vect_build_slp_tree_1): When we need to fail because
16273         the vector type choosen causes unrolling do so lazily
16274         without affecting matches only at the end to guide group splitting.
16275
16276 2021-01-12  Martin Liska  <mliska@suse.cz>
16277
16278         PR c++/97284
16279         * optc-save-gen.awk: Compare also n_target_save vars with
16280         strcmp.
16281
16282 2021-01-12  Martin Liska  <mliska@suse.cz>
16283
16284         * gcov.c (source_info::debug): New.
16285         (print_usage): Add --debug (-D) option.
16286         (process_args): Likewise.
16287         (generate_results): Call src->debug after
16288         accumulate_line_counts.
16289         (read_graph_file): Properly assign id for EXIT_BLOCK.
16290         * profile.c (branch_prob): Dump function body before it is
16291         instrumented.
16292
16293 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
16294
16295         PR tree-optimization/98629
16296         * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
16297         unless returning non-zero.
16298
16299 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
16300
16301         PR tree-optimization/95731
16302         * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
16303         x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
16304         (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
16305         only after optimize_range_tests_var_bound.
16306
16307 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
16308
16309         * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
16310         * configure: Regenerated.
16311
16312 2021-01-12  liuhongt  <hongtao.liu@intel.com>
16313
16314         PR target/98612
16315         * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
16316         Deleted.
16317         * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
16318         dead code.
16319
16320 2021-01-12  Alexandre Oliva  <oliva@adacore.com>
16321
16322         * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
16323         declare.
16324         (auto_end_imm_use_stmt_traverse): New struct.
16325         (FOR_EACH_IMM_USE_STMT): Use it.
16326         (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
16327         along with uses...
16328         * gimple-ssa-strength-reduction.c: ... here, ...
16329         * graphite-scop-detection.c: ... here, ...
16330         * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
16331         * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
16332         * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
16333         * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
16334         * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
16335         * tree-vect-slp.c: ... and here, ...
16336         * doc/tree-ssa.texi: ... and the example here.
16337
16338 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
16339
16340         * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
16341         SVE_FULL_I to SVE_I.  Generate an UNSPEC_PRED_X.
16342         (*sdiv_pow2<mode>3): New pattern.
16343         (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
16344         Wrap the ASRD in an UNSPEC_PRED_X.
16345         (*cond_<sve_int_op><mode>_2): Likewise.  Replace the UNSPEC_PRED_X
16346         predicate with a constant PTRUE, if it isn't already.
16347         (*cond_<sve_int_op><mode>_z): Replace with...
16348         (*cond_<sve_int_op><mode>_any): ...this new pattern.
16349
16350 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
16351
16352         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
16353         SVE_FULL_I to SVE_I.
16354         (*cond_bic<mode>_any): Likewise.
16355
16356 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
16357
16358         * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
16359         (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
16360         to SVE_I.
16361
16362 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
16363
16364         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
16365         SVE_FULL_I to SVE_I.
16366         (*aarch64_cond_<su>abd<mode>_2): Likewise.
16367         (*aarch64_cond_<su>abd<mode>_any): Likewise.
16368         (@aarch64_pred_<su>abd<mode>): Likewise.  Use UNSPEC_PRED_X
16369         for the max and min but not for the minus.
16370         (*aarch64_cond_<su>abd<mode>_3): New pattern.
16371
16372 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
16373
16374         * config/aarch64/iterators.md (SVE_24I): New iterator.
16375         * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
16376         SVE_FULL_SDI to SVE_24I.  Use containers rather than elements.
16377
16378 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
16379
16380         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
16381         (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
16382         to SVE_I.
16383         (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
16384         (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
16385         (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
16386         (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
16387
16388 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
16389
16390         * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
16391         (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
16392         (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
16393         to SVE_I.
16394
16395 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
16396
16397         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
16398         (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
16399         (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
16400
16401 2021-01-11  Martin Liska  <mliska@suse.cz>
16402
16403         PR jit/98615
16404         * symtab-clones.h (clone_info::release): Release
16405         symtab::m_clones with ggc_delete as it's a GGC memory.
16406
16407 2021-01-11  Matthias Klose  <doko@ubuntu.com>
16408
16409         * Makefile.in (LINK_PROGRESS): Show the link target.
16410
16411 2021-01-11  Richard Biener  <rguenther@suse.de>
16412
16413         PR tree-optimization/91403
16414         * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
16415         single-element interleaving group size at 4096 elements.
16416
16417 2021-01-11  Richard Biener  <rguenther@suse.de>
16418
16419         PR tree-optimization/98526
16420         * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
16421         of the actual reduction op for the regular case.
16422         (vectorizable_reduction): Cost the stmts
16423         vect_transform_reduction produces here.
16424
16425 2021-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>
16426
16427         * tree-ssa-forwprop.c (simplify_vector_constructor): For
16428         big-endian, use UNPACK[_FLOAT]_HI.
16429
16430 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
16431
16432         * tree-vect-slp-patterns.c (class complex_pattern,
16433         class complex_add_pattern): Add parameters to matches.
16434         (complex_add_pattern::build): Free memory.
16435         (complex_add_pattern::matches): Move validation end of match.
16436         (complex_add_pattern::recognize): Likewise.
16437
16438 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
16439
16440         * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
16441
16442 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
16443
16444         * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
16445
16446 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
16447
16448         PR tree-optimization/95867
16449         * tree-ssa-math-opts.h: New header.
16450         * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
16451         (powi_as_mults): No longer static.  Use build_one_cst instead of
16452         build_real.  Formatting fix.
16453         * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
16454         (attempt_builtin_powi): Handle multiplication reassociation without
16455         powi_fndecl using powi_as_mults.
16456         (reassociate_bb): For integral types don't require
16457         -funsafe-math-optimizations to call attempt_builtin_powi.
16458
16459 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
16460
16461         PR tree-optimization/95852
16462         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
16463         mul_stmts parameter type to vec<gimple *> &.  Before cond_stmt
16464         allow in the bb any of the stmts in that vector, div_stmt and
16465         up to 3 cast stmts.
16466         (arith_cast_equal_p): New function.
16467         (arith_overflow_check_p): Add cast_stmt argument, handle signed
16468         multiply overflow checks.
16469         (match_arith_overflow): Adjust caller.  Handle signed multiply
16470         overflow checks.
16471
16472 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
16473
16474         PR tree-optimization/95852
16475         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
16476         (uaddsub_overflow_check_p): Renamed to ...
16477         (arith_overflow_check_p): ... this.  Handle also multiplication
16478         with overflow check.
16479         (match_uaddsub_overflow): Renamed to ...
16480         (match_arith_overflow): ... this.  Add cfg_changed argument.  Handle
16481         also multiplication with overflow check.  Adjust function comment.
16482         (math_opts_dom_walker::after_dom_children): Adjust callers.  Call
16483         match_arith_overflow also for MULT_EXPR.
16484
16485 2021-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16486
16487         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
16488         __builtin_convertvector.
16489         (vmovl_s16): Likewise.
16490         (vmovl_s32): Likewise.
16491         (vmovl_u8): Likewise.
16492         (vmovl_u16): Likewise.
16493         (vmovl_u32): Likewise.
16494         (vmovn_s16): Likewise.
16495         (vmovn_s32): Likewise.
16496         (vmovn_s64): Likewise.
16497         (vmovn_u16): Likewise.
16498         (vmovn_u32): Likewise.
16499         (vmovn_u64): Likewise.
16500
16501 2021-01-11  Martin Liska  <mliska@suse.cz>
16502
16503         * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
16504         (if_chain::is_beneficial): Delete clusters
16505         (find_conditions): Make second argument of conditions_in_bbs a
16506         pointer so that we control over it's lifetime.
16507         (pass_if_to_switch::execute): Delete them.
16508
16509 2021-01-11  Kewen Lin  <linkw@linux.ibm.com>
16510
16511         * ira.c (move_unallocated_pseudos): Check other_reg and skip if
16512         it isn't set.
16513
16514 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
16515
16516         * config/vax/vax.md (cc): Remove mode attribute.
16517         (subst_<cc>, subst_f<cc>): Rename to...
16518         (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
16519         (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
16520         (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
16521         (*branch_<mode>, *branch_<mode>_reversed): Likewise.
16522
16523 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
16524
16525         * config/vax/vax.md (subst_f<cc>): Add mode to operands and
16526         `const_double_zero'.
16527
16528 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
16529
16530         * config/pdp11/pdp11.md (PDPfp): New mode iterator.
16531         (fcc_cc, fcc_ccnz): Use it.  Add mode to `const_double_zero' and
16532         operands.
16533
16534 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
16535
16536         * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
16537         rtx.
16538         * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
16539         with `const_double_zero'.
16540         * doc/rtl.texi (Constant Expression Types): Document it.
16541
16542 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
16543
16544         PR c++/98556
16545         * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
16546         POINTER_DIFF_EXPR to be any integral type.
16547
16548 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
16549
16550         PR rtl-optimization/98603
16551         * function.c (instantiate_virtual_regs_in_insn): For asm goto
16552         with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
16553         if any, set ASM_OPERANDS mode to VOIDmode and change
16554         ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
16555
16556 2021-01-09  Alexandre Oliva  <oliva@gnu.org>
16557
16558         PR debug/97714
16559         * final.c (notice_source_line): Narrow down the condition to
16560         skip a line-0 marker.
16561
16562 2021-01-08  Sergei Trofimovich  <siarheit@google.com>
16563
16564         * ipa-modref.c (merge_call_side_effects): Fix
16565         linebreak split by reordering two print calls.
16566
16567 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
16568
16569         * config/s390/vector.md (*tf_to_fprx2_0): Rename from
16570         "*mov_tf_to_fprx2_0" for consistency, fix constraint.
16571         (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
16572         consistency, fix constraint.
16573
16574 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
16575
16576         * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
16577         callables instead of mask values.
16578         (struct target_flag_set_p): New predicate.
16579         (s390_cpu_cpp_builtins_internal): Define or undefine
16580         __LONG_DOUBLE_VX__ macro.
16581
16582 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
16583
16584         PR target/98482
16585         * config/i386/i386.c (x86_function_profiler): Use R10 and R11
16586         to call mcount in large model with PIC for NO_PROFILE_COUNTERS
16587         targets.
16588
16589 2021-01-08  Richard Biener  <rguenther@suse.de>
16590
16591         * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
16592
16593 2021-01-08  Richard Biener  <rguenther@suse.de>
16594
16595         * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
16596         (vect_build_slp_tree): On cache hit release the matched
16597         scalar stmts vector.
16598         * tree-vect-stmts.c (vectorizable_store): Properly free
16599         vec_oprnds before possibly gathering them again.
16600
16601 2021-01-08  Richard Biener  <rguenther@suse.de>
16602
16603         PR tree-optimization/98544
16604         * tree-vect-slp.c (vect_optimize_slp): Always materialize
16605         permutes at a permute node.
16606
16607 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
16608
16609         PR target/98482
16610         * config/i386/i386.c (x86_function_profiler): Use R10 to call
16611         mcount in large model.  Sorry for large model with PIC.
16612
16613 2021-01-08  Jakub Jelinek  <jakub@redhat.com>
16614
16615         PR target/98585
16616         * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
16617         ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
16618         ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
16619         TargetSave and initialize for variables with enum types.
16620         (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
16621         mstack-protector-guard-symbol=): Add Save.
16622         * config/i386/i386-options.c (ix86_function_specific_save,
16623         ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
16624         x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
16625         x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
16626         x_ix86_veclibabi_type.
16627
16628 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
16629
16630         * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
16631         SVE_FULL_I to SVE_I.
16632         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
16633
16634 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
16635
16636         * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
16637         SVE_FULL_I to SVE_I.
16638         (*cond_uxt<mode>_any): Likewise.
16639
16640 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16641
16642         * config/aarch64/iterators.md (Vwhalf): New iterator.
16643         * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
16644         Rename to...
16645         (aarch64_<sur>adalp<mode>): ... This.  Make more
16646         builtin-friendly.
16647         (<sur>sadv16qi): Adjust callsite of the above.
16648         * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
16649         builtins.
16650         * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
16651         builtins.
16652         (vpadal_s16): Likewise.
16653         (vpadal_u8): Likewise.
16654         (vpadal_u16): Likewise.
16655         (vpadalq_s8): Likewise.
16656         (vpadalq_s16): Likewise.
16657         (vpadalq_s32): Likewise.
16658         (vpadalq_u8): Likewise.
16659         (vpadalq_u16): Likewise.
16660         (vpadalq_u32): Likewise.
16661
16662 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16663
16664         * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
16665         Rename to...
16666         (aarch64_<su>abd<mode>): ... This.
16667         (<sur>sadv16qi): Adjust callsite of the above.
16668         * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
16669         builtins.
16670         * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
16671         builtin.
16672         (vabd_s16): Likewise.
16673         (vabd_s32): Likewise.
16674         (vabd_u8): Likewise.
16675         (vabd_u16): Likewise.
16676         (vabd_u32): Likewise.
16677         (vabdq_s8): Likewise.
16678         (vabdq_s16): Likewise.
16679         (vabdq_s32): Likewise.
16680         (vabdq_u8): Likewise.
16681         (vabdq_u16): Likewise.
16682         (vabdq_u32): Likewise.
16683
16684 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16685
16686         * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
16687         builtins.
16688         * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
16689         (vaba_s16): Likewise.
16690         (vaba_s32): Likewise.
16691         (vaba_u8): Likewise.
16692         (vaba_u16): Likewise.
16693         (vaba_u32): Likewise.
16694         (vabaq_s8): Likewise.
16695         (vabaq_s16): Likewise.
16696         (vabaq_s32): Likewise.
16697         (vabaq_u8): Likewise.
16698         (vabaq_u16): Likewise.
16699         (vabaq_u32): Likewise.
16700
16701 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16702
16703         * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
16704         (aarch64_<su>aba<mode>): ... This.  Handle uaba as well.
16705         Change RTL pattern to match.
16706
16707 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
16708
16709         * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
16710         * config/riscv/riscv-c.c (riscv-subset.h): New.
16711         (INCLUDE_STRING): Define.
16712         (riscv_cpu_cpp_builtins): Add new style architecture extension
16713         test macros.
16714         * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
16715         (riscv_subset_list::end): New.
16716         (riscv_current_subset_list): New.
16717
16718 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
16719
16720         * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
16721         Move to riscv-subset.h.
16722         (struct riscv_subset_t): Ditto.
16723         (class riscv_subset_list): Ditto.
16724         * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
16725         from riscv-common.c.
16726         (struct riscv_subset_t): Ditto.
16727         (class riscv_subset_list): Ditto.
16728         * config/riscv/t-riscv ($(common_out_file)): Add file
16729         dependency.
16730
16731 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
16732
16733         PR target/98567
16734         * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
16735         New define_insn patterns.
16736
16737 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
16738
16739         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
16740         (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
16741         (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
16742
16743 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
16744
16745         PR tree-optimization/98560
16746         * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
16747         * internal-fn.c (vec_cond_mask_direct): Get the data mode from
16748         argument 1.
16749         (vec_cond_direct): Likewise argument 2.
16750         (vec_condu_direct, vec_condeq_direct): Delete.
16751         (expand_vect_cond_optab_fn): Rename to...
16752         (expand_vec_cond_optab_fn): ...this, replacing old macro.
16753         (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
16754         (expand_vect_cond_mask_optab_fn): Rename to...
16755         (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
16756         (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
16757         convert optab.
16758         (direct_vec_cond_optab_supported_p): Likewise.
16759         (direct_vec_condu_optab_supported_p): Delete.
16760         (direct_vec_condeq_optab_supported_p): Delete.
16761         * gimple-isel.cc: Include internal-fn.h.
16762         (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
16763         before using it.
16764
16765 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
16766
16767         PR tree-optimization/98560
16768         * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
16769         IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
16770
16771 2021-01-07  Uroš Bizjak  <ubizjak@gmail.com>
16772
16773         * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
16774         rotate_insn and optab code attributes.
16775         Update all uses to merged code attribute.
16776         * config/i386/sse.md: Update all uses to merged code attribute.
16777         * config/i386/mmx.md: Update all uses to merged code attribute.
16778
16779 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
16780
16781         PR tree-optimization/98568
16782         * gimple-ssa-store-merging.c (bswap_view_convert): New function.
16783         (bswap_replace): Use it.
16784
16785 2021-01-06  Vladimir N. Makarov  <vmakarov@redhat.com>
16786
16787         PR rtl-optimization/97978
16788         * lra-int.h (lra_hard_reg_split_p): New external.
16789         * lra.c (lra_hard_reg_split_p): New global.
16790         (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
16791         * lra-assigns.c (lra_assign): Don't check allocation correctness
16792         after hard reg splitting.
16793
16794 2021-01-06  Martin Sebor  <msebor@redhat.com>
16795
16796         PR c++/98305
16797         * builtins.c (new_delete_mismatch_p): New overload.
16798         (new_delete_mismatch_p (tree, tree)): Call it.
16799
16800 2021-01-06  Alexandre Oliva  <oliva@adacore.com>
16801
16802         * Makefile.in (T_GLIMITS_H): New.
16803         (stmp-int-hdrs): Depend on it, use it.
16804         * config/t-vxworks (T_GLIMITS_H): Override it.
16805         (vxw-glimits.h): New.
16806
16807 2021-01-06  Richard Biener  <rguenther@suse.de>
16808
16809         PR tree-optimization/98513
16810         * value-range.cc (intersect_ranges): Compare the upper bounds
16811         for the expected relation.
16812
16813 2021-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
16814
16815         Revert:
16816         2020-12-28  Gerald Pfeifer  <gerald@pfeifer.com>
16817
16818         * doc/standards.texi (HSAIL): Remove section.
16819
16820 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
16821
16822         * configure: Re-generate.
16823
16824 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16825
16826         * doc/invoke.texi (-std=c++20): Adjust for the publication of
16827         ISO 14882:2020 standard.
16828         * doc/standards.texi: Likewise.
16829
16830 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16831
16832         PR tree-optimization/94802
16833         * expr.h (maybe_optimize_sub_cmp_0): Declare.
16834         * expr.c: Include tree-pretty-print.h and flags.h.
16835         (maybe_optimize_sub_cmp_0): New function.
16836         (do_store_flag): Use it.
16837         * cfgexpand.c (expand_gimple_cond): Likewise.
16838
16839 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
16840
16841         * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
16842         * rtlanal.c (simple_regno_set): Tweak description to clarify the
16843         RMW condition.
16844
16845 2021-01-05  Richard Biener  <rguenther@suse.de>
16846
16847         PR tree-optimization/98516
16848         * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
16849         lanes when materializing on a VEC_PERM node.
16850         (vectorizable_slp_permutation): Dump the permute properly.
16851
16852 2021-01-05  Richard Biener  <rguenther@suse.de>
16853
16854         * tree-vect-slp.c (vect_slp_region): Move debug counter
16855         to cover individual subgraphs.
16856
16857 2021-01-05  Richard Biener  <rguenther@suse.de>
16858
16859         PR tree-optimization/98428
16860         * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
16861         vector lane extracts for loop vectorization.
16862
16863 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16864
16865         PR tree-optimization/98514
16866         * tree-ssa-reassoc.c (bb_rank): Change type from long * to
16867         int64_t *.
16868         (operand_rank): Change type from hash_map<tree, long> to
16869         hash_map<tree, int64_t>.
16870         (phi_rank): Change return type from long to int64_t.
16871         (loop_carried_phi): Change block_rank variable type from long to
16872         int64_t.
16873         (propagate_rank): Change return type, rank parameter type and
16874         op_rank variable type from long to int64_t.
16875         (find_operand_rank): Change return type from long to int64_t
16876         and change slot variable type from long * to int64_t *.
16877         (insert_operand_rank): Change rank parameter type from long to
16878         int64_t.
16879         (get_rank): Change return type and rank variable type from long to
16880         int64_t.  Use PRId64 instead of ld to print the rank.
16881         (init_reassoc): Change rank variable type from long to int64_t
16882         and adjust correspondingly bb_rank and operand_rank initialization.
16883
16884 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16885
16886         PR tree-optimization/96928
16887         * tree-ssa-phiopt.c (xor_replacement): New function.
16888         (tree_ssa_phiopt_worker): Call it.
16889
16890 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16891
16892         PR tree-optimization/96930
16893         * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
16894         from narrower value which has the same type as 1 << B, perform
16895         the right shift on the narrower value followed by extension.
16896
16897 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16898
16899         PR tree-optimization/96239
16900         * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
16901         function.
16902         (get_status_for_store_merging): Don't return BB_INVALID for blocks
16903         with potential bswap optimizable CONSTRUCTORs.
16904         (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
16905         if possible.
16906
16907 2021-01-05  Richard Biener  <rguenther@suse.de>
16908
16909         PR tree-optimization/98381
16910         * tree.c (vector_element_bits): Properly compute bool vector
16911         element size.
16912         * tree-vect-loop.c (vectorizable_live_operation): Properly
16913         compute the last lane bit offset.
16914
16915 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
16916
16917         PR target/98522
16918         * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
16919         Clear the top 64 bytes of the input XMM register.
16920         (sse_cvttps2pi): Ditto.
16921
16922 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
16923
16924         PR target/98521
16925         * config/i386/xopintrin.h (_mm256_cmov_si256): New.
16926
16927 2021-01-05  H.J. Lu  <hjl.tools@gmail.com>
16928
16929         PR target/98495
16930         * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
16931         short first.
16932
16933 2021-01-05  Claudiu Zissulescu  <claziss@synopsys.com>
16934
16935         * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
16936         (umaddsidi4_split): Likewise.
16937
16938 2021-01-05  liuhongt  <hongtao.liu@intel.com>
16939
16940         PR target/98461
16941         * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
16942         define_insn_and_split for zero_extend of subreg HI of pmovskb
16943         result.
16944         (*sse2_pmovskb_zexthisi): Add new combine splitters for
16945         zero_extend of not of subreg HI of pmovskb result.
16946
16947 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
16948
16949         PR target/97269
16950         * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
16951         nested in CONSTs.
16952         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
16953         convert_memory_address to convert symbolic immediates to ptr_mode
16954         before forcing them to memory.
16955
16956 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
16957
16958         PR rtl-optimization/97144
16959         * recog.c (constrain_operands): Initialize matching_operand
16960         for each alternative, rather than only doing it once.
16961
16962 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
16963
16964         PR rtl-optimization/98403
16965         * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
16966         why we don't remove call clobbers.
16967         (function_info::apply_changes_to_insn): Don't attempt to add
16968         call clobbers here.
16969
16970 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
16971
16972         PR tree-optimization/98371
16973         * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
16974         (vect_analyze_loop): If an epilogue loop appears to be cheaper
16975         than the main loop, re-analyze it as a main loop before adopting
16976         it as a main loop.
16977
16978 2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16979
16980         PR c++/98316
16981         * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
16982         * aclocal.m4, configure: Regenerate.
16983         * Makefile.in (NETLIBS): Define.
16984         (BACKEND): Remove $(CODYLIB).
16985
16986 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16987
16988         PR rtl-optimization/98334
16989         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
16990         Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
16991
16992 2021-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16993
16994         * tree-inline.c (expand_call_inline): Restore input_location.
16995         Return result from recursive call.
16996
16997 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
16998
16999         PR tree-optimization/95401
17000         * config/aarch64/aarch64-sve-builtins.cc
17001         (gimple_folder::load_store_cookie): Use bits rather than bytes
17002         for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
17003         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
17004         * tree-vect-stmts.c (vectorizable_store): Likewise.
17005         (vectorizable_load): Likewise.
17006
17007 2021-01-04  Richard Biener  <rguenther@suse.de>
17008
17009         PR tree-optimization/98308
17010         * tree-vect-stmts.c (vectorizable_load): Set invariant mask
17011         SLP vectype.
17012
17013 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
17014
17015         PR tree-optimization/95771
17016         * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
17017         with precision smaller than int's precision and types with precision
17018         twice as large as long long.  Formatting fixes.
17019
17020 2021-01-04  Richard Biener  <rguenther@suse.de>
17021
17022         PR tree-optimization/98464
17023         * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
17024         (vn_valueize_wrapper): ... this.  Temporarily adjust vn_context_bb.
17025         (process_bb): Adjust.
17026
17027 2021-01-04  Matthew Malcomson  <matthew.malcomson@arm.com>
17028
17029         PR other/98437
17030         * doc/invoke.texi (-fsanitize=address): Fix wording describing
17031         clash with -fsanitize=hwaddress.
17032
17033 2021-01-04  Richard Biener  <rguenther@suse.de>
17034
17035         PR tree-optimization/98282
17036         * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
17037         invariants as VN_NARY.
17038
17039 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
17040
17041         PR target/89057
17042         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
17043         aarch64_simd_reg_or_zero for operand 2.  Use the combinez patterns
17044         to handle zero operands.
17045
17046 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
17047
17048         * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
17049         (offset_6bit_unsigned_scaled_p): Fix typo in comment.
17050         (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
17051         [-32, 31].
17052
17053 2021-01-04  Richard Biener  <rguenther@suse.de>
17054
17055         PR tree-optimization/98393
17056         * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
17057         when hitting the limit.
17058
17059 2021-01-04  Richard Biener  <rguenther@suse.de>
17060
17061         PR tree-optimization/98291
17062         * tree-vect-loop.c (vectorizable_reduction): Bypass
17063         associativity check for SLP reductions with VF 1.
17064
17065 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
17066
17067         PR tree-optimization/96782
17068         * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
17069
17070 2021-01-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17071
17072         * collect-utils.c (collect_execute): Check dumppfx.
17073         * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
17074         to collect_execute.
17075         (do_link): Add new parameter atsuffix.
17076         (main): Handle -dumpdir option.  Skip one argument for
17077         -o, -isystem and -B options.
17078         * gcc.c (make_at_file): New helper function.
17079         (close_at_file): Use it.
17080
17081 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
17082
17083         * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
17084         Amend handling for LD64_VERSION fallback defaults.
17085
17086 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
17087
17088         * config.gcc: Compute default version information
17089         from the configured target.  Likewise defaults for
17090         ld64.
17091         * config/darwin10.h: Removed.
17092         * config/darwin12.h: Removed.
17093         * config/darwin9.h: Removed.
17094         * config/rs6000/darwin8.h: Removed.
17095
17096 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
17097
17098         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
17099
17100 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
17101
17102         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
17103         * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
17104
17105 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
17106
17107         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
17108         here...
17109         * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
17110
17111 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
17112
17113         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
17114         for the Darwin10 unwinder stub from here ...
17115         * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
17116
17117 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
17118
17119         * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
17120         (ASM_DEBUG_SPEC):Only define if the assembler supports
17121         stabs.
17122         (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
17123         (DARWIN_PREFER_DWARF): Define.
17124         * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
17125         (DARWIN_PREFER_DWARF): Likewise
17126         (DSYMUTIL_SPEC): Likewise.
17127         (COLLECT_RUN_DSYMUTIL): Likewise.
17128         (ASM_DEBUG_SPEC): Likewise.
17129         (ASM_DEBUG_OPTION_SPEC): Likewise.
17130
17131 2021-01-02  Jan Hubicka  <jh@suse.cz>
17132
17133         * cfg.c (free_block): ggc_free bb.
17134
17135 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
17136
17137         * gcc.c (process_command): Update copyright notice dates.
17138         * gcov-dump.c (print_version): Ditto.
17139         * gcov.c (print_version): Ditto.
17140         * gcov-tool.c (print_version): Ditto.
17141         * gengtype.c (create_file): Ditto.
17142         * doc/cpp.texi: Bump @copying's copyright year.
17143         * doc/cppinternals.texi: Ditto.
17144         * doc/gcc.texi: Ditto.
17145         * doc/gccint.texi: Ditto.
17146         * doc/gcov.texi: Ditto.
17147         * doc/install.texi: Ditto.
17148         * doc/invoke.texi: Ditto.
17149
17150 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
17151
17152         * ChangeLog-2020: Rotate ChangeLog.  New file.
17153
17154 \f
17155 Copyright (C) 2021 Free Software Foundation, Inc.
17156
17157 Copying and distribution of this file, with or without modification,
17158 are permitted in any medium without royalty provided the copyright
17159 notice and this notice are preserved.