Daily bump.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2021-07-23  Jakub Jelinek  <jakub@redhat.com>
2
3         PR rtl-optimization/101562
4         * expmed.c (store_integral_bit_field): Only use movstrict_optab
5         if the operand isn't paradoxical.
6
7 2021-07-23  Aldy Hernandez  <aldyh@redhat.com>
8
9         * gimple-array-bounds.h (class array_bounds_checker): Change
10         ranges type to range_query.
11
12 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
13
14         * config/aarch64/arm_neon.h (vst1_s64_x2): Use
15         __builtin_memcpy instead of constructing
16         __builtin_aarch64_simd_oi one vector at a time.
17         (vst1_u64_x2): Likewise.
18         (vst1_f64_x2): Likewise.
19         (vst1_s8_x2): Likewise.
20         (vst1_p8_x2): Likewise.
21         (vst1_s16_x2): Likewise.
22         (vst1_p16_x2): Likewise.
23         (vst1_s32_x2): Likewise.
24         (vst1_u8_x2): Likewise.
25         (vst1_u16_x2): Likewise.
26         (vst1_u32_x2): Likewise.
27         (vst1_f16_x2): Likewise.
28         (vst1_f32_x2): Likewise.
29         (vst1_p64_x2): Likewise.
30         (vst1q_s8_x2): Likewise.
31         (vst1q_p8_x2): Likewise.
32         (vst1q_s16_x2): Likewise.
33         (vst1q_p16_x2): Likewise.
34         (vst1q_s32_x2): Likewise.
35         (vst1q_s64_x2): Likewise.
36         (vst1q_u8_x2): Likewise.
37         (vst1q_u16_x2): Likewise.
38         (vst1q_u32_x2): Likewise.
39         (vst1q_u64_x2): Likewise.
40         (vst1q_f16_x2): Likewise.
41         (vst1q_f32_x2): Likewise.
42         (vst1q_f64_x2): Likewise.
43         (vst1q_p64_x2): Likewise.
44
45 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
46
47         * config/aarch64/arm_neon.h (vst1_s64_x3): Use
48         __builtin_memcpy instead of constructing
49         __builtin_aarch64_simd_ci one vector at a time.
50         (vst1_u64_x3): Likewise.
51         (vst1_f64_x3): Likewise.
52         (vst1_s8_x3): Likewise.
53         (vst1_p8_x3): Likewise.
54         (vst1_s16_x3): Likewise.
55         (vst1_p16_x3): Likewise.
56         (vst1_s32_x3): Likewise.
57         (vst1_u8_x3): Likewise.
58         (vst1_u16_x3): Likewise.
59         (vst1_u32_x3): Likewise.
60         (vst1_f16_x3): Likewise.
61         (vst1_f32_x3): Likewise.
62         (vst1_p64_x3): Likewise.
63         (vst1q_s8_x3): Likewise.
64         (vst1q_p8_x3): Likewise.
65         (vst1q_s16_x3): Likewise.
66         (vst1q_p16_x3): Likewise.
67         (vst1q_s32_x3): Likewise.
68         (vst1q_s64_x3): Likewise.
69         (vst1q_u8_x3): Likewise.
70         (vst1q_u16_x3): Likewise.
71         (vst1q_u32_x3): Likewise.
72         (vst1q_u64_x3): Likewise.
73         (vst1q_f16_x3): Likewise.
74         (vst1q_f32_x3): Likewise.
75         (vst1q_f64_x3): Likewise.
76         (vst1q_p64_x3): Likewise.
77
78 2021-07-23  H.J. Lu  <hjl.tools@gmail.com>
79
80         PR target/101504
81         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): Don't return
82         hard register when LRA is in progress.
83
84 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
85
86         * config/aarch64/arm_neon.h (vst1_s8_x4): Use
87         __builtin_memcpy instead of using a union.
88         (vst1q_s8_x4): Likewise.
89         (vst1_s16_x4): Likewise.
90         (vst1q_s16_x4): Likewise.
91         (vst1_s32_x4): Likewise.
92         (vst1q_s32_x4): Likewise.
93         (vst1_u8_x4): Likewise.
94         (vst1q_u8_x4): Likewise.
95         (vst1_u16_x4): Likewise.
96         (vst1q_u16_x4): Likewise.
97         (vst1_u32_x4): Likewise.
98         (vst1q_u32_x4): Likewise.
99         (vst1_f16_x4): Likewise.
100         (vst1q_f16_x4): Likewise.
101         (vst1_f32_x4): Likewise.
102         (vst1q_f32_x4): Likewise.
103         (vst1_p8_x4): Likewise.
104         (vst1q_p8_x4): Likewise.
105         (vst1_p16_x4): Likewise.
106         (vst1q_p16_x4): Likewise.
107         (vst1_s64_x4): Likewise.
108         (vst1_u64_x4): Likewise.
109         (vst1_p64_x4): Likewise.
110         (vst1q_s64_x4): Likewise.
111         (vst1q_u64_x4): Likewise.
112         (vst1q_p64_x4): Likewise.
113         (vst1_f64_x4): Likewise.
114         (vst1q_f64_x4): Likewise.
115
116 2021-07-23  Jonathan Wrightt  <jonathan.wright@arm.com>
117
118         * config/aarch64/arm_neon.h (vst2_s64): Use __builtin_memcpy
119         instead of constructing __builtin_aarch64_simd_oi one vector
120         at a time.
121         (vst2_u64): Likewise.
122         (vst2_f64): Likewise.
123         (vst2_s8): Likewise.
124         (vst2_p8): Likewise.
125         (vst2_s16): Likewise.
126         (vst2_p16): Likewise.
127         (vst2_s32): Likewise.
128         (vst2_u8): Likewise.
129         (vst2_u16): Likewise.
130         (vst2_u32): Likewise.
131         (vst2_f16): Likewise.
132         (vst2_f32): Likewise.
133         (vst2_p64): Likewise.
134         (vst2q_s8): Likewise.
135         (vst2q_p8): Likewise.
136         (vst2q_s16): Likewise.
137         (vst2q_p16): Likewise.
138         (vst2q_s32): Likewise.
139         (vst2q_s64): Likewise.
140         (vst2q_u8): Likewise.
141         (vst2q_u16): Likewise.
142         (vst2q_u32): Likewise.
143         (vst2q_u64): Likewise.
144         (vst2q_f16): Likewise.
145         (vst2q_f32): Likewise.
146         (vst2q_f64): Likewise.
147         (vst2q_p64): Likewise.
148
149 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
150
151         * config/aarch64/arm_neon.h (vst3_s64): Use __builtin_memcpy
152         instead of constructing __builtin_aarch64_simd_ci one vector
153         at a time.
154         (vst3_u64): Likewise.
155         (vst3_f64): Likewise.
156         (vst3_s8): Likewise.
157         (vst3_p8): Likewise.
158         (vst3_s16): Likewise.
159         (vst3_p16): Likewise.
160         (vst3_s32): Likewise.
161         (vst3_u8): Likewise.
162         (vst3_u16): Likewise.
163         (vst3_u32): Likewise.
164         (vst3_f16): Likewise.
165         (vst3_f32): Likewise.
166         (vst3_p64): Likewise.
167         (vst3q_s8): Likewise.
168         (vst3q_p8): Likewise.
169         (vst3q_s16): Likewise.
170         (vst3q_p16): Likewise.
171         (vst3q_s32): Likewise.
172         (vst3q_s64): Likewise.
173         (vst3q_u8): Likewise.
174         (vst3q_u16): Likewise.
175         (vst3q_u32): Likewise.
176         (vst3q_u64): Likewise.
177         (vst3q_f16): Likewise.
178         (vst3q_f32): Likewise.
179         (vst3q_f64): Likewise.
180         (vst3q_p64): Likewise.
181
182 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
183
184         * config/aarch64/arm_neon.h (vst4_s64): Use __builtin_memcpy
185         instead of constructing __builtin_aarch64_simd_xi one vector
186         at a time.
187         (vst4_u64): Likewise.
188         (vst4_f64): Likewise.
189         (vst4_s8): Likewise.
190         (vst4_p8): Likewise.
191         (vst4_s16): Likewise.
192         (vst4_p16): Likewise.
193         (vst4_s32): Likewise.
194         (vst4_u8): Likewise.
195         (vst4_u16): Likewise.
196         (vst4_u32): Likewise.
197         (vst4_f16): Likewise.
198         (vst4_f32): Likewise.
199         (vst4_p64): Likewise.
200         (vst4q_s8): Likewise.
201         (vst4q_p8): Likewise.
202         (vst4q_s16): Likewise.
203         (vst4q_p16): Likewise.
204         (vst4q_s32): Likewise.
205         (vst4q_s64): Likewise.
206         (vst4q_u8): Likewise.
207         (vst4q_u16): Likewise.
208         (vst4q_u32): Likewise.
209         (vst4q_u64): Likewise.
210         (vst4q_f16): Likewise.
211         (vst4q_f32): Likewise.
212         (vst4q_f64): Likewise.
213         (vst4q_p64): Likewise.
214
215 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
216
217         * config/aarch64/arm_neon.h (vtbx4_s8): Use __builtin_memcpy
218         instead of constructing __builtin_aarch64_simd_oi one vector
219         at a time.
220         (vtbx4_u8): Likewise.
221         (vtbx4_p8): Likewise.
222
223 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
224
225         * config/aarch64/arm_neon.h (vtbl3_s8): Use __builtin_memcpy
226         instead of constructing __builtin_aarch64_simd_oi one vector
227         at a time.
228         (vtbl3_u8): Likewise.
229         (vtbl3_p8): Likewise.
230         (vtbl4_s8): Likewise.
231         (vtbl4_u8): Likewise.
232         (vtbl4_p8): Likewise.
233
234 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
235
236         * config/aarch64/arm_neon.h (vqtbx2_s8): Use __builtin_memcpy
237         instead of constructing __builtin_aarch64_simd_oi one vector
238         at a time.
239         (vqtbx2_u8): Likewise.
240         (vqtbx2_p8): Likewise.
241         (vqtbx2q_s8): Likewise.
242         (vqtbx2q_u8): Likewise.
243         (vqtbx2q_p8): Likewise.
244         (vqtbx3_s8): Use __builtin_memcpy instead of constructing
245         __builtin_aarch64_simd_ci one vector at a time.
246         (vqtbx3_u8): Likewise.
247         (vqtbx3_p8): Likewise.
248         (vqtbx3q_s8): Likewise.
249         (vqtbx3q_u8): Likewise.
250         (vqtbx3q_p8): Likewise.
251         (vqtbx4_s8): Use __builtin_memcpy instead of constructing
252         __builtin_aarch64_simd_xi one vector at a time.
253         (vqtbx4_u8): Likewise.
254         (vqtbx4_p8): Likewise.
255         (vqtbx4q_s8): Likewise.
256         (vqtbx4q_u8): Likewise.
257         (vqtbx4q_p8): Likewise.
258
259 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
260
261         * config/aarch64/arm_neon.h (vqtbl2_s8): Use __builtin_memcpy
262         instead of constructing __builtin_aarch64_simd_oi one vector
263         at a time.
264         (vqtbl2_u8): Likewise.
265         (vqtbl2_p8): Likewise.
266         (vqtbl2q_s8): Likewise.
267         (vqtbl2q_u8): Likewise.
268         (vqtbl2q_p8): Likewise.
269         (vqtbl3_s8): Use __builtin_memcpy instead of constructing
270         __builtin_aarch64_simd_ci one vector at a time.
271         (vqtbl3_u8): Likewise.
272         (vqtbl3_p8): Likewise.
273         (vqtbl3q_s8): Likewise.
274         (vqtbl3q_u8): Likewise.
275         (vqtbl3q_p8): Likewise.
276         (vqtbl4_s8): Use __builtin_memcpy instead of constructing
277         __builtin_aarch64_simd_xi one vector at a time.
278         (vqtbl4_u8): Likewise.
279         (vqtbl4_p8): Likewise.
280         (vqtbl4q_s8): Likewise.
281         (vqtbl4q_u8): Likewise.
282         (vqtbl4q_p8): Likewise.
283
284 2021-07-23  Haochen Gui  <guihaoc@gcc.gnu.org>
285
286         PR target/100952
287         * config/rs6000/rs6000.md (cstore<mode>4): Fix wrong fall through.
288
289 2021-07-22  Andrew Pinski  <apinski@marvell.com>
290
291         PR tree-optimization/10153
292         * tree-tailcall.c (create_tailcall_accumulator):
293         Don't call fold_convert as the type should be correct already.
294         (tree_optimize_tail_calls_1): Use build_{one,zero}_cst instead
295         of integer_{one,zero}_node for the call of create_tailcall_accumulator.
296
297 2021-07-22  Aldy Hernandez  <aldyh@redhat.com>
298
299         * gimple-range-cache.cc (non_null_ref::adjust_range): Replace
300         varying_p check for null/non-null check.
301
302 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
303
304         PR tree-optimization/101511
305         * value-relation.cc (relation_oracle::query_relation): Check if ssa1
306         is in ssa2's equiv set, and don't trap if so.
307
308 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
309
310         PR tree-optimization/101497
311         * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Check
312         for undefined.
313
314 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
315
316         PR tree-optimization/101496
317         * vr-values.c (simplify_using_ranges::fold_cond): Call range_of_stmt
318         first, then vrp_visit_cond_Stmt.
319
320 2021-07-22  liuhongt  <hongtao.liu@intel.com>
321
322         * config/i386/i386-expand.c
323         (ix86_broadcast_from_integer_constant): Rename to ..
324         (ix86_broadcast_from_constant): .. this, and extend it to
325         handle float mode.
326         (ix86_expand_vector_move): Extend to float mode.
327         * config/i386/i386-features.c
328         (replace_constant_pool_with_broadcast): Remove.
329         (remove_partial_avx_dependency_gate): Ditto.
330         (constant_pool_broadcast): Ditto.
331         (class pass_constant_pool_broadcast): Ditto.
332         (make_pass_constant_pool_broadcast): Ditto.
333         (remove_partial_avx_dependency): Adjust gate.
334         * config/i386/i386-passes.def: Remove pass_constant_pool_broadcast.
335         * config/i386/i386-protos.h
336         (make_pass_constant_pool_broadcast): Remove.
337
338 2021-07-22  liuhongt  <hongtao.liu@intel.com>
339
340         * config/i386/constraints.md (Wb): New constraint.
341         (Ww): Ditto.
342         * config/i386/i386.md (*ashlhi3_1): Extend to avx512 mask
343         shift.
344         (*ashlqi3_1): Ditto.
345         (*<insn><mode>3_1): Split to ..
346         (*ashr<mode>3_1): this, ...
347         (*lshr<mode>3_1): and this, also extend this pattern to avx512
348         mask registers.
349         (*<insn><mode>3_1): Split to ..
350         (*ashr<mode>3_1): this, ...
351         (*lshrqi3_1): and this, also extend this pattern to avx512
352         mask registers.
353         (*lshrhi3_1): And this, also extend this pattern to avx512
354         mask registers.
355         * config/i386/sse.md (k<code><mode>): New define_split after
356         it to convert generic shift pattern to mask shift ones.
357
358 2021-07-21  Thomas Schwinge  <thomas@codesourcery.com>
359             Joseph Myers  <joseph@codesourcery.com>
360             Cesar Philippidis  <cesar@codesourcery.com>
361
362         * tree-core.h (omp_clause_code): Add 'OMP_CLAUSE_NOHOST'.
363         * tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1):
364         Handle it.
365         * tree-pretty-print.c (dump_omp_clause): Likewise.
366         * omp-general.c (oacc_verify_routine_clauses): Likewise.
367         * gimplify.c (gimplify_scan_omp_clauses)
368         (gimplify_adjust_omp_clauses): Likewise.
369         * tree-nested.c (convert_nonlocal_omp_clauses)
370         (convert_local_omp_clauses): Likewise.
371         * omp-low.c (scan_sharing_clauses): Likewise.
372         * omp-offload.c (execute_oacc_device_lower): Update.
373
374 2021-07-21  Martin Sebor  <msebor@redhat.com>
375
376         * tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment.
377
378 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
379
380         * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table):
381         Implement.
382
383 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
384
385         * config/rs6000/rs6000-gen-builtins.c (write_fntype): New
386         callback function.
387         (write_fntype_init): New stub function.
388         (write_init_bif_table): Likewise.
389         (write_init_ovld_table): New function.
390         (write_init_file): Implement.
391
392 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
393
394         * config/rs6000/rs6000-gen-builtins.c
395         (write_autogenerated_header): New function.
396         (write_decls): Likewise.
397         (write_extern_fntype): New callback function.
398         (write_header_file): Implement.
399
400 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
401
402         * config/rs6000/rs6000-gen-builtins.c (write_defines_file):
403         Implement.
404
405 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
406
407         * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New
408         function.
409         (complete_base_type): Likewise.
410         (construct_fntype_id): Likewise.
411         (parse_bif_entry): Call contruct_fntype_id.
412         (parse_ovld_entry): Likewise.
413
414 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
415
416         * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct.
417         (MAXOVLDSTANZAS): New macro.
418         (ovld_stanzas): New variable.
419         (curr_ovld_stanza): Likewise.
420         (MAXOVLDS): New macro.
421         (ovlddata): New struct.
422         (ovlds): New variable.
423         (curr_ovld): Likewise.
424         (max_ovld_args): Likewise.
425         (parse_ovld_entry): New function.
426         (parse_ovld_stanza): Likewise.
427         (parse_ovld): Implement.
428
429 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
430
431         * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs):
432         Implement.
433
434 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
435
436         * config/rs6000/rs6000-gen-builtins.c (parse_args): New function.
437         (parse_prototype): Implement.
438
439 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
440
441         * config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum.
442         (curr_bif_stanza): New variable.
443         (stanza_entry): New struct.
444         (stanza_map): New initialized variable.
445         (enable_string): Likewise.
446         (fnkinds): New enum.
447         (typelist): New struct.
448         (attrinfo): Likewise.
449         (MAXRESTROPNDS): New macro.
450         (prototype): New struct.
451         (MAXBIFS): New macro.
452         (bifdata): New struct.
453         (bifs): New variable.
454         (curr_bif): Likewise.
455         (bif_order): Likewise.
456         (bif_index): Likewise.
457         (fatal): New function.
458         (stanza_name_to_stanza): Likewise.
459         (parse_bif_attrs): New stub function.
460         (parse_prototype): Likewise.
461         (parse_bif_entry): New function.
462         (parse_bif_stanza): Likewise.
463         (parse_bif): Implement.
464         (set_bif_order): New function.
465         (create_bif_order): Implement.
466
467 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
468
469         * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include.
470         (num_bifs): New variable.
471         (num_ovld_stanzas): Likewise.
472         (num_ovlds): Likewise.
473         (parse_codes): New enum.
474         (bif_rbt): New variable.
475         (ovld_rbt): Likewise.
476         (fntype_rbt): Likewise.
477         (bifo_rbt): Likewise.
478         (parse_bif): New stub function.
479         (create_bif_order): Likewise.
480         (parse_ovld): Likewise.
481         (write_header_file): Likewise.
482         (write_init_file): Likewise.
483         (write_defines_file): Likewise.
484         (delete_output_files): New function.
485         (main): Likewise.
486
487 2021-07-21  H.J. Lu  <hjl.tools@gmail.com>
488
489         PR target/101549
490         * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2
491         from CRC32 _builtin functions.
492
493 2021-07-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
494
495         * coverage.c (build_gcov_info_var_registration): Mark the object placed
496         in the linker set as referenced so that it does not get optimized away.
497
498 2021-07-21  Kito Cheng  <kito.cheng@sifive.com>
499
500         Revert:
501         2021-07-20  Kito Cheng  <kito.cheng@sifive.com>
502
503         * config.gcc (riscv*-*-*): Detect which python is available.
504
505 2021-07-21  Jakub Jelinek  <jakub@redhat.com>
506
507         PR middle-end/101535
508         * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA
509         contexts in which decl isn't privatized and for ORT_TARGET return
510         false if decl is mapped.
511
512 2021-07-21  Richard Sandiford  <richard.sandiford@arm.com>
513
514         * gimple-loop-jam.c: Include tree-ssa-sccvn.h.
515         (tree_loop_unroll_and_jam): Run value-numbering on a loop that
516         has been successfully unrolled.
517
518 2021-07-21  Richard Sandiford  <richard.sandiford@arm.com>
519
520         * tree-ssa-loop-manip.c (determine_exit_conditions): Return a null
521         exit condition if no tail loop is needed, and if the original exit
522         condition should therefore be kept as-is.
523         (tree_transform_and_unroll_loop): Handle that case here too.
524
525 2021-07-21  Kewen Lin  <linkw@linux.ibm.com>
526
527         * tree-data-ref.c (free_dependence_relations): Adjust to pass vec
528         by reference.
529         (free_data_refs): Likewise.
530         * tree-data-ref.h (free_dependence_relations): Likewise.
531         (free_data_refs): Likewise.
532         * tree-predcom.c (struct chain): Use auto_vec instead of vec for
533         members.
534         (struct component): Likewise.
535         (pcom_worker::pcom_worker): Adjust for auto_vec and renaming changes.
536         (pcom_worker::~pcom_worker): Likewise.
537         (pcom_worker::release_chain): Adjust as auto_vec changes.
538         (pcom_worker::loop): Rename to ...
539         (pcom_worker::m_loop): ... this.
540         (pcom_worker::datarefs): Rename to ...
541         (pcom_worker::m_datarefs): ... this.  Use auto_vec instead of vec.
542         (pcom_worker::dependences): Rename to ...
543         (pcom_worker::m_dependences): ... this.  Use auto_vec instead of vec.
544         (pcom_worker::chains): Rename to ...
545         (pcom_worker::m_chains): ... this.  Use auto_vec instead of vec.
546         (pcom_worker::looparound_phis): Rename to ...
547         (pcom_worker::m_looparound_phis): ... this.  Use auto_vec instead of
548         vec.
549         (pcom_worker::cache): Rename to ...
550         (pcom_worker::m_cache): ... this.  Use auto_vec instead of vec.
551         (pcom_worker::release_chain): Adjust for auto_vec changes.
552         (pcom_worker::release_chains): Adjust for auto_vec and renaming
553         changes.
554         (release_component): Remove.
555         (release_components): Adjust for release_component removal.
556         (component_of): Adjust to use vec.
557         (merge_comps): Likewise.
558         (pcom_worker::aff_combination_dr_offset): Adjust for renaming changes.
559         (pcom_worker::determine_offset): Likewise.
560         (class comp_ptrs): Remove.
561         (pcom_worker::split_data_refs_to_components): Adjust for renaming
562         changes, for comp_ptrs removal with auto_vec.
563         (pcom_worker::suitable_component_p): Adjust for renaming changes.
564         (pcom_worker::filter_suitable_components): Adjust for release_component
565         removal.
566         (pcom_worker::valid_initializer_p): Adjust for renaming changes.
567         (pcom_worker::find_looparound_phi): Likewise.
568         (pcom_worker::add_looparound_copies): Likewise.
569         (pcom_worker::determine_roots_comp): Likewise.
570         (pcom_worker::single_nonlooparound_use): Likewise.
571         (pcom_worker::execute_pred_commoning_chain): Likewise.
572         (pcom_worker::execute_pred_commoning): Likewise.
573         (pcom_worker::try_combine_chains): Likewise.
574         (pcom_worker::prepare_initializers_chain): Likewise.
575         (pcom_worker::prepare_initializers): Likewise.
576         (pcom_worker::prepare_finalizers_chain): Likewise.
577         (pcom_worker::prepare_finalizers): Likewise.
578         (pcom_worker::tree_predictive_commoning_loop): Likewise.
579
580 2021-07-20  Martin Sebor  <msebor@redhat.com>
581
582         PR middle-end/101397
583         * builtins.c (gimple_call_return_array): Add argument.  Correct
584         offsets for memchr, mempcpy, stpcpy, and stpncpy.
585         (compute_objsize_r): Adjust offset computation for argument returning
586         built-ins.
587
588 2021-07-20  Martin Sebor  <msebor@redhat.com>
589
590         PR middle-end/101300
591         * tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins.
592
593 2021-07-20  Jeff Law  <jlaw@localhost.localdomain>
594
595         * function.c (assign_parm_setup_block): Use adjust_address instead
596         of change_address to preserve MEM_EXPR and friends.
597
598 2021-07-20  Martin Sebor  <msebor@redhat.com>
599
600         * cfgloop.h (single_likely_exit): Adjust by-value argument to
601         by-const-reference.
602         * cfgloopanal.c (single_likely_exit): Same.
603         * cgraph.h (struct cgraph_node): Same.
604         * cgraphclones.c (cgraph_node::create_virtual_clone): Same.
605         * genautomata.c (merge_states): Same.
606         * genextract.c (VEC_char_to_string): Same.
607         * genmatch.c (dt_node::gen_kids_1): Same.
608         (walk_captures): Adjust by-value argument to by-reference.
609         * gimple-ssa-store-merging.c (check_no_overlap): Adjust by-value argument
610         to by-const-reference.
611         * gimple.c (gimple_build_call_vec): Same.
612         (gimple_build_call_internal_vec): Same.
613         (gimple_build_switch): Same.
614         (sort_case_labels): Same.
615         (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
616         by-reference.
617         * gimple.h (gimple_build_call_vec): Adjust by-value argument to
618         by-const-reference.
619         (gimple_build_call_internal_vec): Same.
620         (gimple_build_switch): Same.
621         (sort_case_labels): Same.
622         (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
623         by-reference.
624         * haifa-sched.c (calc_priorities): Adjust by-value argument to
625         by-const-reference.
626         (sched_init_luids): Same.
627         (haifa_init_h_i_d): Same.
628         * ipa-cp.c (ipa_get_indirect_edge_target_1): Same.
629         (adjust_callers_for_value_intersection): Adjust by-value argument to
630         by-reference.
631         (find_more_scalar_values_for_callers_subset): Adjust by-value argument to
632         by-const-reference.
633         (find_more_contexts_for_caller_subset): Same.
634         (find_aggregate_values_for_callers_subset): Same.
635         (copy_useful_known_contexts): Same.
636         * ipa-fnsummary.c (remap_edge_summaries): Same.
637         (remap_freqcounting_predicate): Same.
638         * ipa-inline.c (add_new_edges_to_heap): Adjust by-value argument to
639         by-reference.
640         * ipa-predicate.c (predicate::remap_after_inlining): Adjust by-value argument
641         to by-const-reference.
642         * ipa-predicate.h (predicate::remap_after_inlining): Same.
643         * ipa-prop.c (ipa_find_agg_cst_for_param): Same.
644         * ipa-prop.h (ipa_find_agg_cst_for_param): Same.
645         * ira-build.c (ira_loop_tree_body_rev_postorder): Same.
646         * read-rtl.c (add_overload_instance): Same.
647         * rtl.h (native_decode_rtx): Same.
648         (native_decode_vector_rtx): Same.
649         * sched-int.h (sched_init_luids): Same.
650         (haifa_init_h_i_d): Same.
651         * simplify-rtx.c (native_decode_vector_rtx): Same.
652         (native_decode_rtx): Same.
653         * tree-call-cdce.c (gen_shrink_wrap_conditions): Same.
654         (shrink_wrap_one_built_in_call_with_conds): Same.
655         (shrink_wrap_conditional_dead_built_in_calls): Same.
656         * tree-data-ref.c (create_runtime_alias_checks): Same.
657         (compute_all_dependences): Same.
658         * tree-data-ref.h (compute_all_dependences): Same.
659         (create_runtime_alias_checks): Same.
660         (index_in_loop_nest): Same.
661         * tree-if-conv.c (mask_exists): Same.
662         * tree-loop-distribution.c (class loop_distribution): Same.
663         (loop_distribution::create_rdg_vertices): Same.
664         (dump_rdg_partitions): Same.
665         (debug_rdg_partitions): Same.
666         (partition_contains_all_rw): Same.
667         (loop_distribution::distribute_loop): Same.
668         * tree-parloops.c (oacc_entry_exit_ok_1): Same.
669         (oacc_entry_exit_single_gang): Same.
670         * tree-ssa-loop-im.c (hoist_memory_references): Same.
671         (loop_suitable_for_sm): Same.
672         * tree-ssa-loop-niter.c (bound_index): Same.
673         * tree-ssa-reassoc.c (update_ops): Same.
674         (swap_ops_for_binary_stmt): Same.
675         (rewrite_expr_tree): Same.
676         (rewrite_expr_tree_parallel): Same.
677         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Same.
678         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Same.
679         * tree-ssa-structalias.c (process_all_all_constraints): Same.
680         (make_constraints_to): Same.
681         (handle_lhs_call): Same.
682         (find_func_aliases_for_builtin_call): Same.
683         (sort_fieldstack): Same.
684         (check_for_overlaps): Same.
685         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Same.
686         (vect_create_cond_for_unequal_addrs): Same.
687         (vect_create_cond_for_lower_bounds): Same.
688         (vect_create_cond_for_alias_checks): Same.
689         * tree-vect-slp-patterns.c (vect_validate_multiplication): Same.
690         * tree-vect-slp.c (vect_analyze_slp_instance): Same.
691         (vect_make_slp_decision): Same.
692         (vect_slp_bbs): Same.
693         (duplicate_and_interleave): Same.
694         (vect_transform_slp_perm_load): Same.
695         (vect_schedule_slp): Same.
696         * tree-vectorizer.h (vect_transform_slp_perm_load): Same.
697         (vect_schedule_slp): Same.
698         (duplicate_and_interleave): Same.
699         * tree.c (build_vector_from_ctor): Same.
700         (build_vector): Same.
701         (check_vector_cst): Same.
702         (check_vector_cst_duplicate): Same.
703         (check_vector_cst_fill): Same.
704         (check_vector_cst_stepped): Same.
705         * tree.h (build_vector_from_ctor): Same.
706
707 2021-07-20  Jakub Jelinek  <jakub@redhat.com>
708
709         PR target/101384
710         * config/rs6000/rs6000-protos.h (easy_altivec_constant): Change return
711         type from bool to int.
712         * config/rs6000/rs6000.c (vspltis_constant): Fix up handling the
713         EASY_VECTOR_MSB case if either step or copies is not 1.
714         (vspltis_shifted): Fix comment typo.
715         (easy_altivec_constant): Change return type from bool to int, instead
716         of returning true return byte size of the element mode that should be
717         used to synthetize the constant.
718         * config/rs6000/predicates.md (easy_vector_constant_msb): Require
719         that vspltis_shifted is 0, handle the case where easy_altivec_constant
720         assumes using different vector mode from CONST_VECTOR's mode.
721         * config/rs6000/altivec.md (easy_vector_constant_msb splitter): Use
722         easy_altivec_constant to determine mode in which -1 >> -1 should be
723         performed, use rs6000_expand_vector_init instead of gen_vec_initv4sisi.
724
725 2021-07-20  Richard Biener  <rguenther@suse.de>
726
727         PR debug/101473
728         * dwarf2out.h (dwarf_file_data): Add key member.
729         * dwarf2out.c (dwarf_file_hasher::equal): Compare key.
730         (dwarf_file_hasher::hash): Hash key.
731         (lookup_filename): Remap the filename and store it in the
732         filename member of dwarf_file_data when creating a new
733         dwarf_file_data.
734         (file_name_acquire): Do not remap the filename again.
735         (maybe_emit_file): Likewise.
736
737 2021-07-20  Jonathan Wright  <jonathan.wright@arm.com>
738
739         * config/aarch64/aarch64-simd-builtins.def: Use two variant
740         generators for all TBL/TBX intrinsics and rename to
741         consistent forms: qtbl[1234] or qtbx[1234].
742         * config/aarch64/aarch64-simd.md (aarch64_tbl1<mode>):
743         Rename to...
744         (aarch64_qtbl1<mode>): This.
745         (aarch64_tbx1<mode>): Rename to...
746         (aarch64_qtbx1<mode>): This.
747         (aarch64_tbl2v16qi): Delete.
748         (aarch64_tbl3<mode>): Rename to...
749         (aarch64_qtbl2<mode>): This.
750         (aarch64_tbx4<mode>): Rename to...
751         (aarch64_qtbx2<mode>): This.
752         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Use
753         renamed qtbl1 and qtbl2 RTL patterns.
754         * config/aarch64/arm_neon.h (vqtbl1_p8): Use renamed qtbl1
755         RTL pattern.
756         (vqtbl1_s8): Likewise.
757         (vqtbl1_u8): Likewise.
758         (vqtbl1q_p8): Likewise.
759         (vqtbl1q_s8): Likewise.
760         (vqtbl1q_u8): Likewise.
761         (vqtbx1_s8): Use renamed qtbx1 RTL pattern.
762         (vqtbx1_u8): Likewise.
763         (vqtbx1_p8): Likewise.
764         (vqtbx1q_s8): Likewise.
765         (vqtbx1q_u8): Likewise.
766         (vqtbx1q_p8): Likewise.
767         (vtbl1_s8): Use renamed qtbl1 RTL pattern.
768         (vtbl1_u8): Likewise.
769         (vtbl1_p8): Likewise.
770         (vtbl2_s8): Likewise
771         (vtbl2_u8): Likewise.
772         (vtbl2_p8): Likewise.
773         (vtbl3_s8): Use renamed qtbl2 RTL pattern.
774         (vtbl3_u8): Likewise.
775         (vtbl3_p8): Likewise.
776         (vtbl4_s8): Likewise.
777         (vtbl4_u8): Likewise.
778         (vtbl4_p8): Likewise.
779         (vtbx2_s8): Use renamed qtbx2 RTL pattern.
780         (vtbx2_u8): Likewise.
781         (vtbx2_p8): Likewise.
782         (vqtbl2_s8): Use renamed qtbl2 RTL pattern.
783         (vqtbl2_u8): Likewise.
784         (vqtbl2_p8): Likewise.
785         (vqtbl2q_s8): Likewise.
786         (vqtbl2q_u8): Likewise.
787         (vqtbl2q_p8): Likewise.
788         (vqtbx2_s8): Use renamed qtbx2 RTL pattern.
789         (vqtbx2_u8): Likewise.
790         (vqtbx2_p8): Likewise.
791         (vqtbx2q_s8): Likewise.
792         (vqtbx2q_u8): Likewise.
793         (vqtbx2q_p8): Likewise.
794         (vtbx4_s8): Likewise.
795         (vtbx4_u8): Likewise.
796         (vtbx4_p8): Likewise.
797
798 2021-07-20  Uroš Bizjak  <ubizjak@gmail.com>
799
800         PR target/100182
801         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
802         Remove.
803         (define_peephole2 atomic_loaddi_fpu): Ditto.
804
805 2021-07-20  Kito Cheng  <kito.cheng@sifive.com>
806
807         * config.gcc (riscv*-*-*): Detect which python is available.
808
809 2021-07-20  Kewen Lin  <linkw@linux.ibm.com>
810
811         * config/rs6000/vsx.md (mulhs_<mode>): Rename to...
812         (smul<mode>3_highpart): ... this.
813         (mulhu_<mode>): Rename to...
814         (umul<mode>3_highpart): ... this.
815         * config/rs6000/rs6000-builtin.def (MULHS_V2DI, MULHS_V4SI,
816         MULHU_V2DI, MULHU_V4SI): Adjust.
817
818 2021-07-20  Kewen Lin  <linkw@linux.ibm.com>
819
820         PR tree-optimization/100696
821         * internal-fn.c (first_commutative_argument): Add info for IFN_MULH.
822         * internal-fn.def (IFN_MULH): New internal function.
823         * tree-vect-patterns.c (vect_recog_mulhs_pattern): Add support to
824         recog normal multiply highpart as IFN_MULH.
825         * config/i386/i386.c (ix86_add_stmt_cost): Adjust for combined
826         function CFN_MULH.
827
828 2021-07-19  Indu Bhagat  <indu.bhagat@oracle.com>
829
830         * config/elfos.h (CTF_DEBUGGING_INFO): New definition.
831         (BTF_DEBUGGING_INFO): Likewise.
832         * doc/tm.texi.in: Document the new macros.
833         * doc/tm.texi: Regenerated.
834         * toplev.c: Guard initialization of debug hooks.
835
836 2021-07-19  Indu Bhagat  <indu.bhagat@oracle.com>
837
838         * flags.h (ctf_debuginfo_p): New function declaration.
839         * opts.c (ctf_debuginfo_p): New function definition.
840
841 2021-07-19  Andrew Stubbs  <ams@codesourcery.com>
842
843         PR target/100208
844         * config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New.
845         (ASM_SPEC): Set -mattr for xnack and sram-ecc.
846         * config/gcn/gcn-opts.h (enum sram_ecc_type): New.
847         * config/gcn/gcn-valu.md: Add a warning comment.
848         * config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack.
849         (output_file_start): Add xnack and sram-ecc state to ".amdgcn_target".
850         * config/gcn/gcn.md: Add a warning comment.
851         * config/gcn/gcn.opt: Add -mxnack and -msram-ecc.
852         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove
853         SRAM-ECC flag.
854         (EF_AMDGPU_XNACK): New.
855         (EF_AMDGPU_SRAM_ECC): New.
856         (elf_flags): New.
857         (copy_early_debug_info): Use elf_flags.
858         (main): Handle -mxnack and -msram-ecc options.
859         * doc/invoke.texi: Document -mxnack and -msram-ecc.
860
861 2021-07-19  Andrew Pinski  <apinski@marvell.com>
862
863         PR target/101205
864         * config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ...
865         (*cs<neg_not_cs>3_uxtw_insn4): and extend to NEG_NOT.
866
867 2021-07-19  Richard Biener  <rguenther@suse.de>
868
869         PR tree-optimization/101505
870         * tree-vect-patterns.c (vect_determine_precisions): Walk
871         PHIs also for loop vectorization.
872
873 2021-07-19  Richard Biener  <rguenther@suse.de>
874
875         * gimple.h (gimple_expr_type): Remove.
876         * doc/gimple.texi: Remove gimple_expr_type documentation.
877
878 2021-07-19  Richard Biener  <rguenther@suse.de>
879
880         * tree-ssa-sccvn.c (vn_reference_eq): Handle NULL vr->type.
881         (ao_ref_init_from_vn_reference): Likewise.
882         (fully_constant_reference): Likewise.
883         (vn_reference_lookup_call): Do not set vr->type to random
884         values.
885         * tree-ssa-pre.c (compute_avail): Do not try to PRE calls
886         without a value.
887         * tree-vect-generic.c (expand_vector_piecewise): Pass in
888         whether we expanded parallel.
889         (expand_vector_parallel): Adjust.
890         (expand_vector_addition): Likewise.
891         (expand_vector_comparison): Likewise.
892         (expand_vector_operation): Likewise.
893         (expand_vector_scalar_condition): Likewise.
894         (expand_vector_conversion): Likewise.
895
896 2021-07-19  Richard Biener  <rguenther@suse.de>
897
898         * tree-vrp.c (register_edge_assert_for_2): Use the
899         type from the LHS.
900         (vrp_folder::fold_predicate_in): Likewise.
901         * vr-values.c (gimple_assign_nonzero_p): Likewise.
902         (vr_values::extract_range_from_comparison): Likewise.
903         (vr_values::extract_range_from_ubsan_builtin): Use the
904         type of the first operand.
905         (vr_values::extract_range_basic): Push down type
906         computation, use the appropriate LHS.
907         (vr_values::extract_range_from_assignment): Use the
908         type of the LHS.
909
910 2021-07-18  H.J. Lu  <hjl.tools@gmail.com>
911
912         PR target/101492
913         * common/config/i386/i386-common.c (ix86_handle_option): For
914         -mgeneral-regs-only, enable the GPR only instructions which are
915         enabled implicitly by SSE ISAs unless they have been disabled
916         explicitly.
917
918 2021-07-18  H.J. Lu  <hjl.tools@gmail.com>
919
920         PR target/101495
921         * config/i386/i386.c (ix86_check_avx_upper_stores): Moved before
922         ix86_avx_u128_mode_needed.
923         (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee
924         returns AVX register.
925
926 2021-07-17  Jan Hubicka  <hubicka@ucw.cz>
927
928         * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED.
929         (handle_const_call): Liekise
930         (handle_pure_call): Liekise
931
932 2021-07-17  Andrew MacLeod  <amacleod@redhat.com>
933
934         PR tree-optimization/96542
935         * range-op.cc (range_operator::wi_fold_in_parts): New.
936         (range_operator::fold_range): Call wi_fold_in_parts.
937         (operator_lshift::wi_fold): Fix broken lshift by [0,0].
938         * range-op.h (wi_fold_in_parts): Add prototype.
939
940 2021-07-16  David Malcolm  <dmalcolm@redhat.com>
941
942         * doc/analyzer.texi: Add __analyzer_dump_state.
943
944 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
945
946         * config/rs6000/rbtree.c: New file.
947         * config/rs6000/rbtree.h: New file.
948
949 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
950
951         * config/rs6000/rs6000-gen-builtins.c (restriction): New enum.
952         (typeinfo): Add restr field.
953         (match_bracketed_pair): New function.
954         (match_const_restriction): Implement.
955
956 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
957
958         * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement.
959
960 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
961
962         * config/rs6000/rs6000-gen-builtins.c (void_status): New enum.
963         (basetype): Likewise.
964         (typeinfo): Likewise.
965         (handle_pointer): New function.
966         (match_basetype): New stub function.
967         (match_const_restriction): Likewise.
968         (match_type): New function.
969
970 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
971
972         * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New
973         function.
974         (advance_line): Likewise.
975         (safe_inc_pos): Likewise.
976         (match_identifier): Likewise.
977         (match_integer): Likewise.
978         (match_to_right_bracket): Likewise.
979
980 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
981
982         * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable.
983         (ovld_file): Likewise.
984         (header_file): Likewise.
985         (init_file): Likewise.
986         (defines_file): Likewise.
987         (pgm_path): Likewise.
988         (bif_path): Likewise.
989         (ovld_path): Likewise.
990         (header_path): Likewise.
991         (init_path): Likewise.
992         (defines_path): Likewise.
993         (LINELEN): New macro.
994         (linebuf): New variable.
995         (line): Likewise.
996         (pos): Likewise.
997         (diag): Likewise.
998         (bif_diag): New function.
999         (ovld_diag): Likewise.
1000
1001 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1002
1003         * config/rs6000/rs6000-builtin-new.def: New.
1004         * config/rs6000/rs6000-overload.def: New.
1005
1006 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1007
1008         * config/rs6000/rs6000-gen-builtins.c: New.
1009
1010 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
1011
1012         * Makefile.in (EXTRA_GTYPE_DEPS): New variable.
1013         (s-gtype): Depend on EXTRA_GTYPE_DEPS.
1014         * gengtype-state.c (state_writer::write_state_file_list): Add a
1015         parameter to the fileslist expression for the number of build
1016         headers to scan.
1017         (read_state_files_list): Detect build headers and strip the
1018         initial "./" or ".\" from their names.
1019         * gengtype.c (build_headers): New global variable.
1020         (num_build_headers): Likewise.
1021         (open_base_files): Emit #include for each build header.
1022         (main): Detect and count build headers.
1023         * gengtype.h (build_headers): New extern variable.
1024         (num_build_headers): Likewise.
1025
1026 2021-07-16  Richard Biener   <rguenther@suse.de>
1027
1028         * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use
1029         the type of the LHS.
1030         (find_bswap_or_nop_1): Likewise.
1031         (find_bswap_or_nop): Likewise.
1032         * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust
1033         prototype.
1034         * tree-vect-data-refs.c (vect_get_smallest_scalar_type):
1035         Remove unused parameters, pass in the scalar type.  Fix
1036         internal store function handling.
1037         * tree-vect-stmts.c (vect_analyze_stmt): Remove assert.
1038         (vect_get_vector_types_for_stmt): Move down check for
1039         existing vector stmt after we've determined a scalar type.
1040         Pass down the used scalar type to vect_get_smallest_scalar_type.
1041         * tree-vect-generic.c (expand_vector_condition): Use
1042         the type of the LHS.
1043         (expand_vector_scalar_condition): Likewise.
1044         (expand_vector_operations_1): Likewise.
1045         * tree-vect-patterns.c (vect_widened_op_tree): Likewise.
1046         (vect_recog_dot_prod_pattern): Likewise.
1047         (vect_recog_sad_pattern): Likewise.
1048         (vect_recog_widen_op_pattern): Likewise.
1049         (vect_recog_widen_sum_pattern): Likewise.
1050         (vect_recog_mixed_size_cond_pattern): Likewise.
1051
1052 2021-07-16  Jan Hubicka  <hubicka@ucw.cz>
1053
1054         * ipa-modref.c (struct escape_entry): Use eaf_fleags_t.
1055         (dump_eaf_flags): Dump EAF_NOT_RETURNED
1056         (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions
1057         and EAF_NOT_RETURNED.
1058         (modref_summary::useful_p): Likewise.
1059         (modref_summary_lto::useful_p): Likewise.
1060         (struct) modref_summary_lto: Use eaf_fleags_t.
1061         (deref_flags): Handle EAF_NOT_RETURNED.
1062         (struct escape_point): Use min_flags.
1063         (modref_lattice::init): Add EAF_NOT_RETURNED.
1064         (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions
1065         (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return;
1066         handle call flags.
1067         (analyze_parms): Also analyze const functions; update conition on
1068         flags usefulness.
1069         (modref_write): Update streaming.
1070         (read_section): Update streaming.
1071         (remap_arg_flags): Use eaf_flags_t.
1072         (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED.
1073         * ipa-modref.h: (eaf_flags_t): New typedef.
1074         (struct modref_summary): Use eaf_flags_t.
1075         * tree-core.h (EAF_NOT_RETURNED): New constant.
1076
1077 2021-07-16  Richard Biener  <rguenther@suse.de>
1078
1079         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use
1080         the type of the LHS.
1081         (gimple_assign_nonnegative_warnv_p): Likewise.
1082         (gimple_call_nonnegative_warnv_p): Likewise.  Return false
1083         if the call has no LHS.
1084         * gimple.c (gimple_could_trap_p_1): Use the type of the LHS.
1085         * tree-eh.c (stmt_could_throw_1_p): Likewise.
1086         * tree-inline.c (insert_init_stmt): Likewise.
1087         * tree-ssa-loop-niter.c (get_val_for): Likewise.
1088         * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of
1089         the def.
1090         * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a
1091         gassign *.  Use the type of the lhs.
1092         (vn_nary_op_lookup_stmt): Adjust.
1093         (vn_nary_op_insert_stmt): Likewise.
1094
1095 2021-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
1096
1097         * config/s390/predicates.md (bras_sym_operand): Accept all
1098         functions in 64-bit mode, use UNSPEC_PLT31.
1099         (larl_operand): Use UNSPEC_PLT31.
1100         * config/s390/s390.c (s390_loadrelative_operand_p): Likewise.
1101         (legitimize_pic_address): Likewise.
1102         (s390_emit_tls_call_insn): Mark __tls_get_offset as function,
1103         use UNSPEC_PLT31.
1104         (s390_delegitimize_address): Use UNSPEC_PLT31.
1105         (s390_output_addr_const_extra): Likewise.
1106         (print_operand): Add @PLT to TLS calls, handle %K.
1107         (s390_function_profiler): Mark __fentry__/_mcount as function,
1108         use %K, use UNSPEC_PLT31.
1109         (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K.
1110         (s390_emit_call): Use UNSPEC_PLT31.
1111         (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function.
1112         * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT.
1113         (*movdi_64): Use %K.
1114         (reload_base_64): Likewise.
1115         (*sibcall_brc): Likewise.
1116         (*sibcall_brcl): Likewise.
1117         (*sibcall_value_brc): Likewise.
1118         (*sibcall_value_brcl): Likewise.
1119         (*bras): Likewise.
1120         (*brasl): Likewise.
1121         (*bras_r): Likewise.
1122         (*brasl_r): Likewise.
1123         (*bras_tls): Likewise.
1124         (*brasl_tls): Likewise.
1125         (main_base_64): Likewise.
1126         (reload_base_64): Likewise.
1127         (@split_stack_call<mode>): Likewise.
1128
1129 2021-07-16  Richard Biener  <rguenther@suse.de>
1130
1131         PR tree-optimization/101467
1132         * tree-vect-stmts.c (vect_gen_while): Properly guard
1133         make_temp_ssa_name usage.
1134
1135 2021-07-16  Cooper Qu  <cooper.qu@linux.alibaba.com>
1136
1137         * config.gcc: Don't use forked print-sysroot-suffix.sh and
1138         t-sysroot-suffix for C-SKY.
1139         * config/csky/print-sysroot-suffix.sh: Delete.
1140         * config/csky/t-csky-linux: Delete.
1141         * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES
1142         instead of CSKY_MULTILIB_DIRNAMES.
1143
1144 2021-07-16  Richard Biener  <rguenther@suse.de>
1145
1146         * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign
1147         conversion issues with the partial reduction of the reused
1148         vector accumulator.
1149
1150 2021-07-16  Richard Biener  <rguenther@suse.de>
1151
1152         * config/i386/i386-options.c (ix86_option_override_internal): Set
1153         param_vect_partial_vector_usage to zero if not set.
1154
1155 2021-07-15  Uroš Bizjak  <ubizjak@gmail.com>
1156
1157         PR target/101346
1158         * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode.
1159         (VALID_INT_MODE_P): Add SDmode and DDmode.
1160         Add TDmode for TARGET_64BIT.
1161         (VALID_DFP_MODE_P): Remove.
1162         * config/i386/i386.c (ix86_hard_regno_mode_ok):
1163         Do not use VALID_DFP_MODE_P.
1164
1165 2021-07-15  Andrew MacLeod  <amacleod@redhat.com>
1166
1167         * gimple-range-fold.cc (adjust_pointer_diff_expr): Use
1168         gimple_range_type.
1169         (fold_using_range::fold_stmt): Ditto.
1170         (fold_using_range::range_of_range_op): Ditto.
1171         (fold_using_range::range_of_phi): Ditto.
1172         (fold_using_range::range_of_call): Ditto.
1173         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
1174         (fold_using_range::range_of_builtin_call): Ditto.
1175         (fold_using_range::range_of_cond_expr): Ditto.
1176         * gimple-range-fold.h (gimple_range_type): New.
1177
1178 2021-07-15  Martin Sebor  <msebor@redhat.com>
1179
1180         PR middle-end/97027
1181         * tree-ssa-strlen.c (handle_assign): New function.
1182         (maybe_warn_overflow): Add argument.
1183         (nonzero_bytes_for_type): New function.
1184         (count_nonzero_bytes): Handle more tree types.  Call
1185         nonzero_bytes_for_tye.
1186         (count_nonzero_bytes): Handle types.
1187         (handle_store): Handle stores from function calls.
1188         (strlen_check_and_optimize_call): Move code to handle_assign.  Call
1189         it for assignments from function calls.
1190
1191 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
1192
1193         PR analyzer/95006
1194         PR analyzer/94713
1195         PR analyzer/94714
1196         * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value.
1197
1198 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
1199
1200         * doc/invoke.texi (-fdump-analyzer-exploded-paths): New.
1201
1202 2021-07-15  Martin Sebor  <msebor@redhat.com>
1203
1204         PR c/101289
1205         PR c/97548
1206         * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME.
1207         (operand_compare::verify_hash_value): Same.
1208         * tree-core.h (OEP_DECL_NAME): New.
1209
1210 2021-07-15  Martin Jambor  <mjambor@suse.cz>
1211
1212         * profile-count.h (profile_count::value): Change the return type to
1213         uint64_t.
1214         * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print
1215         statement.
1216         * tree-cfg.c (dump_function_to_file): Likewise.
1217
1218 2021-07-15  Bill Schmidt  <wschmidt@linux.ibm.com>
1219
1220         PR target/101129
1221         * config/rs6000/rs6000-p8swap.c (has_part_mult): New.
1222         (rs6000_analyze_swaps): Insns containing a subreg of a mult are
1223         not swappable.
1224
1225 2021-07-15  Richard Biener  <rguenther@suse.de>
1226
1227         * tree-vectorizer.h (vect_gen_while): Match up with
1228         vect_gen_while_not.
1229         * tree-vect-stmts.c (vect_gen_while): Adjust API to that
1230         of vect_gen_while_not.
1231         (vect_gen_while_not): Adjust.
1232         * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise.
1233
1234 2021-07-15  Aldy Hernandez  <aldyh@redhat.com>
1235
1236         * gimple-range-cache.cc (non_null_ref::adjust_range): New.
1237         (ranger_cache::range_of_def): Call adjust_range.
1238         (ranger_cache::entry_range): Same.
1239         * gimple-range-cache.h (non_null_ref::adjust_range): New.
1240         * gimple-range.cc (gimple_ranger::range_of_expr): Call
1241         adjust_range.
1242         (gimple_ranger::range_on_entry): Same.
1243
1244 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
1245
1246         Revert:
1247         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1248
1249         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
1250
1251 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
1252
1253         Revert:
1254         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1255
1256         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
1257         (sdot_prod, udot_prod): ...These.
1258         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
1259         (aarch64_<sur>dot<vsi2qi>): Rename to...
1260         (<sur>dot_prod<vsi2qi>): ...This.
1261         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
1262         Update builtins.
1263
1264 2021-07-15  Jakub Jelinek  <jakub@redhat.com>
1265
1266         PR middle-end/101437
1267         * gimplify.c (gimplify_expr): Throw away volatile reads from empty
1268         types even if they have non-BLKmode TYPE_MODE.
1269
1270 2021-07-15  Richard Biener  <rguenther@suse.de>
1271
1272         PR driver/101383
1273         * gcc.c (process_command): Process -gtoggle like process_options
1274         would after parsing options.
1275
1276 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
1277
1278         * cfgexpand.c (expand_asm_loc): Adjust.
1279         (expand_asm_stmt): Likewise.
1280         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise.
1281         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
1282         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
1283         * config/avr/avr.c (avr_md_asm_adjust): Likewise.
1284         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
1285         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
1286         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
1287         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
1288         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
1289         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
1290         * config/s390/s390.c (s390_md_asm_adjust): Likewise.
1291         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
1292         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
1293         * doc/tm.texi: Regenerate.
1294         * target.def: Add location argument to md_asm_adjust.
1295
1296 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
1297
1298         * tree-diagnostic.c (diagnostic_report_current_function): Use the
1299         diagnostic's location, not input_location.
1300
1301 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
1302
1303         * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to
1304         diagnostics.
1305         (expand_asm_stmt): Likewise.
1306
1307 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
1308
1309         * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower
1310         addressed memory rtx, if any.
1311         (rs6000_split_multireg_move): Fix code formatting.
1312         Handle MMA build built-ins with operands in adjacent memory locations.
1313
1314 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
1315
1316         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later
1317         in the file.
1318
1319 2021-07-14  Jason Merrill  <jason@redhat.com>
1320
1321         * sel-sched-ir.h (get_all_loop_exits): Use auto_vec.
1322
1323 2021-07-14  Jason Merrill  <jason@redhat.com>
1324
1325         * doc/invoke.texi: -fdelete-dead-exceptions is on by default for
1326         C++.
1327
1328 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1329
1330         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
1331         Remove erroneous line.
1332
1333 2021-07-14  Andrew MacLeod  <amacleod@redhat.com>
1334
1335         * params.opt (param_evrp_mode): Change default.
1336
1337 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1338
1339         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
1340         (sdot_prod, udot_prod): ...These.
1341         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
1342         (aarch64_<sur>dot<vsi2qi>): Rename to...
1343         (<sur>dot_prod<vsi2qi>): ...This.
1344         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
1345         Update builtins.
1346
1347 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1348
1349         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
1350
1351 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1352
1353         * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document.
1354
1355 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1356
1357         * config/arm/neon.md (usdot_prod<vsi2qi>): New.
1358
1359 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1360
1361         * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to...
1362         (usdot_prod<vsi2qi>): ... This.
1363         * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to...
1364         (usdot_prod): ...This.
1365         * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise.
1366         * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>):
1367         Rename to...
1368         (@<sur>dot_prod<vsi2qi>): ...This.
1369         * config/aarch64/aarch64-sve-builtins-base.cc
1370         (svusdot_impl::expand): Use it.
1371
1372 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
1373
1374         * optabs.def (usdot_prod_optab): New.
1375         * doc/md.texi: Document it and clarify other dot prod optabs.
1376         * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign.
1377         * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab.
1378         * optabs.c (expand_widen_pattern_expr): Likewise.
1379         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
1380         * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind.
1381         * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional
1382         optab subtype.
1383         (vect_widened_op_tree): Optionally ignore
1384         mismatch types.
1385         (vect_recog_dot_prod_pattern): Support usdot_prod_optab.
1386
1387 2021-07-14  H.J. Lu  <hjl.tools@gmail.com>
1388
1389         PR target/101395
1390         * config/i386/driver-i386.c (host_detect_local_cpu): Check
1391         "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen.
1392         Enable UINTR only for 64-bit codegen.
1393         * config/i386/i386-options.c
1394         (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not
1395         in 64-bit mode.
1396         * config/i386/i386.h (ARCH_ARG): New.
1397         (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and
1398         "[arch|tune] 64" for 64-bit codegen.
1399
1400 2021-07-14  Richard Biener  <rguenther@suse.de>
1401
1402         PR tree-optimization/101445
1403         * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment
1404         of the IV in the correct direction for negative stride
1405         accesses.
1406
1407 2021-07-14  Jakub Jelinek  <jakub@redhat.com>
1408
1409         PR go/101407
1410         * godump.c (godump_str_hash): New type.
1411         (godump_container::pot_dummy_types): Use string_hash instead of
1412         ptr_hash in the hash_set.
1413
1414 2021-07-14  Richard Biener  <rguenther@suse.de>
1415
1416         * tree-vect-loop.c (vect_find_reusable_accumulator): Handle
1417         vector types where the old vector type has a multiple of
1418         the new vector type elements.
1419         (vect_create_partial_epilog): New function, split out from...
1420         (vect_create_epilog_for_reduction): ... here.
1421         (vect_transform_cycle_phi): Reduce the re-used accumulator
1422         to the new vector type.
1423
1424 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
1425
1426         * tree-ssa-alias.c (attr_fnspec::verify): Fix index in
1427         non-'t'-sized arg check.
1428
1429 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
1430
1431         * tree-cfg.c (cleanup_dead_labels_eh): Update
1432         post_landing_pad label upon change of landing pad block's
1433         primary label.
1434         (cleanup_dead_labels): Check that a removed label is not that
1435         of a landing pad.
1436
1437 2021-07-13  Jonathan Wright  <jonathan.wright@arm.com>
1438
1439         * combine.c (combine_simplify_rtx): Add vec_select -> subreg
1440         simplification.
1441         * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64):
1442         Add Neon to general purpose register case for zero-extend
1443         pattern.
1444         * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r
1445         case to prevent some cases opting to go through memory.
1446         * cse.c (fold_rtx): Add vec_select -> subreg simplification.
1447         * rtl.c (rtvec_series_p): Define predicate to determine
1448         whether a vector contains a linear series of integers.
1449         * rtl.h (rtvec_series_p): Define.
1450         * rtlanal.c (vec_series_lowpart_p): Define predicate to
1451         determine if a vector selection is equivalent to the low part
1452         of the vector.
1453         * rtlanal.h (vec_series_lowpart_p): Define.
1454         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
1455         Add vec_select -> subreg simplification.
1456
1457 2021-07-13  Paul A. Clarke  <pc@us.ibm.com>
1458
1459         * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128,
1460         _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
1461         _mm_test_mix_ones_zeros): New.
1462
1463 2021-07-13  Roger Sayle  <roger@nextmovesoftware.com>
1464             Richard Biener  <rguenther@suse.de>
1465
1466         * gimple.c (gimple_could_trap_p_1):  Make S argument a
1467         "const gimple*".  Preserve constness in call to
1468         gimple_asm_volatile_p.
1469         (gimple_could_trap_p): Make S argument a "const gimple*".
1470         * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p):
1471         Update function prototypes.
1472
1473 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1474
1475         * tree-vectorizer.h (vect_reusable_accumulator): New structure.
1476         (_loop_vec_info::main_loop_edge): New field.
1477         (_loop_vec_info::skip_main_loop_edge): Likewise.
1478         (_loop_vec_info::skip_this_loop_edge): Likewise.
1479         (_loop_vec_info::reusable_accumulators): Likewise.
1480         (_stmt_vec_info::reduc_scalar_results): Likewise.
1481         (_stmt_vec_info::reused_accumulator): Likewise.
1482         (vect_get_main_loop_result): Declare.
1483         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
1484         reduc_scalar_inputs.
1485         (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs.
1486         * tree-vect-loop-manip.c (vect_get_main_loop_result): New function.
1487         (vect_do_peeling): Fill an epilogue loop's main_loop_edge,
1488         skip_main_loop_edge and skip_this_loop_edge fields.
1489         * tree-vect-loop.c (INCLUDE_ALGORITHM): Define.
1490         (vect_emit_reduction_init_stmts): New function.
1491         (get_initial_def_for_reduction): Use it.
1492         (get_initial_defs_for_reduction): Likewise.  Change the vinfo
1493         parameter to a loop_vec_info.
1494         (vect_create_epilog_for_reduction): Store the scalar results
1495         in the reduc_info.  If an epilogue loop is reusing an accumulator
1496         from the main loop, and if the epilogue loop can also be skipped,
1497         try to place the reduction code in the join block.  Record
1498         accumulators that could potentially be reused by epilogue loops.
1499         (vect_transform_cycle_phi): When vectorizing epilogue loops,
1500         try to reuse accumulators from the main loop.  Record the initial
1501         value in reduc_info for non-SLP reductions too.
1502
1503 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1504
1505         * tree-vect-loop.c (get_initial_def_for_reduction): Remove
1506         adjustment handling.  Take the neutral value as an argument,
1507         in place of the code argument.
1508         (vect_transform_cycle_phi): Update accordingly.  Handle the
1509         initial values of cond reductions separately from code reductions.
1510         Choose the adjustment here rather than in
1511         get_initial_def_for_reduction.  Sink the splat of vec_initial_def.
1512
1513 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1514
1515         * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with...
1516         (neutral_op_for_reduction): ...this, providing a more general
1517         interface.
1518         (vect_create_epilog_for_reduction): Update accordingly.
1519         (vectorizable_reduction): Likewise.
1520         (vect_transform_cycle_phi): Likewise.
1521
1522 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1523
1524         * tree-vect-loop.c (get_initial_def_for_reduction): Take the
1525         reduc_info instead of the original stmt_vec_info.
1526         (vect_transform_cycle_phi): Update accordingly.
1527
1528 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1529
1530         * tree-vect-loop.c (get_initial_defs_for_reduction): Take the
1531         reduc_info as an additional parameter.
1532         (vect_transform_cycle_phi): Update accordingly.
1533
1534 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1535
1536         * tree-vectorizer.h: Include tree-ssa-operands.h.
1537         (vect_phi_initial_value): New function.
1538         * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it.
1539         (get_initial_defs_for_reduction, info_for_reduction): Likewise.
1540         (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
1541         (vect_transform_cycle_phi, vectorizable_induction): Likewise.
1542
1543 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1544
1545         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
1546         the phi results to vectype after creating them.  Remove later
1547         conversion code that thus becomes redundant.
1548
1549 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1550
1551         * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace
1552         the new_phis vector with a reduc_inputs vector.  Combine handling
1553         of reduction chains and ncopies > 1.
1554
1555 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1556
1557         * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate
1558         scalar_results to group_size elements after reducing down from
1559         N*group_size elements.  Construct an array_slice of the live-out
1560         stmts and assert that there is one stmt per scalar result.
1561
1562 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1563
1564         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
1565         nested_in_vect_loop and use double_reduc everywhere.  Remove dead
1566         assignment to "loop".
1567
1568 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
1569
1570         * internal-fn.c (vectorized_internal_fn_supported_p): Handle
1571         vector types first.  For scalar types, consider both the preferred
1572         vector mode and the alternative vector modes.
1573         * optabs-query.c (can_vec_mask_load_store_p): Use the same
1574         structure as above, in particular using related_vector_mode
1575         for modes provided by autovectorize_vector_modes.
1576
1577 2021-07-13  Jakub Jelinek  <jakub@redhat.com>
1578             Richard Biener  <rguenther@suse.de>
1579
1580         PR tree-optimization/101419
1581         * tree-pass.h (PROP_objsz): Define.
1582         (make_pass_early_object_sizes): Declare.
1583         * passes.def (pass_all_early_optimizations): Rename pass_object_sizes
1584         there to pass_early_object_sizes, drop parameter.
1585         (pass_all_optimizations): Move pass_object_sizes right after pass_ccp,
1586         drop parameter, move pass_post_ipa_warn right after that.
1587         * tree-object-size.c (pass_object_sizes::execute): Rename to...
1588         (object_sizes_execute): ... this.  Add insert_min_max_p argument.
1589         (pass_data_object_sizes): Move after object_sizes_execute.
1590         (pass_object_sizes): Likewise.  In execute method call
1591         object_sizes_execute, drop set_pass_param method and insert_min_max_p
1592         non-static data member and its initializer in the ctor.
1593         (pass_data_early_object_sizes, pass_early_object_sizes,
1594         make_pass_early_object_sizes): New.
1595         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use
1596         (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining.
1597
1598 2021-07-13  Kito Cheng  <kito.cheng@sifive.com>
1599
1600         PR target/101275
1601         * config/riscv/constraints.md ("S"): Update description and remove
1602         @internal.
1603         * doc/md.texi (Machine Constraints): Document the 'S' constraints
1604         for RISC-V.
1605
1606 2021-07-13  Richard Biener  <rguenther@suse.de>
1607
1608         Revert:
1609         2021-07-12  Richard Biener  <rguenther@suse.de>
1610
1611         * tree-vect-slp.c (vect_slp_region): Show the number of
1612         SLP graph entries in the optimization message.
1613
1614 2021-07-13  Michael Meissner  <meissner@linux.ibm.com>
1615
1616         * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable
1617         value to to long.
1618         * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change
1619         return type to long.
1620         * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return
1621         type to long.
1622
1623 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
1624
1625         * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call):
1626         Query relation between the 2 operands and use it.
1627
1628 2021-07-12  Sergei Trofimovich  <siarheit@google.com>
1629
1630         * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo.
1631
1632 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
1633
1634         PR target/101424
1635         * config/i386/predicates.md (vec_setm_sse41_operand):
1636         Rename from vec_setm_operand.
1637         (vec_setm_avx2_operand): New predicate.
1638         * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator.
1639         Use vec_setm_sse41_operand as operand 2 predicate.
1640         (vec_set<V_256_512:mode): New expander.
1641         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand
1642         as operand 2 predicate.
1643
1644 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
1645
1646         PR tree-optimization/101335
1647         * range-op.cc (operator_cast::lhs_op1_relation): Delete.
1648
1649 2021-07-12  Andrew Pinski  <apinski@marvell.com>
1650
1651         * tree-ssa-phiopt.c (match_simplify_replacement): Move
1652         insert of the sequence before the movement of the
1653         statement. Check if to see if the statement is used
1654         outside of the original phi to see if we should move it.
1655
1656 2021-07-12  Richard Biener  <rguenther@suse.de>
1657
1658         * dump-context.h (debug_dump_context::debug_dump_context):
1659         Add FILE * parameter defaulted to stderr.
1660         * dumpfile.c (debug_dump_context::debug_dump_context): Adjust.
1661         * tree-vect-slp.c (dot_slp_tree): New functions.
1662
1663 2021-07-12  Richard Biener  <rguenther@suse.de>
1664
1665         PR tree-optimization/101373
1666         * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping
1667         references when the BB may not return.
1668         (compute_avail): Pass in the function we're working on and
1669         replace cfun references with it.  Externally throwing
1670         const calls also possibly terminate the function.
1671         (pass_pre::execute): Pass down the function we're working on.
1672         * gcse.c (compute_hash_table_work): Externally throwing
1673         const/pure calls also need record_last_mem_set_info.
1674         * postreload-gcse.c (record_opr_changes): Looping or externally
1675         throwing const/pure calls also need record_last_mem_set_info.
1676
1677 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
1678
1679         * recog.c (memory_address_addr_space_p): Change the type to bool.
1680         Return true/false instead of 1/0.
1681         (offsettable_memref_p): Ditto.
1682         (offsettable_nonstrict_memref_p): Ditto.
1683         (offsettable_address_addr_space_p): Ditto.
1684         Change the type of addressp indirect function to bool.
1685         * recog.h (memory_address_addr_space_p): Change the type to bool.
1686         (strict_memory_address_addr_space_p): Ditto.
1687         (offsettable_memref_p): Ditto.
1688         (offsettable_nonstrict_memref_p): Ditto.
1689         (offsettable_address_addr_space_p): Ditto.
1690         * reload.c (maybe_memory_address_addr_space_p): Ditto.
1691         (strict_memory_address_addr_space_p): Change the type to bool.
1692         Return true/false instead of 1/0.
1693         (maybe_memory_address_addr_space_p): Change the type to bool.
1694
1695 2021-07-12  Richard Biener  <rguenther@suse.de>
1696
1697         * tree-vect-slp.c (vect_slp_region): Show the number of
1698         SLP graph entries in the optimization message.
1699
1700 2021-07-12  Richard Biener  <rguenther@suse.de>
1701
1702         PR tree-optimization/101394
1703         * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
1704         copies from abnormals for a full redundancy.
1705
1706 2021-07-12  Richard Biener  <rguenther@suse.de>
1707
1708         PR middle-end/101423
1709         * gimple.c (gimple_could_trap_p_1): Internal function calls
1710         do not trap.
1711         * tree-eh.c (tree_could_trap_p): Likewise.
1712
1713 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
1714
1715         PR target/66791
1716         * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with
1717         __a * __b.
1718         (vmulq_n_u32): Likewise.
1719         (vmul_n_f32): Gate __a * __b on __FAST_MATH__.
1720         (vmulq_n_f32): Likewise.
1721         (vmul_n_f16): Likewise.
1722         (vmulq_n_f16): Likewise.
1723
1724 2021-07-12  Martin Liska  <mliska@suse.cz>
1725
1726         PR sanitizer/101425
1727         * gcc.c (check_offload_target_name): Call
1728           candidates_list_and_hint only if we have a candidate.
1729
1730 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
1731
1732         PR target/98435
1733         * config/arm/neon.md (vec_init): Move to ...
1734         * config/arm/vec-common.md (vec_init): ... here.
1735         Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE.
1736
1737 2021-07-12  Roger Sayle  <roger@nextmovesoftware.com>
1738
1739         PR tree-optimization/101403
1740         * match.pd ((T)bswap(X)>>C): Correctly handle cases where
1741         signedness of the shift is not the same as the signedness of
1742         the type extension.
1743
1744 2021-07-09  Roger Sayle  <roger@nextmovesoftware.com>
1745             Uroš Bizjak  <ubizjak@gmail.com>
1746
1747         * config/i386/i386.md (*divmodsi4_const): Optimize SImode
1748         divmod of a constant numerator with new define_insn_and_split.
1749
1750 2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>
1751
1752         PR target/100152
1753         * config/i386/i386-expand.c (ix86_expand_call): If a call is
1754         to a non-local-binding, or local but to a public symbol, then
1755         assume that it might be indirected via the lazy symbol binder.
1756         Mark R10 and R10 as clobbered in that case.
1757
1758 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
1759
1760         PR target/101377
1761         * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in
1762         the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined
1763         and HAVE_LD_BROKEN_PE_DWARF5 is defined.
1764
1765 2021-07-09  Uroš Bizjak  <ubizjak@gmail.com>
1766
1767         * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the
1768         log2 range of operands[3] to [1,31].
1769         (*udivmodsi4_pow2_zext_2): Ditto.  Correct insn RTX pattern.
1770
1771 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
1772
1773         * doc/md.texi: Don't split @smallexample in multiple @groups.
1774
1775 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
1776
1777         * doc/md.texi: Add missing 'see' word.
1778
1779 2021-07-09  Andrew Pinski  <apinski@marvell.com>
1780
1781         * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments
1782         to take sequence and gimple_match_op.  Accept the case where
1783         op is a SSA_NAME and one statement in the sequence.
1784         Also allow constants.
1785         (gimple_simplify_phiopt): Always pass a sequence to resimplify.
1786         Update call to phiopt_early_allow.  Discard the sequence if not
1787         used.
1788
1789 2021-07-09  Xi Ruoyao  <xry111@mengyan1223.wang>
1790
1791         PR target/100760
1792         PR target/100761
1793         PR target/100762
1794         * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P
1795         instead of ISA_HAS_MSA.
1796         (mips_expand_vec_unpack): Likewise.
1797         (mips_expand_vector_init): Likewise.
1798
1799 2021-07-09  Kewen Lin  <linkw@linux.ibm.com>
1800
1801         * config/rs6000/vsx.md (mods_<mode>): Rename to...
1802         (mod<mode>3): ... this.
1803         (modu_<mode>): Rename to...
1804         (umod<mode>3): ... this.
1805         * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI,
1806         MODU_V4SI): Adjust.
1807
1808 2021-07-08  Jeff Law  <jeffreyalaw@gmail.com>
1809
1810         * config/h8300/shiftrotate.md (variable shifts): Expose condition
1811         code handling for the test before the loop.
1812
1813 2021-07-08  Martin Jambor  <mjambor@suse.cz>
1814
1815         PR ipa/101066
1816         * ipa-sra.c (class isra_call_summary): New member
1817         m_before_any_store, initialize it in the constructor.
1818         (isra_call_summary::dump): Dump the new field.
1819         (ipa_sra_call_summaries::duplicate): Copy it.
1820         (process_scan_results): Set it.
1821         (isra_write_edge_summary): Stream it.
1822         (isra_read_edge_summary): Likewise.
1823         (param_splitting_across_edge): Only override
1824         safe_to_import_accesses if m_before_any_store is set.
1825
1826 2021-07-08  Martin Sebor  <msebor@redhat.com>
1827
1828         PR bootstrap/101374
1829         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
1830         Use Object Size Type 0 instead of 1.
1831
1832 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
1833
1834         * tree-vect-loop.c (vectorizable_reduction): Remove always-true
1835         if condition.
1836
1837 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
1838
1839         * match.pd: Simplify an extend-operate-truncate sequence involving
1840         a POLY_INT_CST.
1841
1842 2021-07-08  Roger Sayle  <roger@nextmovesoftware.com>
1843             Richard Biener  <rguenther@suse.de>
1844
1845         PR tree-optimization/40210
1846         * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as
1847         (x>>C3)&C2 when possible.  Simplify bswap(x)>>C1 as ((T)x)>>C2
1848         when possible.  Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255.
1849
1850 2021-07-08  Uroš Bizjak  <ubizjak@gmail.com>
1851
1852         PR target/100637
1853         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
1854         Handle V4QI mode.
1855         * config/i386/mmx.md (V_32): New mode iterator.
1856         (mov<V_32:mode>): Use V_32 mode iterator.
1857         (*mov<V_32:mode>_internal): Ditto.
1858         (*push<V_32:mode>2_rex64): Ditto.
1859         (*push<V_32:mode>2): Ditto.
1860         (movmisalign<V_32:mode>): Ditto.
1861         (mmx_<any_shiftrt:insn>v1si3): New insn pattern.
1862         (sse4_1_<any_extend:code>v2qiv2hi2): Ditto.
1863         (vec_unpacks_lo_v4qi): New expander.
1864         (vec_unpacks_hi_v4qi): Ditto.
1865         (vec_unpacku_lo_v4qi): Ditto.
1866         (vec_unpacku_hi_v4qi): Ditto.
1867         * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode.
1868         (VALID_INT_MODE_P): Ditto.
1869
1870 2021-07-08  Michael Meissner  <meissner@linux.ibm.com>
1871
1872         PR target/100809
1873         * config/rs6000/rs6000.md (udivti3): New insn.
1874         (divti3): New insn.
1875         (umodti3): New insn.
1876         (modti3): New insn.
1877
1878 2021-07-07  Martin Sebor  <msebor@redhat.com>
1879
1880         PR tree-optimization/100137
1881         PR tree-optimization/99121
1882         PR tree-optimization/97027
1883         * builtins.c (access_ref::access_ref): Also set offmax.
1884         (access_ref::offset_in_range): Define new function.
1885         (access_ref::add_offset): Set offmax.
1886         (access_ref::inform_access): Handle access_none.
1887         (handle_mem_ref): Clear ostype.
1888         (compute_objsize_r): Handle ASSERT_EXPR.
1889         * builtins.h (struct access_ref): Add offmax member.
1890         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use
1891         compute_objsize() and simplify.
1892
1893 2021-07-07  Peter Bergner  <bergner@linux.ibm.com>
1894
1895         * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
1896         and VSX_BUILTIN_STXVP.
1897
1898 2021-07-07  Martin Sebor  <msebor@redhat.com>
1899
1900         PR target/101363
1901         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove
1902         a stray %K from error_at() missed in r12-2088.
1903
1904 2021-07-07  Richard Biener  <rguenther@suse.de>
1905
1906         PR tree-optimization/99728
1907         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record
1908         aggregate copies.
1909         (mem_refs_may_alias_p): Add assert we handled aggregate
1910         copies elsewhere.
1911         (sm_seq_valid_bb): Give up when running into aggregate copies.
1912         (ref_indep_loop_p): Handle aggregate copies as never
1913         being invariant themselves but allow other refs to be
1914         disambiguated against them.
1915         (can_sm_ref_p): Do not try to apply store-motion to aggregate
1916         copies.
1917
1918 2021-07-06  Indu Bhagat  <indu.bhagat@oracle.com>
1919
1920         PR debug/101283
1921         * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get
1922         number of bits.
1923
1924 2021-07-06  Martin Sebor  <msebor@redhat.com>
1925
1926         * gimple-pretty-print.c (percent_G_format): Remove.
1927         * tree-diagnostic.c (default_tree_printer): Remove calls.
1928         * tree-pretty-print.c (percent_K_format): Remove.
1929         * tree-pretty-print.h (percent_K_format): Remove.
1930
1931 2021-07-06  Martin Sebor  <msebor@redhat.com>
1932
1933         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
1934         Remove %K and use error_at.
1935         (aarch64_expand_fcmla_builtin): Same.
1936         (aarch64_expand_builtin_tme): Same.
1937         (aarch64_expand_builtin_memtag): Same.
1938         * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same.
1939         (arm_expand_builtin): Same.
1940         * config/arm/arm.c (bounds_check): Same.
1941
1942 2021-07-06  Martin Sebor  <msebor@redhat.com>
1943
1944         * builtins.c (warn_string_no_nul): Remove %G.
1945         (maybe_warn_for_bound): Same.
1946         (warn_for_access): Same.
1947         (check_access): Same.
1948         (check_strncat_sizes): Same.
1949         (expand_builtin_strncat): Same.
1950         (expand_builtin_strncmp): Same.
1951         (expand_builtin): Same.
1952         (expand_builtin_object_size): Same.
1953         (warn_dealloc_offset): Same.
1954         (maybe_emit_free_warning): Same.
1955         * calls.c (maybe_warn_alloc_args_overflow): Same.
1956         (maybe_warn_nonstring_arg): Same.
1957         (maybe_warn_rdwr_sizes): Same.
1958         * expr.c (expand_expr_real_1): Remove %K.
1959         * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G.
1960         (gimple_fold_builtin_strncat): Same.
1961         * gimple-ssa-sprintf.c (format_directive): Same.
1962         (handle_printf_call): Same.
1963         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same.
1964         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
1965         (maybe_diag_access_bounds): Same.  Call gimple_location.
1966         (check_bounds_or_overlap): Same.
1967         * trans-mem.c (ipa_tm_scan_irr_block): Remove %K.  Simplify.
1968         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G.
1969         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
1970         (maybe_diag_stxncpy_trunc): Same.
1971         (handle_builtin_stxncpy_strncat): Same.
1972         (maybe_warn_pointless_strcmp): Same.
1973         * tree-ssa-uninit.c (maybe_warn_operand): Same.
1974
1975 2021-07-06  Uroš Bizjak  <ubizjak@gmail.com>
1976
1977         PR target/97194
1978         * config/i386/predicates.md (vec_setm_operand): Enable
1979         register_operand for TARGET_SSE4_1.
1980         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand
1981         as operand 2 predicate.  Call ix86_expand_vector_set_var
1982         for non-constant index operand.
1983         (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate.
1984         Call ix86_expand_vector_set_var for non-constant index operand.
1985
1986 2021-07-06  Jeff Law  <jeffreyalaw@gmail.com>
1987
1988         * config/h8300/jumpcall.md (*branch): When possible, generate
1989         the comparison in CCZN mode.
1990         * config/h8300/predicates.md (simple_memory_operand): Reject all
1991         auto-increment addressing modes.
1992
1993 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
1994
1995         PR bootstrap/100246
1996         * config/i386/i386.h (struct stringop_algs): Define a CTOR for
1997         this type.
1998
1999 2021-07-06  Richard Biener  <rguenther@suse.de>
2000
2001         * doc/md.texi (vec_fmaddsub<mode>4): Document.
2002         (vec_fmsubadd<mode>4): Likewise.
2003         * optabs.def (vec_fmaddsub$a4): Add.
2004         (vec_fmsubadd$a4): Likewise.
2005         * internal-fn.def (IFN_VEC_FMADDSUB): Add.
2006         (IFN_VEC_FMSUBADD): Likewise.
2007         * tree-vect-slp-patterns.c (addsub_pattern::recognize):
2008         Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD.
2009         (addsub_pattern::build): Likewise.
2010         * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB
2011         and CFN_VEC_FMSUBADD are not transparent for permutes.
2012         * config/i386/sse.md (vec_fmaddsub<mode>4): New expander.
2013         (vec_fmsubadd<mode>4): Likewise.
2014
2015 2021-07-06  Richard Biener  <rguenther@suse.de>
2016
2017         * doc/invoke.texi (fmove-loop-stores): Document.
2018         * common.opt (fmove-loop-stores): New option.
2019         * opts.c (default_options_table): Enable -fmove-loop-stores
2020         at -O1 but not -Og.
2021         * tree-ssa-loop-im.c (pass_lim::execute): Pass
2022         flag_move_loop_stores instead of true to
2023         loop_invariant_motion_in_fun.
2024
2025 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
2026
2027         * doc/install.texi: Document --with-dsymutil.
2028
2029 2021-07-06  Andrew Pinski  <apinski@marvell.com>
2030
2031         PR tree-optimization/101256
2032         * dbgcnt.def (phiopt_edge_range): New counter.
2033         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
2034         Check to make sure the new name is defined in the same
2035         bb as the conditional before duplicating range info.
2036         Also add debug counter.
2037
2038 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
2039
2040         PR rtl-optimization/100328
2041         * config/i386/i386-options.c (ix86_option_override_internal):
2042         Set param_ira_consider_dup_in_all_alts to 0.
2043
2044 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
2045
2046         PR rtl-optimization/100328
2047         * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new
2048         parameter.
2049         * ira.c (ira_get_dup_out_num): Adjust as parameter
2050         param_ira_consider_dup_in_all_alts.
2051         * params.opt (ira-consider-dup-in-all-alts): New.
2052         * ira-conflicts.c (process_regs_for_copy): Add one parameter
2053         single_input_op_has_cstr_p.
2054         (get_freq_for_shuffle_copy): New function.
2055         (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p.
2056         * ira-int.h (ira_get_dup_out_num): Add one bool parameter.
2057
2058 2021-07-05  Jeff Law  <jeffreyalaw@gmail.com>
2059
2060         * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to
2061         generate condition code aware RTL directly.
2062
2063 2021-07-05  Andrew Pinski  <apinski@marvell.com>
2064
2065         PR tree-optimization/101039
2066         * match.pd (A CMP 0 ? A : -A): New patterns.
2067         * tree-ssa-phiopt.c (abs_replacement): Delete function.
2068         (tree_ssa_phiopt_worker): Don't call abs_replacement.
2069         Update comment about abs_replacement.
2070
2071 2021-07-05  Andrew Pinski  <apinski@marvell.com>
2072
2073         * tree-ssa-phiopt.c (gimple_simplify_phiopt):
2074         If "A ? B : C" fails to simplify, try "(!A) ? C : B".
2075
2076 2021-07-05  Andrew Pinski  <apinski@marvell.com>
2077
2078         * tree-ssa-phiopt.c (match_simplify_replacement):
2079         Add early_p argument. Call gimple_simplify_phiopt
2080         instead of gimple_simplify.
2081         (tree_ssa_phiopt_worker): Update call to
2082         match_simplify_replacement and allow unconditionally.
2083         (phiopt_early_allow): New function.
2084         (gimple_simplify_phiopt): New function.
2085
2086 2021-07-05  Andrew Pinski  <apinski@marvell.com>
2087
2088         PR middle-end/101237
2089         * fold-const.c (negate_expr_p): Remove call to element_mode
2090         and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS,
2091         HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS.
2092         (fold_negate_expr_1): Likewise.
2093         (const_unop): Likewise.
2094         (fold_cond_expr_with_comparison): Likewise.
2095         (fold_binary_loc): Likewise.
2096         (fold_ternary_loc): Likewise.
2097         (tree_call_nonnegative_warnv_p): Likewise.
2098         * match.pd (-(A + B) -> (-B) - A): Likewise.
2099
2100 2021-07-05  Iain Sandoe  <iain@sandoe.co.uk>
2101
2102         * configure.ac: Handle --with-dsymutil in the same way as we
2103         do for the assembler and linker.  (DEFAULT_DSYMUTIL): New.
2104         Extract the type and version for the dsymutil configured or
2105         found by the default searches.
2106         * config.in: Regenerated.
2107         * configure: Regenerated.
2108         * collect2.c (do_dsymutil): Handle locating dsymutil in the
2109         same way as for the assembler and  linker.
2110         * config/darwin.h (DSYMUTIL): Delete.
2111         * gcc.c: Report a configured dsymutil correctly.
2112         * exec-tool.in: Allow for dsymutil.
2113
2114 2021-07-05  Uroš Bizjak  <ubizjak@gmail.com>
2115
2116         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
2117         Handle V4QI and V2HI modes.
2118         (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1.
2119         Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes.
2120         (expand_vec_perm_pshufb): Rewrite to use switch statemets.
2121         Handle 4-byte dual operands with TARGET_XOP and single operands
2122         with TARGET_SSSE3.  Emit mmx_ppermv32 for TARGET_XOP and
2123         mmx_pshufbv4qi3 for TARGET_SSSE3.
2124         (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1.
2125         (expand_vec_perm_interleave2): Allow 4-byte vector modes.
2126         (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3.
2127         (expand_vec_perm_even_odd_1): Handle V4QI mode.
2128         (expand_vec_perm_broadcast_1): Handle V4QI mode.
2129         (ix86_vectorize_vec_perm_const): Handle V4QI mode.
2130         * config/i386/mmx.md (mmx_ppermv32): New insn pattern.
2131         (mmx_pshufbv4qi3): Ditto.
2132         (*mmx_pblendw32): Ditto.
2133         (*mmx_pblendw64): Rename from *mmx_pblendw.
2134         (mmx_punpckhbw_low): New insn_and_split pattern.
2135         (mmx_punpcklbw_low): Ditto.
2136
2137 2021-07-05  Richard Biener  <rguenther@suse.de>
2138
2139         * tree-vect-loop-manip.c (vect_loop_versioning): Do not
2140         set LOOP_C_INFINITE on the vectorized loop.
2141
2142 2021-07-05  Richard Biener  <rguenther@suse.de>
2143
2144         PR middle-end/101291
2145         * cfgloopmanip.c (loop_version): Set the loop copy of the
2146         versioned loop to the new loop.
2147
2148 2021-07-04  Iain Sandoe  <iain@sandoe.co.uk>
2149
2150         PR target/100269
2151         * config.gcc: Ensure that Darwin biarch definitions are
2152         added before i386.h.
2153         * config/i386/darwin.h (TARGET_64BIT): Remove.
2154         (PR80556_WORKAROUND): New.
2155         (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND.
2156         (DARWIN_SUBARCH_SPEC): New.
2157         * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT,
2158         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
2159         (REAL_LIBGCC_SPEC): Remove.
2160         * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT,
2161         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
2162         (REAL_LIBGCC_SPEC): Remove.
2163
2164 2021-07-03  H.J. Lu  <hjl.tools@gmail.com>
2165
2166         PR middle-end/101294
2167         * expr.c (store_constructor): Don't use vec_duplicate on vector.
2168
2169 2021-07-02  Martin Sebor  <msebor@redhat.com>
2170
2171         PR middle-end/98871
2172         PR middle-end/98512
2173         * diagnostic.c (get_any_inlining_info): New.
2174         (update_effective_level_from_pragmas): Handle inlining context.
2175         (diagnostic_enabled): Same.
2176         (diagnostic_report_diagnostic): Same.
2177         * diagnostic.h (struct diagnostic_info): Add ctor.
2178         (struct diagnostic_context): Add new member.
2179         * tree-diagnostic.c (set_inlining_locations): New.
2180         (tree_diagnostics_defaults): Set new callback pointer.
2181
2182 2021-07-02  Peter Bergner  <bergner@linux.ibm.com>
2183
2184         * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
2185         New macros.
2186         (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
2187         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand
2188         lxvp and stxvp built-ins.
2189         (mma_init_builtins): Handle lxvp and stxvp built-ins.
2190         (builtin_function_type): Likewise.
2191         * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document.
2192
2193 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
2194
2195         * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept
2196         additional argument for the code.
2197         * config/h8300/h8300.c (compute_a_shift_cc): Accept additional
2198         argument for the code.  Just return if the ZN bits are useful or
2199         not rather than the old style CC_* enums.
2200         * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before
2201         more generic shiftqi patterns.
2202         (shifthi_noscratch, shiftsi_noscratch): Similarly.
2203         (shiftqi_noscratch_set_flags): New pattern.
2204         (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise.
2205
2206 2021-07-02  Andrew MacLeod  <amacleod@redhat.com>
2207
2208         PR tree-optimization/101223
2209         * range-op.cc (build_lt): Add -1 for signed values.
2210         (built_gt): Subtract -1 for signed values.
2211
2212 2021-07-02  David Faust  <david.faust@oracle.com>
2213
2214         * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT.
2215         (btf_asm_type): Likewise.
2216
2217 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
2218
2219         * config/h8300/h8300-protos.h (output_a_shift): Make first argument
2220         an array of rtx rather than a pointer to rtx.  Add code argument.
2221         (compute_a_shift_length): Similarly.
2222         * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the
2223         shift itself isn't an operand.  Create dummy operand[0] to carry
2224         a mode and pass a suitable rtx code to compute_a_shift_length.
2225         (get_shift_alg): Adjust operand number of clobber in output templates.
2226         (output_a_shift): Make first argument an array of rtx rather than
2227         a pointer to rtx.  Add code argument for the type of shift.
2228         Adjust now that the shift itself is no longer an operand.
2229         (compute_a_shift_length): Similarly.
2230         * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an
2231         iterator rather than nshift_operator.
2232         (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise.
2233         (shiftqi_clobber_flags): Adjust to API changes in output_a_shift
2234         and compute_a_shift_length.
2235         (shiftqi_noscratch_clobber_flags): Likewise.
2236         (shifthi_noscratch_clobber_flags): Likewise.
2237         (shiftsi_noscratch_clobber_flags): Likewise.
2238
2239 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
2240
2241         PR debug/101283
2242         * config/darwin.h (DSYMUTIL_SPEC): Do not try to run
2243         dsymutil for BTF/CTF.
2244
2245 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
2246
2247         PR debug/101283
2248         * config/darwin.h (CTF_INFO_SECTION_NAME): Update the
2249         segment to include BTF.
2250         (BTF_INFO_SECTION_NAME): New.
2251
2252 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
2253
2254         * config/m32r/m32r-protos.h (call_operand): Adjust return type.
2255         (small_data_operand, memreg_operand, small_insn_p): Likewise.
2256         * config/m32r/m32r.c (call_operand): Adjust return type.
2257         (small_data_operand, memreg_operand): Likewise.
2258
2259 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
2260
2261         * config/frv/frv-protos.h  (integer_register_operand): Adjust return
2262         type.
2263         (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise.
2264         (fpr_or_int6_operand, gpr_or_int_operand); Likewise.
2265         (gpr_or_int12_operand, gpr_or_int10_operand); Likewise.
2266         (move_source_operand, move_destination_operand): Likewise.
2267         (condexec_source_operand, condexec_dest_operand): Likewise.
2268         (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise.
2269         (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise.
2270         (fcr_operand, icr_operand, cr_operand, call_operand): Likewise.
2271         (fpr_operand, even_reg_operand, odd_reg_operand): Likewise.
2272         (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise.
2273         (even_fpr_operand, odd_fpr_operand): Likewise.
2274         (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise.
2275         (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise.
2276         (uint4_operand, uint1_operand, int_2word_operand): Likewise
2277         (upper_int16_operand, uint16_operand, symbolic_operand): Likewise.
2278         (relational_operator, float_relational_operator): Likewise.
2279         (ccr_eqne_operator, minmax_operator): Likewise.
2280         (condexec_si_binary_operator, condexec_si_media_operator): Likewise.
2281         (condexec_si_divide_operator, condexec_si_unary_operator): Likewise.
2282         (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise.
2283         (intop_compare_operator, acc_operand, even_acc_operand): Likewise.
2284         (quad_acc_operand, accg_operand): Likewise.
2285
2286 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
2287
2288         * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change
2289         return type to a bool.
2290         (nonimmediate_nonstack_operand): Likewise.
2291         (xstormy16_splittable_below100_operand): Likewise.
2292         * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix
2293         return type.
2294         (xstormy16_splittable_below100_operand): Likewise.
2295
2296 2021-07-02  Richard Biener  <rguenther@suse.de>
2297
2298         PR tree-optimization/101293
2299         * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases
2300         with combined offsets.
2301         (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were
2302         combined with the rest of the offset.
2303
2304 2021-07-02  Eric Botcazou  <ebotcazou@adacore.com>
2305
2306         * config/i386/i386.c (asm_preferred_eh_data_format): Always use the
2307         PIC encodings for PE-COFF targets.
2308
2309 2021-07-02  Jakub Jelinek  <jakub@redhat.com>
2310
2311         PR target/101286
2312         * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant):
2313         Return nullptr for TImode inner mode.
2314
2315 2021-07-02  Richard Biener  <rguenther@suse.de>
2316
2317         PR tree-optimization/101280
2318         PR tree-optimization/101173
2319         * gimple-loop-interchange.cc
2320         (tree_loop_interchange::valid_data_dependences): Properly
2321         guard all dependence checks with DDR_REVERSED_P or its
2322         inverse.
2323
2324 2021-07-02  Hongyu Wang  <hongyu.wang@intel.com>
2325
2326         * config/i386/i386-expand.c (ix86_expand_builtin):
2327         Add branch to clear odata when ZF is set for asedecenc_expand
2328         and wideaesdecenc_expand.
2329
2330 2021-07-02  Eugene Rozenfeld  <erozen@microsoft.com>
2331
2332         * config/i386/gcc-auto-profile: regenerate
2333
2334 2021-07-02  liuhongt  <hongtao.liu@intel.com>
2335
2336         * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to ..
2337         (trunc<mode><pmov_dst_4_lower>2): this.
2338
2339 2021-07-01  David Malcolm  <dmalcolm@redhat.com>
2340
2341         * diagnostic.h (diagnostic_context::m_file_cache): New field.
2342         * input.c (class fcache): Rename to...
2343         (class file_cache_slot): ...this, making most members private and
2344         prefixing fields with "m_".
2345         (file_cache_slot::get_file_path): New accessor.
2346         (file_cache_slot::get_use_count): New accessor.
2347         (file_cache_slot::missing_trailing_newline_p): New accessor.
2348         (file_cache_slot::inc_use_count): New.
2349         (fcache_buffer_size): Move to...
2350         (file_cache_slot::buffer_size): ...here.
2351         (fcache_line_record_size): Move to...
2352         (file_cache_slot::line_record_size): ...here.
2353         (fcache_tab): Delete, in favor of global_dc->m_file_cache.
2354         (fcache_tab_size): Move to file_cache::num_file_slots.
2355         (diagnostic_file_cache_init): Update for move of fcache_tab
2356         to global_dc->m_file_cache.
2357         (diagnostic_file_cache_fini): Likewise.
2358         (lookup_file_in_cache_tab): Convert to...
2359         (file_cache::lookup_file): ...this.
2360         (diagnostics_file_cache_forcibly_evict_file): Update for move of
2361         fcache_tab to global_dc->m_file_cache, moving most of
2362         implementation to...
2363         (file_cache::forcibly_evict_file): ...this new function and...
2364         (file_cache_slot::evict): ...this new function.
2365         (evicted_cache_tab_entry): Convert to...
2366         (file_cache::evicted_cache_tab_entry): ...this.
2367         (add_file_to_cache_tab): Convert to...
2368         (file_cache::add_file): ...this, moving bulk of implementation
2369         to...
2370         (file_cache_slot::create): ..this new function.
2371         (file_cache::file_cache): New.
2372         (file_cache::~file_cache): New.
2373         (lookup_or_add_file_to_cache_tab): Convert to...
2374         (file_cache::lookup_or_add_file): ..this new function.
2375         (fcache::fcache): Rename to...
2376         (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes
2377         to fields.
2378         (fcache::~fcache): Rename to...
2379         (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes
2380         to fields.
2381         (needs_read): Convert to...
2382         (file_cache_slot::needs_read_p): ...this.
2383         (needs_grow): Convert to...
2384         (file_cache_slot::needs_grow_p): ...this.
2385         (maybe_grow): Convert to...
2386         (file_cache_slot::maybe_grow): ...this.
2387         (read_data): Convert to...
2388         (file_cache_slot::read_data): ...this.
2389         (maybe_read_data): Convert to...
2390         (file_cache_slot::maybe_read_data): ...this.
2391         (get_next_line): Convert to...
2392         (file_cache_slot::get_next_line): ...this.
2393         (goto_next_line): Convert to...
2394         (file_cache_slot::goto_next_line): ...this.
2395         (read_line_num): Convert to...
2396         (file_cache_slot::read_line_num): ...this.
2397         (location_get_source_line): Update for moving of globals to
2398         global_dc->m_file_cache.
2399         (location_missing_trailing_newline): Likewise.
2400         * input.h (class file_cache_slot): New forward decl.
2401         (class file_cache): New.
2402
2403 2021-07-01  Michael Meissner  <meissner@linux.ibm.com>
2404
2405         * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE
2406         128-bit floating point conditional move support.
2407         (have_compare_and_set_mask): Add IEEE 128-bit floating point
2408         types.
2409         * config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn.
2410         (mov<mode>cc_p10, IEEE128 iterator): New insn.
2411         (mov<mode>cc_invert_p10, IEEE128 iterator): New insn.
2412         (fpmask<mode>, IEEE128 iterator): New insn.
2413         (xxsel<mode>, IEEE128 iterator): New insn.
2414
2415 2021-07-01  Iain Sandoe  <iain@sandoe.co.uk>
2416
2417         PR debug/101283
2418         * config/darwin.h (CTF_INFO_SECTION_NAME): New.
2419
2420 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
2421
2422         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
2423         Make it global.
2424         * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate):
2425         New prototype.
2426         * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator.
2427         (vec_duplicate<mode>): New expander.
2428
2429 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
2430
2431         PR target/100865
2432         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
2433         New prototype.
2434         (ix86_byte_broadcast): New function.
2435         (ix86_convert_const_wide_int_to_broadcast): Likewise.
2436         (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode
2437         size is 16 bytes or bigger.
2438         (ix86_broadcast_from_integer_constant): New function.
2439         (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR
2440         to broadcast if mode size is 16 bytes or bigger.
2441         * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New
2442         prototype.
2443         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function.
2444
2445 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
2446
2447         * config/i386/predicates.md (ix86_endbr_immediate_operand):
2448         Return true/false instead of 1/0.
2449         (movq_parallel): Ditto.
2450
2451 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
2452
2453         * recog.c (general_operand): Return true/false instead of 1/0.
2454         (register_operand): Ditto.
2455         (immediate_operand): Ditto.
2456         (const_int_operand): Ditto.
2457         (const_scalar_int_operand): Ditto.
2458         (const_double_operand): Ditto.
2459         (push_operand): Ditto.
2460         (pop_operand): Ditto.
2461         (memory_operand): Ditto.
2462         (indirect_operand): Ditto.
2463
2464 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
2465
2466         * genpreds.c (write_predicate_subfunction):
2467         Change the type of written subfunction to bool.
2468         (write_one_predicate_function):
2469         Change the type of written function to bool.
2470         (write_tm_preds_h): Ditto.
2471         * recog.h (*insn_operand_predicate_fn): Change the type to bool.
2472         * recog.c (general_operand): Change the type to bool.
2473         (address_operand): Ditto.
2474         (register_operand): Ditto.
2475         (pmode_register_operand): Ditto.
2476         (scratch_operand): Ditto.
2477         (immediate_operand): Ditto.
2478         (const_int_operand): Ditto.
2479         (const_scalar_int_operand): Ditto.
2480         (const_double_operand): Ditto.
2481         (nonimmediate_operand): Ditto.
2482         (nonmemory_operand): Ditto.
2483         (push_operand): Ditto.
2484         (pop_operand): Ditto.
2485         (memory_operand): Ditto.
2486         (indirect_operand): Ditto.
2487         (ordered_comparison_operator): Ditto.
2488         (comparison_operator): Ditto.
2489         * config/i386/i386-expand.c (ix86_expand_sse_cmp):
2490         Change the type of indirect predicate function to bool.
2491         * config/rs6000/rs6000.c (easy_vector_constant):
2492         Change the type to bool.
2493         * config/mips/mips-protos.h (m16_based_address_p):
2494         Change the type of operand 3 to bool.
2495
2496 2021-07-01  Richard Biener  <rguenther@suse.de>
2497
2498         PR tree-optimization/101280
2499         PR tree-optimization/101173
2500         * gimple-loop-interchange.cc
2501         (tree_loop_interchange::valid_data_dependences): Revert
2502         previous change and instead correctly handle DDR_REVERSED_P
2503         dependence.
2504
2505 2021-07-01  Richard Biener  <rguenther@suse.de>
2506
2507         PR tree-optimization/101278
2508         * tree-ssa-dse.c (dse_classify_store): First check for
2509         uses, then ignore stmt for chaining purposes.
2510
2511 2021-07-01  Richard Biener  <rguenther@suse.de>
2512
2513         PR tree-optimization/100778
2514         * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping
2515         vectorized ops ahead of their scalar BB.
2516
2517 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
2518
2519         PR target/101044
2520         * config/i386/i386.md (*nabs<dwi>2_doubleword):
2521         New insn_and_split pattern.
2522         (*nabs<dwi>2_1): Ditto.
2523         * config/i386/i386-features.c
2524         (general_scalar_chain::compute_convert_gain):
2525         Handle (NEG (ABS (...))) RTX.  Rewrite src code
2526         scanner as switch statement.
2527         (general_scalar_chain::convert_insn):
2528         Handle (NEG (ABS (...))) RTX.
2529         (general_scalar_to_vector_candidate_p):
2530         Detect  (NEG (ABS (...))) RTX.  Reorder case statements
2531         for (AND (NOT (...) ...)) fallthrough.
2532
2533 2021-07-01  Richard Biener  <rguenther@suse.de>
2534
2535         PR tree-optimization/101178
2536         * tree-vect-slp.c (slpg_vertex::materialize): Remove.
2537         (slpg::perm_in): Add.
2538         (slpg::get_perm_in): Remove.
2539         (slpg::get_perm_materialized): Add.
2540         (vect_optimize_slp): Handle VEC_PERM nodes more optimally
2541         during permute propagation and materialization.
2542
2543 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
2544
2545         PR debug/101266
2546         * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.
2547
2548 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
2549
2550         PR middle-end/94366
2551         * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to
2552         is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type,
2553         use boolean_type_node instead of integer_type_node as NE_EXPR type.
2554         (lower_reduction_clauses): Likewise.
2555
2556 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
2557
2558         * config/gcn/gcn.c: Include dwarf2.h.
2559         (gcn_addr_space_debug): New function.
2560         (TARGET_ADDR_SPACE_DEBUG): New hook.
2561
2562 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
2563
2564         * common/config/gcn/gcn-common.c
2565         (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3.
2566         * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer
2567         when emitting CFI.
2568         (gcn_expand_prologue): Prefer the frame pointer when emitting CFI.
2569         (gcn_frame_pointer_rqd): New function.
2570         (TARGET_FRAME_POINTER_REQUIRED): New hook.
2571
2572 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
2573
2574         * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for
2575         prologue register saves.
2576         (gcn_debug_unwind_info): Use UI_DWARF2.
2577         (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC.
2578         (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span.
2579         * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define.
2580         (DWARF_LINK_REGISTER): New define.
2581         (FIRST_PSEUDO_REGISTER): Increment.
2582         (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER.
2583         (CALL_USED_REGISTERS): Likewise.
2584         (REGISTER_NAMES): Likewise.
2585
2586 2021-06-30  Richard Biener  <rguenther@suse.de>
2587
2588         PR tree-optimization/101267
2589         * tree-vect-stmts.c (vect_check_scalar_mask): Adjust
2590         API and use SLP compatible interface of vect_is_simple_use.
2591         Reject not vectorized SLP defs for callers that do not support
2592         that.
2593         (vect_check_store_rhs): Handle masked stores and pass down
2594         the appropriate operator index.
2595         (vectorizable_call): Adjust.
2596         (vectorizable_store): Likewise.
2597         (vectorizable_load): Likewise.  Handle SLP pecularity of
2598         masked loads.
2599         (vect_is_simple_use): Remove special-casing of masked stores.
2600
2601 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
2602
2603         * common.opt (foffload): Remove help as Driver only.
2604         * gcc.c (display_help): Add -foffload.
2605
2606 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
2607
2608         * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC.
2609         (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into
2610         a candidate list; better inform no offload target is configured
2611         and fix hint extraction when passed target is not '\0' at [len].
2612         * common.opt (foffload): Add tailing '.'.
2613         (foffload-options): Likewise; fix flag name in the help string.
2614
2615 2021-06-30  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
2616
2617         PR target/66791
2618         * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32.
2619         (vcage_f32): Gate comparison on __FAST_MATH__.
2620         (vcageq_f32): Likewise.
2621         (vcale_f32): Likewise.
2622         (vcaleq_f32): Likewise.
2623         (vcagt_f32): Likewise.
2624         (vcagtq_f32): Likewise.
2625         (vcalt_f32): Likewise.
2626         (vcaltq_f32): Likewise.
2627         (vcage_f16): Likewise.
2628         (vcageq_f16): Likewise.
2629         (vcale_f16): Likewise.
2630         (vcaleq_f16): Likewise.
2631         (vcagt_f16): Likewise.
2632         (vcagtq_f16): Likewise.
2633         (vcalt_f16): Likewise.
2634         (vcaltq_f16): Likewise.
2635
2636 2021-06-30  Richard Biener  <rguenther@suse.de>
2637
2638         PR tree-optimization/101264
2639         * tree-vect-slp.c (vect_optimize_slp): Propagate the
2640         computed perm_in to all "any" permute successors
2641         we cannot de-duplicate immediately.
2642
2643 2021-06-30  liuhongt  <hongtao.liu@intel.com>
2644
2645         PR target/101248
2646         * config/i386/sse.md
2647         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>):
2648         Refined to ..
2649         (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>):
2650         this.
2651         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined.
2652         * config/i386/subst.md (maskz_scalar): New define_subst.
2653         (maskz_scalar_name): New subst_attr.
2654         (maskz_scalar_op5): Ditto.
2655         (round_saeonly_maskz_scalar_op5): Ditto.
2656         (round_saeonly_maskz_scalar_operand5): Ditto.
2657
2658 2021-06-30  David Edelsohn  <dje.gcc@gmail.com>
2659
2660         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
2661         Increase code CSECT alignment to at least 32 bytes.
2662         * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte
2663         alignment designation.
2664
2665 2021-06-29  Sergei Trofimovich  <siarheit@google.com>
2666
2667         * doc/generic.texi: Fix s/net yet/not yet/ typo.
2668
2669 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
2670
2671         PR tree-optimization/101254
2672         * range-op.cc (operator_minus::op1_op2_relation_effect): Check for
2673         wrapping/non-wrapping when setting the result range.
2674
2675 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
2676
2677         * value-query.cc (gimple_range_global): Allow phis.
2678
2679 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
2680
2681         * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt.
2682         (simplify_using_ranges::op_with_boolean_value_range_p): Add a
2683         statement for location context.
2684         (check_for_binary_op_overflow): Ditto.
2685         (simplify_using_ranges::get_vr_for_comparison): Ditto.
2686         (simplify_using_ranges::compare_name_with_value): Ditto.
2687         (simplify_using_ranges::compare_names): Ditto.
2688         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto.
2689         (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto.
2690         (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto.
2691         (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto.
2692         (simplify_using_ranges::two_valued_val_range_p): Ditto.
2693         (simplify_using_ranges::simplify): Ditto.
2694         * vr-values.h: Adjust prototypes.
2695
2696 2021-06-29  Uroš Bizjak  <ubizjak@gmail.com>
2697
2698         PR target/95046
2699         * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern.
2700
2701 2021-06-29  Julian Brown  <julian@codesourcery.com>
2702
2703         * config/gcn/gcn.c (gcn_init_libfuncs): New function.
2704         (TARGET_INIT_LIBFUNCS): Define target hook using above function.
2705         * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4
2706         otherwise.
2707         (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
2708         (MAX_FIXED_MODE_SIZE): Change to 128.
2709
2710 2021-06-29  Julian Brown  <julian@codesourcery.com>
2711
2712         * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant.
2713         (s_mnemonic): Add clrsb.
2714         (gcn_flbit<mode>_int): Add insn pattern for SImode/DImode.
2715         (clrsb<mode>2): Add expander for SImode/DImode.
2716
2717 2021-06-29  Julian Brown  <julian@codesourcery.com>
2718
2719         * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm,
2720         muldi3): Add patterns.
2721
2722 2021-06-29  Julian Brown  <julian@codesourcery.com>
2723
2724         * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander.
2725         (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns.
2726
2727 2021-06-29  Julian Brown  <julian@codesourcery.com>
2728
2729         * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.
2730
2731 2021-06-29  Joseph Myers  <joseph@codesourcery.com>
2732
2733         * btfout.c, ctfout.c: Include "memmodel.h".
2734
2735 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
2736
2737         * gcc.c (check_offload_target_name): Cast len argument to
2738         %q.*s to 'int'; avoid -Wstringop-truncation warning.
2739
2740 2021-06-29  Richard Biener  <rguenther@suse.de>
2741
2742         * tree-vect-slp.c (vect_optimize_slp): Forward propagate
2743         to "any" permute nodes and relax "any" permute proapgation
2744         during iterative backward propagation.
2745
2746 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
2747
2748         PR other/67300
2749         * common.opt (-foffload=): Update description.
2750         (-foffload-options=): New.
2751         * doc/invoke.texi (C Language Options): Document
2752         -foffload and -foffload-options.
2753         * gcc.c (check_offload_target_name): New, split off from
2754         handle_foffload_option.
2755         (check_foffload_target_names): New.
2756         (handle_foffload_option): Handle -foffload=default.
2757         (driver_handle_option): Update for -foffload-options.
2758         * lto-opts.c (lto_write_options): Use -foffload-options
2759         instead of -foffload.
2760         * lto-wrapper.c (merge_and_complain, append_offload_options):
2761         Likewise.
2762         * opts.c (common_handle_option): Likewise.
2763
2764 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
2765
2766         * doc/invoke.texi (C Language Options): Sort options
2767         alphabetically in optlist and also the description itself.
2768         Remove leftover -fallow-single-precision from and add missing
2769         -fgnu-tm to the optlist.
2770
2771 2021-06-29  Richard Biener  <rguenther@suse.de>
2772
2773         * tree-vect-slp.c (slpg_vertex::visited): Remove.
2774         (vect_slp_perms_eq): Handle -1 permutes.
2775         (vect_optimize_slp): Rewrite permute propagation.
2776
2777 2021-06-29  Jakub Jelinek  <jakub@redhat.com>
2778
2779         PR c++/101210
2780         * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't
2781         perform the optimization in GENERIC when sanitizing and x has a
2782         reference type.
2783
2784 2021-06-29  Richard Biener  <rguenther@suse.de>
2785
2786         PR tree-optimization/101242
2787         * tree-vect-slp.c (vect_slp_build_vertices): Force-add
2788         PHIs with not represented initial values as leafs.
2789
2790 2021-06-29  Jan-Benedict Glaw  <jbglaw@getslash.de>
2791
2792         * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning.
2793         * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove
2794         "register" keyword.
2795         (pdp11_initial_elimination_offset) Remove unused variable.
2796         (pdp11_cmp_length) Ditto.
2797         (pdp11_insn_cost): Ditto, and fix signedness warning.
2798
2799 2021-06-29  David Edelsohn  <dje.gcc@gmail.com>
2800
2801         * btfout.c: Include tm_p.h.
2802         * ctfout.c: Same.
2803
2804 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
2805
2806         * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
2807         frame related.
2808         (bpf_expand_epilogue): Likewise.
2809         * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
2810         Do not define DBX_DEBUGGING_INFO.
2811
2812 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
2813
2814         * doc/invoke.texi: Document the CTF and BTF debug info options.
2815
2816 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
2817             David Faust  <david.faust@oracle.com>
2818             Jose E. Marchesi  <jose.marchesi@oracle.com>
2819             Weimin Pan  <weimin.pan@oracle.com>
2820
2821         * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to
2822         GTFILES.  Add new object files.
2823         * common.opt: Add CTF and BTF debug info options.
2824         * btfout.c: New file.
2825         * ctfc.c: Likewise.
2826         * ctfc.h: Likewise.
2827         * ctfout.c: Likewise.
2828         * dwarf2ctf.c: Likewise.
2829         * dwarf2ctf.h: Likewise.
2830         * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and
2831         BTF_DEBUG.
2832         * dwarf2out.c (dwarf2out_source_line): Likewise.
2833         (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to
2834         be generated.
2835         (debug_format_do_cu): New function.
2836         (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for
2837         them if requested.
2838         Include dwarf2ctf.c.
2839         * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug
2840         formats.
2841         * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG.
2842         (CTF_DEBUG): New bitmask.
2843         (BTF_DEBUG): Likewise.
2844         (enum ctf_debug_info_levels): New enum.
2845         * gengtype.c (open_base_files): Handle ctfc.h.
2846         (main): Handle uint32_t type.
2847         * flags.h (btf_debuginfo_p): New definition.
2848         (dwarf_based_debuginfo_p): Likewise.
2849         * opts.c (debug_type_names): Add entries for CTF and BTF.
2850         (btf_debuginfo_p): New function.
2851         (dwarf_based_debuginfo_p): Likewise.
2852         (common_handle_option): Handle -gctfN and -gbtf options.
2853         (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate.
2854         * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if
2855         frontend is not C.
2856
2857 2021-06-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
2858
2859         * dwarf2out.c (AT_class): Function is no longer static.
2860         (AT_int): Likewise.
2861         (AT_unsigned): Likewise.
2862         (AT_loc): Likewise.
2863         (get_AT): Likewise.
2864         (get_AT_string): Likewise.
2865         (get_AT_flag): Likewise.
2866         (get_AT_unsigned): Likewise.
2867         (get_AT_ref): Likewise.
2868         (new_die_raw): Likewise.
2869         (lookup_decl_die): Likewise.
2870         (base_type_die): Likewise.
2871         (add_name_attribute): Likewise.
2872         (add_AT_int): Likewise.
2873         (add_AT_unsigned): Likewise.
2874         (add_AT_loc): Likewise.
2875         (dw_get_die_tag): New function.
2876         (dw_get_die_child): Likewise.
2877         (dw_get_die_sib): Likewise.
2878         (struct dwarf_file_data): Move from here to dwarf2out.h
2879         (struct dw_attr_struct): Likewise.
2880         * dwarf2out.h: Analogous changes.
2881
2882 2021-06-28  Martin Jambor  <mjambor@suse.cz>
2883
2884         PR ipa/93385
2885         * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
2886         members m_dead_stmts and m_dead_ssas.
2887         * ipa-param-manipulation.c
2888         (ipa_param_body_adjustments::mark_dead_statements): New function.
2889         (ipa_param_body_adjustments::common_initialization): Call it on
2890         all removed but not split parameters.
2891         (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
2892         new mwmbers.
2893         (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that
2894         are dead.
2895         * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset
2896         dead debug statements.
2897         (copy_phis_for_bb): Do not copy dead PHI nodes.
2898
2899 2021-06-28  Martin Jambor  <mjambor@suse.cz>
2900
2901         PR ipa/93385
2902         * symtab-clones.h (clone_info): Removed member param_adjustments.
2903         * ipa-param-manipulation.h: Adjust initial comment to reflect how we
2904         deal with pass-through splits now.
2905         (ipa_param_performed_split): Removed.
2906         (ipa_param_adjustments::modify_call): Adjusted parameters.
2907         (class ipa_param_body_adjustments): Adjusted parameters of
2908         register_replacement, modify_gimple_stmt and modify_call_stmt.
2909         (ipa_verify_edge_has_no_modifications): Declare.
2910         (ipa_edge_modifications_finalize): Declare.
2911         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove
2912         performed_splits processing, pas only edge to padjs->modify_call,
2913         check that call arguments were not modified if they should not have
2914         been.
2915         * cgraphclones.c (cgraph_node::create_clone): Do not copy performed
2916         splits.
2917         * ipa-param-manipulation.c (struct pass_through_split_map): New type.
2918         (ipa_edge_modification_info): Likewise.
2919         (ipa_edge_modification_sum): Likewise.
2920         (ipa_edge_modifications): New edge summary.
2921         (ipa_verify_edge_has_no_modifications): New function.
2922         (transitive_split_p): Removed.
2923         (transitive_split_map): Likewise.
2924         (init_transitive_splits): Likewise.
2925         (ipa_param_adjustments::modify_call): Adjusted to use the new edge
2926         summary instead of performed_splits.
2927         (ipa_param_body_adjustments::register_replacement): Drop dummy
2928         parameter, set base_index of the created ipa_param_body_replacement.
2929         (phi_arg_will_live_p): New function.
2930         (ipa_param_body_adjustments::common_initialization): Do not create
2931         IPA_SRA dummy decls.
2932         (simple_tree_swap_info): Removed.
2933         (remap_split_decl_to_dummy): Likewise.
2934         (record_argument_state_1): New function.
2935         (record_argument_state): Likewise.
2936         (ipa_param_body_adjustments::modify_call_stmt): New parameter
2937         orig_stmt.  Do not work with dummy decls, save necessary info about
2938         changes to ipa_edge_modifications.
2939         (ipa_param_body_adjustments::modify_gimple_stmt): New parameter
2940         orig_stmt, pass it to modify_call_stmt.
2941         (ipa_param_body_adjustments::modify_cfun_body): Adjust call to
2942         modify_gimple_stmt.
2943         (ipa_edge_modifications_finalize): New function.
2944         * tree-inline.c (remap_gimple_stmt): Pass original statement to
2945         modify_gimple_stmt.
2946         (copy_phis_for_bb): Do not copy dead PHI nodes.
2947         (expand_call_inline): Do not remap performed_splits.
2948         (update_clone_info): Likewise.
2949         * toplev.c: Include ipa-param-manipulation.h.
2950         (toplev::finalize): Call ipa_edge_modifications_finalize.
2951
2952 2021-06-28  Andrew Pinski  <apinski@marvell.com>
2953
2954         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range
2955         info if we're the only things setting the target PHI.
2956         (value_replacement): Don't duplicate range here.
2957         (minmax_replacement): Likewise.
2958
2959 2021-06-28  Richard Biener  <rguenther@suse.de>
2960
2961         PR tree-optimization/101229
2962         * gimple-walk.c (gimple_walk_op): Handle PHIs.
2963
2964 2021-06-28  Martin Liska  <mliska@suse.cz>
2965
2966         * config/v850/v850.c (construct_dispose_instruction): Allocate
2967         a bigger buffer.
2968         (construct_prepare_instruction): Likewise.
2969
2970 2021-06-28  Martin Liska  <mliska@suse.cz>
2971
2972         * config/v850/v850.c (v850_option_override): Build default
2973         target node.
2974         (v850_can_inline_p): New.  Allow MASK_PROLOG_FUNCTION to be
2975         ignored for inlining.
2976         (TARGET_CAN_INLINE_P): New.
2977
2978 2021-06-28  Richard Biener  <rguenther@suse.de>
2979
2980         PR tree-optimization/101207
2981         * tree-vect-slp.c (vect_optimize_slp): Do BB reduction
2982         permute eliding for load permutations properly.
2983
2984 2021-06-28  Richard Biener  <rguenther@suse.de>
2985
2986         PR tree-optimization/101173
2987         * gimple-loop-interchange.cc
2988         (tree_loop_interchange::valid_data_dependences): Disallow outer
2989         loop dependence distance of zero.
2990
2991 2021-06-28  liuhongt  <hongtao.liu@intel.com>
2992
2993         PR target/100648
2994         * config/i386/sse.md (*avx_cmp<mode>3_lt): New
2995         define_insn_and_split.
2996         (*avx_cmp<mode>3_ltint): Ditto.
2997         (*avx2_pcmp<mode>3_3): Ditto.
2998         (*avx2_pcmp<mode>3_4): Ditto.
2999         (*avx2_pcmp<mode>3_5): Ditto.
3000
3001 2021-06-28  liuhongt  <hongtao.liu@intel.com>
3002
3003         * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256,
3004         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256,
3005         IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS,
3006         IX86_BUILTIN_PBLENDVB128): Replace icode with
3007         CODE_FOR_nothing.
3008         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv
3009         builtins.
3010         * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not):
3011         New pre_reload splitter.
3012
3013 2021-06-27  Andrew Pinski  <apinski@marvell.com>
3014
3015         PR middle-end/101230
3016         * fold-const.c (fold_ternary_loc): Check
3017         the return value of invert_tree_comparison.
3018
3019 2021-06-27  David Edelsohn  <dje.gcc@gmail.com>
3020
3021         * config.gcc: Add SPDX License Identifier.
3022         (powerpc-ibm-aix789): Default to aix73.h.
3023         (powerpc-ibm-aix7.2.*.*): New stanza.
3024         * config/rs6000/aix72.h: Add SPDX License Identifier.
3025         * config/rs6000/aix73.h: New file.
3026
3027 2021-06-26  Jason Merrill  <jason@redhat.com>
3028
3029         * except.c: #include "dwarf2.h" instead of "dwarf2out.h".
3030
3031 2021-06-26  Andrew Pinski  <apinski@marvell.com>
3032
3033         * genmatch.c (lower_cond): Copy for_subst_vec
3034         for the simplify also.
3035         (lower): Swap the order for lower_for and lower_cond.
3036
3037 2021-06-26  Andrew Pinski  <apinski@marvell.com>
3038
3039         * tree-ssa-phiopt.c (match_simplify_replacement): Reset
3040         flow senatitive info on the moved ssa set.
3041
3042 2021-06-26  Andrew Pinski  <apinski@marvell.com>
3043
3044         * fold-const.c (fold_cond_expr_with_comparison):
3045         Exand arg0 into comp_code, arg00, and arg01.
3046         (fold_ternary_loc): Use invert_tree_comparison
3047         instead of fold_invert_truthvalue for the case
3048         where we have A CMP B ? C : A.
3049
3050 2021-06-25  Martin Sebor  <msebor@redhat.com>
3051
3052         PR middle-end/101216
3053         * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant.
3054
3055 2021-06-25  Jeff Law  <jeffreyalaw@gmail.com>
3056
3057         * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT.
3058
3059 2021-06-25  Richard Biener  <rguenther@suse.de>
3060
3061         PR tree-optimization/101202
3062         * tree-vect-slp.c (vect_optimize_slp): Explicitely handle
3063         failed nodes.
3064
3065 2021-06-25  Richard Biener  <rguenther@suse.de>
3066
3067         * tree-vect-slp-patterns.c (addsub_pattern::build): Copy
3068         STMT_VINFO_REDUC_DEF from the original representative.
3069
3070 2021-06-25  Martin Sebor  <msebor@redhat.com>
3071
3072         * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING,
3073         gimple_no_warning_p and gimple_set_no_warning with
3074         warning_suppressed_p, and suppress_warning.
3075         (c_strlen): Same.
3076         (maybe_warn_for_bound): Same.
3077         (warn_for_access): Same.
3078         (check_access): Same.
3079         (expand_builtin_strncmp): Same.
3080         (fold_builtin_varargs): Same.
3081         * calls.c (maybe_warn_nonstring_arg): Same.
3082         (maybe_warn_rdwr_sizes): Same.
3083         * cfgexpand.c (expand_call_stmt): Same.
3084         * cgraphunit.c (check_global_declaration): Same.
3085         * fold-const.c (fold_undefer_overflow_warnings): Same.
3086         (fold_truth_not_expr): Same.
3087         (fold_unary_loc): Same.
3088         (fold_checksum_tree): Same.
3089         * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same.
3090         (array_bounds_checker::check_mem_ref): Same.
3091         (array_bounds_checker::check_addr_expr): Same.
3092         (array_bounds_checker::check_array_bounds): Same.
3093         * gimple-expr.c (copy_var_decl): Same.
3094         * gimple-fold.c (gimple_fold_builtin_strcpy): Same.
3095         (gimple_fold_builtin_strncat): Same.
3096         (gimple_fold_builtin_stxcpy_chk): Same.
3097         (gimple_fold_builtin_stpcpy): Same.
3098         (gimple_fold_builtin_sprintf): Same.
3099         (fold_stmt_1): Same.
3100         * gimple-ssa-isolate-paths.c (diag_returned_locals): Same.
3101         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
3102         * gimple-ssa-sprintf.c (handle_printf_call): Same.
3103         * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same.
3104         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
3105         * gimple-ssa-warn-restrict.h: Adjust declarations.
3106         (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING,
3107         gimple_no_warning_p and gimple_set_no_warning with
3108         warning_suppressed_p, and suppress_warning.
3109         (check_call): Same.
3110         (check_bounds_or_overlap): Same.
3111         * gimple.c (gimple_build_call_from_tree): Same.
3112         * gimplify.c (gimplify_return_expr): Same.
3113         (gimplify_cond_expr): Same.
3114         (gimplify_modify_expr_complex_part): Same.
3115         (gimplify_modify_expr): Same.
3116         (gimple_push_cleanup): Same.
3117         (gimplify_expr): Same.
3118         * omp-expand.c (expand_omp_for_generic): Same.
3119         (expand_omp_taskloop_for_outer): Same.
3120         * omp-low.c (lower_rec_input_clauses): Same.
3121         (lower_lastprivate_clauses): Same.
3122         (lower_send_clauses): Same.
3123         (lower_omp_target): Same.
3124         * tree-cfg.c (pass_warn_function_return::execute): Same.
3125         * tree-complex.c (create_one_component_var): Same.
3126         * tree-inline.c (remap_gimple_op_r): Same.
3127         (copy_tree_body_r): Same.
3128         (declare_return_variable): Same.
3129         (expand_call_inline): Same.
3130         * tree-nested.c (lookup_field_for_decl): Same.
3131         * tree-sra.c (create_access_replacement): Same.
3132         (generate_subtree_copies): Same.
3133         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.
3134         * tree-ssa-forwprop.c (combine_cond_expr_cond): Same.
3135         * tree-ssa-loop-ch.c (ch_base::copy_headers): Same.
3136         * tree-ssa-loop-im.c (execute_sm): Same.
3137         * tree-ssa-phiopt.c (cond_store_replacement): Same.
3138         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
3139         (handle_builtin_strcpy): Same.
3140         (maybe_diag_stxncpy_trunc): Same.
3141         (handle_builtin_stxncpy_strncat): Same.
3142         (handle_builtin_strcat): Same.
3143         * tree-ssa-uninit.c (get_no_uninit_warning): Same.
3144         (set_no_uninit_warning): Same.
3145         (uninit_undefined_value_p): Same.
3146         (warn_uninit): Same.
3147         (maybe_warn_operand): Same.
3148         * tree-vrp.c (compare_values_warnv): Same.
3149         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same.
3150         (test_for_singularity): Same.
3151         * gimple.h (warning_suppressed_p): New function.
3152         (suppress_warning): Same.
3153         (copy_no_warning): Same.
3154         (gimple_set_block): Call gimple_set_location.
3155         (gimple_set_location): Call copy_warning.
3156
3157 2021-06-25  Martin Sebor  <msebor@redhat.com>
3158
3159         * tree.h (warning_suppressed_at, copy_warning,
3160         warning_suppressed_p, suppress_warning): New functions.
3161
3162 2021-06-25  Martin Sebor  <msebor@redhat.com>
3163
3164         * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o.
3165         * gengtype.c (open_base_files): Add diagnostic-spec.h.
3166         * diagnostic-spec.c: New file.
3167         * diagnostic-spec.h: New file.
3168         * tree.h (no_warning, all_warnings, suppress_warning_at): New
3169         declarations.
3170         * warning-control.cc: New file.
3171
3172 2021-06-25  liuhongt  <hongtao.liu@intel.com>
3173
3174         PR target/101185
3175         * config/i386/i386.c (x86_order_regs_for_local_alloc):
3176         Revert r12-1669.
3177
3178 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
3179
3180         PR tree-optimization/101189
3181         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass
3182         LHS range of condition to postfold routine.
3183         (fold_using_range::postfold_gcond_edges): Only process the TRUE or
3184         FALSE edge if the LHS range supports it being taken.
3185         * gimple-range-fold.h (postfold_gcond_edges): Add range parameter.
3186
3187 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
3188
3189         * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks.
3190         (relation_oracle::find_relation_block): Check correct bitmap.
3191         (relation_oracle::dump): Do not dump NULL blocks.
3192
3193 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
3194
3195         * gimple-range-cache.cc (ranger_cache::propagate_cache): Call
3196         range_on_edge instead of manually calculating.
3197
3198 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
3199
3200         * range-op.cc: Fix comment.
3201
3202 2021-06-24  Uroš Bizjak  <ubizjak@gmail.com>
3203
3204         PR target/89021
3205         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
3206         Handle V8QI and V4HI modes.
3207         * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2):
3208         New insn pattern.
3209         (sse4_1_<any_extend:code>v4qiv4hi2): Ditto.
3210         (mmxpackmode): New mode attribute.
3211         (vec_pack_trunc_<mmxpackmode:mode>): New expander.
3212         (mmxunpackmode): New mode attribute.
3213         (vec_unpacks_lo_<mmxunpackmode:mode>): New expander.
3214         (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto.
3215         (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto.
3216         (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto.
3217         * config/i386/i386.md (extsuffix): Move from ...
3218         * config/i386/sse.md: ... here.
3219
3220 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
3221
3222         * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here..
3223         (dwarf2out_finish): ...instead of here.
3224
3225 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
3226
3227         * configure.ac (--gdwarf-5 option): Use objdump instead of readelf.
3228         (working --gdwarf-4/--gdwarf-5 for all sources): Likewise.
3229         (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows.
3230         * configure: Regenerate.
3231
3232 2021-06-24  Richard Biener  <rguenther@suse.de>
3233
3234         * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3,
3235         vec_addsubv8sf3, vec_addsubv4sf3): Merge into ...
3236         (vec_addsub<mode>3): ... using a new addsub_cst mode attribute.
3237
3238 2021-06-24  Richard Biener  <rguenther@suse.de>
3239
3240         * config/i386/sse.md (avx_addsubv4df3): Rename to
3241         vec_addsubv4df3.
3242         (avx_addsubv8sf3): Rename to vec_addsubv8sf3.
3243         (sse3_addsubv2df3): Rename to vec_addsubv2df3.
3244         (sse3_addsubv4sf3): Rename to vec_addsubv4sf3.
3245         * config/i386/i386-builtin.def: Adjust.
3246         * internal-fn.def (VEC_ADDSUB): New internal optab fn.
3247         * optabs.def (vec_addsub_optab): New optab.
3248         * tree-vect-slp-patterns.c (class addsub_pattern): New.
3249         (slp_patterns): Add addsub_pattern.
3250         * tree-vect-slp.c (vect_optimize_slp): Disable propagation
3251         across CFN_VEC_ADDSUB.
3252         * tree-vectorizer.h (vect_pattern::vect_pattern): Make
3253         m_ops optional.
3254         * doc/md.texi (vec_addsub<mode>3): Document.
3255
3256 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
3257
3258         PR middle-end/101170
3259         * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs
3260         where regno + subreg_regno_offset wraps around use 0 as starting
3261         regno.
3262
3263 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
3264
3265         PR middle-end/101172
3266         * stor-layout.c (finish_bitfield_representative): If nextf has
3267         error_mark_node type, set repr type to error_mark_node too.
3268
3269 2021-06-24  Ilya Leoshkevich  <iii@linux.ibm.com>
3270
3271         * config/s390/s390.c (s390_function_profiler): Ignore labelno
3272         parameter.
3273         * config/s390/s390.h (NO_PROFILE_COUNTERS): Define.
3274
3275 2021-06-24  Richard Biener  <rguenther@suse.de>
3276
3277         * tree-vect-slp.c (vect_optimize_slp): Do not propagate
3278         across operations that have different semantics on different
3279         lanes.
3280
3281 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
3282
3283         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP.
3284         * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses
3285         with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification
3286         of non-decl OMP_CLAUSE_DECL.  For OMP_CLAUSE_IN_REDUCTION on
3287         OMP_TARGET user outer_ctx instead of ctx for placeholders and
3288         initializer/combiner gimplification.
3289         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION
3290         on target constructs.
3291         (lower_rec_input_clauses): Likewise.
3292         (lower_omp_target): Likewise.
3293         * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause
3294         on target if in_reduction is present.
3295
3296 2021-06-24  Kewen Lin  <linkw@linux.ibm.com>
3297
3298         * tree-predcom.c (class pcom_worker): New class.
3299         (release_chain): Renamed to...
3300         (pcom_worker::release_chain): ...this.
3301         (release_chains): Renamed to...
3302         (pcom_worker::release_chains): ...this.
3303         (aff_combination_dr_offset): Renamed to...
3304         (pcom_worker::aff_combination_dr_offset): ...this.
3305         (determine_offset): Renamed to...
3306         (pcom_worker::determine_offset): ...this.
3307         (class comp_ptrs): New class.
3308         (split_data_refs_to_components): Renamed to...
3309         (pcom_worker::split_data_refs_to_components): ...this,
3310         and update with class comp_ptrs.
3311         (suitable_component_p): Renamed to...
3312         (pcom_worker::suitable_component_p): ...this.
3313         (filter_suitable_components): Renamed to...
3314         (pcom_worker::filter_suitable_components): ...this.
3315         (valid_initializer_p): Renamed to...
3316         (pcom_worker::valid_initializer_p): ...this.
3317         (find_looparound_phi): Renamed to...
3318         (pcom_worker::find_looparound_phi): ...this.
3319         (add_looparound_copies): Renamed to...
3320         (pcom_worker::add_looparound_copies): ...this.
3321         (determine_roots_comp): Renamed to...
3322         (pcom_worker::determine_roots_comp): ...this.
3323         (determine_roots): Renamed to...
3324         (pcom_worker::determine_roots): ...this.
3325         (single_nonlooparound_use): Renamed to...
3326         (pcom_worker::single_nonlooparound_use): ...this.
3327         (remove_stmt): Renamed to...
3328         (pcom_worker::remove_stmt): ...this.
3329         (execute_pred_commoning_chain): Renamed to...
3330         (pcom_worker::execute_pred_commoning_chain): ...this.
3331         (execute_pred_commoning): Renamed to...
3332         (pcom_worker::execute_pred_commoning): ...this.
3333         (struct epcc_data): New member worker.
3334         (execute_pred_commoning_cbck): Call execute_pred_commoning
3335         with pcom_worker pointer.
3336         (find_use_stmt): Renamed to...
3337         (pcom_worker::find_use_stmt): ...this.
3338         (find_associative_operation_root): Renamed to...
3339         (pcom_worker::find_associative_operation_root): ...this.
3340         (find_common_use_stmt): Renamed to...
3341         (pcom_worker::find_common_use_stmt): ...this.
3342         (combinable_refs_p): Renamed to...
3343         (pcom_worker::combinable_refs_p): ...this.
3344         (reassociate_to_the_same_stmt): Renamed to...
3345         (pcom_worker::reassociate_to_the_same_stmt): ...this.
3346         (stmt_combining_refs): Renamed to...
3347         (pcom_worker::stmt_combining_refs): ...this.
3348         (combine_chains): Renamed to...
3349         (pcom_worker::combine_chains): ...this.
3350         (try_combine_chains): Renamed to...
3351         (pcom_worker::try_combine_chains): ...this.
3352         (prepare_initializers_chain): Renamed to...
3353         (pcom_worker::prepare_initializers_chain): ...this.
3354         (prepare_initializers): Renamed to...
3355         (pcom_worker::prepare_initializers): ...this.
3356         (prepare_finalizers_chain): Renamed to...
3357         (pcom_worker::prepare_finalizers_chain): ...this.
3358         (prepare_finalizers): Renamed to...
3359         (pcom_worker::prepare_finalizers): ...this.
3360         (tree_predictive_commoning_loop): Renamed to...
3361         (pcom_worker::tree_predictive_commoning_loop): ...this, adjust
3362         some calls and remove some cleanup code.
3363         (tree_predictive_commoning): Adjusted to use pcom_worker instance.
3364         (static variable looparound_phis): Remove.
3365         (static variable name_expansions): Remove.
3366
3367 2021-06-24  Richard Biener  <rguenther@suse.de>
3368
3369         * tree-vect-slp.c (slpg_vertex): New struct.
3370         (vect_slp_build_vertices): Adjust.
3371         (vect_optimize_slp): Likewise.  Maintain an outgoing permute
3372         and a materialized one.
3373
3374 2021-06-24  Richard Biener  <rguenther@suse.de>
3375
3376         PR tree-optimization/101105
3377         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
3378         Only ignore steps when they are equal or scalar order is preserved.
3379
3380 2021-06-24  liuhongt  <hongtao.liu@intel.com>
3381
3382         PR target/98434
3383         * config/i386/i386-expand.c (ix86_expand_vec_interleave):
3384         Adjust comments for ix86_expand_vecop_qihi2.
3385         (ix86_expand_vecmul_qihi): Renamed to ..
3386         (ix86_expand_vecop_qihi2): Adjust function prototype to
3387         support shift operation, add static to definition.
3388         (ix86_expand_vec_shift_qihi_constant): Add static to definition.
3389         (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and
3390         ix86_expand_vec_shift_qihi_constant.
3391         * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted.
3392         (ix86_expand_vec_shift_qihi_constant): Deleted.
3393         * config/i386/sse.md (VI12_256_512_AVX512VL): New mode
3394         iterator.
3395         (mulv8qi3): Call ix86_expand_vecop_qihi directly, add
3396         condition TARGET_64BIT.
3397         (mul<mode>3): Ditto.
3398         (<insn><mode>3): Ditto.
3399         (vlshr<mode>3): Extend to support avx512 vlshr.
3400         (v<insn><mode>3): New expander for
3401         vashr/vlshr/vashl.
3402         (v<insn>v8qi3): Ditto.
3403         (vashrv8hi3<mask_name>): Renamed to ..
3404         (vashr<mode>3): And extend to support V16QImode for avx512.
3405         (vashrv16qi3): Deleted.
3406         (vashrv2di3<mask_name>): Extend expander to support avx512
3407         instruction.
3408
3409 2021-06-23  Dimitar Dimitrov  <dimitar@dinux.eu>
3410
3411         * doc/lto.texi (Design Overview): Update that slim objects are
3412         the default.
3413
3414 2021-06-23  Aaron Sawdey  <acsawdey@linux.ibm.com>
3415
3416         * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out
3417         of OTHER_POWER10_MASKS so it will not be enabled by default.
3418
3419 2021-06-23  Richard Biener  <rguenther@suse.de>
3420             Martin Jambor  <mjambor@suse.cz>
3421
3422         * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the
3423         param replacement unconditionally.  Adjust comment.
3424
3425 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
3426
3427         * Makefile.in (OBJS): Add gimple-range-fold.o
3428         * gimple-range-fold.cc: New.
3429         * gimple-range-fold.h: New.
3430         * gimple-range-gori.cc (gimple_range_calc_op1): Move to here.
3431         (gimple_range_calc_op2): Ditto.
3432         * gimple-range-gori.h: Move prototypes to here.
3433         * gimple-range.cc: Adjust include files.
3434         (fur_source:fur_source): Relocate to gimple-range-fold.cc.
3435         (fur_source::get_operand): Ditto.
3436         (fur_source::get_phi_operand): Ditto.
3437         (fur_source::query_relation): Ditto.
3438         (fur_source::register_relation): Ditto.
3439         (class fur_edge): Ditto.
3440         (fur_edge::fur_edge): Ditto.
3441         (fur_edge::get_operand): Ditto.
3442         (fur_edge::get_phi_operand): Ditto.
3443         (fur_stmt::fur_stmt): Ditto.
3444         (fur_stmt::get_operand): Ditto.
3445         (fur_stmt::get_phi_operand): Ditto.
3446         (fur_stmt::query_relation): Ditto.
3447         (class fur_depend): Relocate to gimple-range-fold.h.
3448         (fur_depend::fur_depend): Relocate to gimple-range-fold.cc.
3449         (fur_depend::register_relation): Ditto.
3450         (fur_depend::register_relation): Ditto.
3451         (class fur_list): Ditto.
3452         (fur_list::fur_list): Ditto.
3453         (fur_list::get_operand): Ditto.
3454         (fur_list::get_phi_operand): Ditto.
3455         (fold_range): Ditto.
3456         (adjust_pointer_diff_expr): Ditto.
3457         (gimple_range_adjustment): Ditto.
3458         (gimple_range_base_of_assignment): Ditto.
3459         (gimple_range_operand1): Ditto.
3460         (gimple_range_operand2): Ditto.
3461         (gimple_range_calc_op1): Relocate to gimple-range-gori.cc.
3462         (gimple_range_calc_op2): Ditto.
3463         (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc.
3464         (fold_using_range::range_of_range_op): Ditto.
3465         (fold_using_range::range_of_address): Ditto.
3466         (fold_using_range::range_of_phi): Ditto.
3467         (fold_using_range::range_of_call): Ditto.
3468         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
3469         (fold_using_range::range_of_builtin_call): Ditto.
3470         (fold_using_range::range_of_cond_expr): Ditto.
3471         (fold_using_range::range_of_ssa_name_with_loop_info): Ditto.
3472         (fold_using_range::relation_fold_and_or): Ditto.
3473         (fold_using_range::postfold_gcond_edges): Ditto.
3474         * gimple-range.h: Add gimple-range-fold.h to include files. Change
3475         GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H.
3476         (gimple_range_handler): Relocate to gimple-range-fold.h.
3477         (gimple_range_ssa_p): Ditto.
3478         (range_compatible_p): Ditto.
3479         (class fur_source): Ditto.
3480         (class fur_stmt): Ditto.
3481         (class fold_using_range): Ditto.
3482         (gimple_range_calc_op1): Relocate to gimple-range-gori.h
3483         (gimple_range_calc_op2): Ditto.
3484
3485 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
3486
3487         PR tree-optimization/101148
3488         PR tree-optimization/101014
3489         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
3490         (ranger_cache::~ranger_cache): Adjust.
3491         (ranger_cache::block_range): Check if propagation disallowed.
3492         (ranger_cache::propagate_cache): Disallow propagation if new value
3493         can't be stored properly.
3494         * gimple-range-cache.h (ranger_cache::m_propfail): New member.
3495
3496 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
3497
3498         * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype.
3499         (sbr_vector::set_bb_range): Return true.
3500         (class sbr_sparse_bitmap): Adjust.
3501         (sbr_sparse_bitmap::set_bb_range): Return value.
3502         (block_range_cache::set_bb_range): Return value.
3503         (ranger_cache::propagate_cache): Use return value to print msg.
3504         * gimple-range-cache.h (class block_range_cache): Adjust.
3505
3506 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
3507
3508         * gimple-range.cc (dump_bb): Use range_on_edge from the cache.
3509
3510 2021-06-23  Jeff Law  <jeffreyalaw@gmail.com>
3511
3512         * config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn>
3513         so this pattern can be used for test/compare removal.  Pass
3514         current insn to compute_logical_op_length and output_logical_op.
3515         * config/h8300/h8300.c (compute_logical_op_cc): Remove.
3516         (h8300_and_costs): Add argument to compute_logical_op_length.
3517         (output_logical_op): Add new argument.  Use it to determine if the
3518         condition codes are used and adjust the output accordingly.
3519         (compute_logical_op_length): Add new argument and update length
3520         computations when condition codes are used.
3521         * config/h8300/h8300-protos.h (compute_logical_op_length): Update
3522         prototype.
3523         (output_logical_op): Likewise.
3524
3525 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
3526
3527         PR target/89021
3528         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
3529         Handle 64bit modes for TARGET_XOP.  Use indirect gen_* functions.
3530         * config/i386/mmx.md (mmx_ppermv64): New insn pattern.
3531         * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ...
3532         * config/i386/sse.md (unspec): ... here.
3533
3534 2021-06-23  Martin Liska  <mliska@suse.cz>
3535
3536         PR target/98636
3537         * optc-save-gen.awk: Put back arm_fp16_format to
3538         checked_options.
3539
3540 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
3541
3542         PR target/101175
3543         * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
3544         (bsr): Ditto.
3545         (*bsrhi): Remove.
3546         (clz<mode>2): Update RTX pattern for additions.
3547
3548 2021-06-23  Jakub Jelinek  <jakub@redhat.com>
3549
3550         PR middle-end/101167
3551         * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs
3552         and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set.
3553
3554 2021-06-22  Sergei Trofimovich  <siarheit@google.com>
3555
3556         * doc/rtl.texi: drop unbalanced parenthesis.
3557
3558 2021-06-22  Richard Biener  <rguenther@suse.de>
3559
3560         PR middle-end/101156
3561         * gimplify.c (gimplify_expr): Remove premature incorrect
3562         optimization.
3563
3564 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
3565
3566         PR tree-optimization/101159
3567         * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some
3568         comment typos.
3569
3570 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
3571
3572         PR middle-end/101160
3573         * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type
3574         clear crtl->return_rtx instead of keeping it referencing a pseudo.
3575
3576 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
3577             Andrew Pinski  <apinski@marvell.com>
3578
3579         PR tree-optimization/101162
3580         * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer
3581         types.
3582
3583 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
3584
3585         * range-op.cc (range_relational_tests): New.
3586         (range_op_tests): Call range_relational_tests.
3587
3588 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
3589
3590         * range-op.cc (operator_cast::lhs_op1_relation): New.
3591         (operator_identity::lhs_op1_relation): Mew.
3592
3593 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
3594
3595         * range-op.cc (operator_minus::op1_op2_relation_effect): New.
3596
3597 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
3598
3599         * range-op.cc (operator_plus::lhs_op1_relation): New.
3600         (operator_plus::lhs_op2_relation): New.
3601
3602 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
3603
3604         * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a
3605         relation_oracle if dominators exist.
3606         (ranger_cache::~ranger_cache): Dispose of oracle.
3607         (ranger_cache::dump_bb): Dump oracle.
3608         * gimple-range.cc (fur_source::fur_source): New.
3609         (fur_source::get_operand): Use mmeber query.
3610         (fur_source::get_phi_operand): Use member_query.
3611         (fur_source::query_relation): New.
3612         (fur_source::register_dependency): Delete.
3613         (fur_source::register_relation): New.
3614         (fur_edge::fur_edge): Adjust.
3615         (fur_edge::get_phi_operand): Fix comment.
3616         (fur_edge::query): Delete.
3617         (fur_stmt::fur_stmt): Adjust.
3618         (fur_stmt::query): Delete.
3619         (fur_depend::fur_depend): Adjust.
3620         (fur_depend::register_relation): New.
3621         (fur_depend::register_relation): New.
3622         (fur_list::fur_list): Adjust.
3623         (fur_list::get_operand): Use member query.
3624         (fold_using_range::range_of_range_op): Process and query relations.
3625         (fold_using_range::range_of_address): Adjust dependency call.
3626         (fold_using_range::range_of_phi): Ditto.
3627         (gimple_ranger::gimple_ranger): New.  Use ranger_ache oracle.
3628         (fold_using_range::relation_fold_and_or): New.
3629         (fold_using_range::postfold_gcond_edges): New.
3630         * gimple-range.h (class gimple_ranger): Adjust.
3631         (class fur_source): Adjust members.
3632         (class fur_stmt): Ditto.
3633         (class fold_using_range): Ditto.
3634
3635 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
3636
3637         * range-op.cc (range_operator::wi_fold): Apply relation effect.
3638         (range_operator::fold_range): Adjust and apply relation effect.
3639         (*::fold_range): Add relation parameters.
3640         (*::op1_range): Ditto.
3641         (*::op2_range): Ditto.
3642         (range_operator::lhs_op1_relation): New.
3643         (range_operator::lhs_op2_relation): New.
3644         (range_operator::op1_op2_relation): New.
3645         (range_operator::op1_op2_relation_effect): New.
3646         (relop_early_resolve): New.
3647         (operator_equal::op1_op2_relation): New.
3648         (operator_equal::fold_range): Call relop_early_resolve.
3649         (operator_not_equal::op1_op2_relation): New.
3650         (operator_not_equal::fold_range): Call relop_early_resolve.
3651         (operator_lt::op1_op2_relation): New.
3652         (operator_lt::fold_range): Call relop_early_resolve.
3653         (operator_le::op1_op2_relation): New.
3654         (operator_le::fold_range): Call relop_early_resolve.
3655         (operator_gt::op1_op2_relation): New.
3656         (operator_gt::fold_range): Call relop_early_resolve.
3657         (operator_ge::op1_op2_relation): New.
3658         (operator_ge::fold_range): Call relop_early_resolve.
3659         * range-op.h (class range_operator): Adjust parameters and methods.
3660
3661 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
3662
3663         * Makefile.in (OBJS): Add value-relation.o.
3664         * gimple-range.h: Adjust include files.
3665         * tree-data-ref.c: Adjust include file order.
3666         * value-query.cc (range_query::get_value_range): Default to no oracle.
3667         (range_query::query_relation): New.
3668         (range_query::query_relation): New.
3669         * value-query.h (class range_query): Adjust.
3670         * value-relation.cc: New.
3671         * value-relation.h: New.
3672
3673 2021-06-22  Richard Biener  <rguenther@suse.de>
3674
3675         PR tree-optimization/101151
3676         * tree-ssa-sink.c (statement_sink_location): Expand irreducible
3677         region check.
3678
3679 2021-06-22  Jojo R  <rjiejie@linux.alibaba.com>
3680
3681         * config/riscv/riscv.c (thead_c906_tune_info): New.
3682         (riscv_tune_info_table): Use new tune.
3683
3684 2021-06-22  Richard Biener  <rguenther@suse.de>
3685
3686         PR tree-optimization/101158
3687         * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand
3688         checking after checking for matching operation.
3689
3690 2021-06-22  Richard Biener  <rguenther@suse.de>
3691
3692         PR tree-optimization/101159
3693         * tree-vect-patterns.c (vect_recog_popcount_pattern): Add
3694         missing NULL vectype check.
3695
3696 2021-06-22  Richard Biener  <rguenther@suse.de>
3697
3698         PR tree-optimization/101154
3699         * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access.
3700
3701 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
3702
3703         PR target/11877
3704         * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare.
3705         * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable.
3706         * config/i386/i386.c (ix86_expand_prologue): Clear it.
3707         * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx):
3708         Remove "" from match_operand.  Emit new insns using emit_move_insn and
3709         set ix86_last_zero_store_uid to INSN_UID of the last store.
3710         Add peephole2s for 1/2/4 stores of const0_rtx following previous
3711         successful peep2s.
3712
3713 2021-06-22  Martin Liska  <mliska@suse.cz>
3714
3715         * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format
3716         was changed.
3717
3718 2021-06-22  Martin Liska  <mliska@suse.cz>
3719
3720         * gcov-io.h: Remove padding entries.
3721
3722 2021-06-22  liuhongt  <hongtao.liu@intel.com>
3723
3724         PR tree-optimization/97770
3725         * tree-vect-patterns.c (vect_recog_popcount_pattern):
3726         New.
3727         (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern.
3728
3729 2021-06-22  liuhongt  <hongtao.liu@intel.com>
3730
3731         PR target/100267
3732         * config/i386/i386-builtin.def (BDESC): Adjust builtin name.
3733         * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to ..
3734         (expand<mode>_mask): this ..
3735         (*expand<mode>_mask): New pre_reload splitter to transform
3736         v{,p}expand* to vmov* when mask is zero, all ones, or has all
3737         ones in it's lower part, otherwise still generate
3738         v{,p}expand*.
3739
3740 2021-06-22  liuhongt  <hongtao.liu@intel.com>
3741
3742         PR target/100310
3743         * config/i386/i386-expand.c
3744         (ix86_expand_special_args_builtin): Keep constm1_operand only
3745         if it satisfies insn's operand predicate.
3746
3747 2021-06-21  Jason Merrill  <jason@redhat.com>
3748
3749         PR target/88529
3750         * df-scan.c (df_ref_record): Check that regno < endregno.
3751         * function.c (assign_parms, expand_function_end): Do nothing with a
3752         TYPE_EMPTY_P result.
3753
3754 2021-06-21  Richard Biener  <rguenther@suse.de>
3755
3756         PR tree-optimization/101120
3757         * tree-vect-data-refs.c (bump_vector_ptr): Fold the
3758         built increment.
3759         * tree-vect-slp.c (vect_transform_slp_perm_load): Add
3760         DR chain DCE capability.
3761         * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
3762         * tree-vect-stmts.c (vectorizable_load): Remove unused
3763         loads in the DR chain for SLP.
3764
3765 2021-06-21  Jakub Jelinek  <jakub@redhat.com>
3766
3767         PR inline-asm/100785
3768         * gimplify.c (gimplify_asm_expr): Don't diagnose errors if
3769         output or input operands were already error_mark_node.
3770         * cfgexpand.c (expand_asm_stmt): If errors are emitted,
3771         remove all inputs, outputs and clobbers from the asm and
3772         set template to "".
3773
3774 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
3775
3776         * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b.
3777         (vceq_s16): Likewise.
3778         (vceq_s32): Likewise.
3779         (vceq_u8): Likewise.
3780         (vceq_u16): Likewise.
3781         (vceq_u32): Likewise.
3782         (vceq_p8): Likewise.
3783         (vceqq_s8): Likewise.
3784         (vceqq_s16): Likewise.
3785         (vceqq_s32): Likewise.
3786         (vceqq_u8): Likewise.
3787         (vceqq_u16): Likewise.
3788         (vceqq_u32): Likewise.
3789         (vceqq_p8): Likewise.
3790         (vceq_f32): Gate __a == __b on __FAST_MATH__.
3791         (vceqq_f32): Likewise.
3792         (vceq_f16): Likewise.
3793         (vceqq_f16): Likewise.
3794
3795 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
3796
3797         PR target/97906
3798         * config/arm/iterators.md (NEON_VACMP): Remove.
3799         * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE
3800         iterator.
3801         (neon_vca<cmp_op><mode>_insn): Likewise.
3802         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of
3803         NEON_VACMP.
3804
3805 2021-06-21  Richard Biener  <rguenther@suse.de>
3806
3807         PR tree-optimization/101121
3808         * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally
3809         when we just lack a stmt with the desired op when doing permutation.
3810         (vect_build_slp_tree): When caching a failed SLP build attempt
3811         assert that at least one lane is marked as not matching.
3812
3813 2021-06-21  liuhongt  <hongtao.liu@intel.com>
3814
3815         PR target/101142
3816         * config/i386/i386.md: (*anddi_1): Disparage slightly the mask
3817         register alternative.
3818         (*and<mode>_1): Ditto.
3819         (*andqi_1): Ditto.
3820         (*andn<mode>_1): Ditto.
3821         (*<code><mode>_1): Ditto.
3822         (*<code>qi_1): Ditto.
3823         (*one_cmpl<mode>2_1): Ditto.
3824         (*one_cmplsi2_1_zext): Ditto.
3825         (*one_cmplqi2_1): Ditto.
3826         * config/i386/i386.c (x86_order_regs_for_local_alloc): Change
3827         the order of mask registers to be before general registers.
3828
3829 2021-06-21  Roger Sayle  <roger@nextmovesoftware.com>
3830
3831         PR target/11877
3832         * config/i386/i386.md: New define_peephole2s to shrink writing
3833         1, 2 or 4 consecutive zeros to memory when optimizing for size.
3834
3835 2021-06-18  Jeff Law  <jeffreyalaw@gmail.com>
3836
3837         * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF.
3838         * config/h8300/logical.md (<code><mode>3 logcial expander): Generate
3839         more efficient code when the source can be trivially simplified.
3840
3841 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
3842
3843         * gimple-range-cache.cc (ranger_cache::range_of_def):  Calculate
3844         a range if global is not available.
3845         (ranger_cache::entry_range): Fallback to range_of_def.
3846         * gimple-range-cache.h (range_of_def): Adjust prototype.
3847
3848 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
3849
3850         PR tree-optimization/101014
3851         * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor
3852         value list.
3853         (ranger_cache::~ranger_cache): Ditto.
3854         (ranger_cache::enable_new_values): Delete.
3855         (ranger_cache::push_poor_value): Delete.
3856         (ranger_cache::range_of_def): Remove poor value processing.
3857         (ranger_cache::entry_range): Ditto.
3858         (ranger_cache::fill_block_cache): Ditto.
3859         * gimple-range-cache.h (class ranger_cache): Remove poor value members.
3860         * gimple-range.cc (gimple_ranger::range_of_expr): Remove call.
3861         * gimple-range.h (class gimple_ranger): Adjust.
3862
3863 2021-06-18  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
3864
3865         PR target/100856
3866         * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function
3867         derived from arm_canon_arch.
3868         (arm_canon_arch_option): Call it.
3869         (arm_canon_arch_multilib_option): New function.
3870         * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup.
3871         * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype.
3872         (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro.
3873         (MULTILIB_ARCH_CANONICAL_SPECS): New macro.
3874         (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS.
3875         * config/arm/arm.opt (mlibarch): New option.
3876         * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use
3877         of march on RHS with mlibarch.
3878
3879 2021-06-18  Marcel Vollweiler  <marcel@codesourcery.com>
3880
3881         * config.in: Regenerate.
3882         * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
3883         functions.
3884         * configure: Regenerate.
3885         * configure.ac: Fix for global_load assembler functions.
3886
3887 2021-06-18  Richard Biener  <rguenther@suse.de>
3888
3889         PR tree-optimization/101112
3890         * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition
3891         to lookup a pattern stmt def.
3892
3893 2021-06-18  Jakub Jelinek  <jakub@redhat.com>
3894
3895         PR middle-end/101062
3896         * stor-layout.c (finish_bitfield_layout): Don't add bitfield
3897         representatives in QUAL_UNION_TYPE.
3898
3899 2021-06-18  Andrew Pinski  <apinski@marvell.com>
3900
3901         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
3902         Add counting of how many times it is done.
3903         (factor_out_conditional_conversion): Likewise.
3904         (match_simplify_replacement): Likewise.
3905         (value_replacement): Likewise.
3906         (spaceship_replacement): Likewise.
3907         (cond_store_replacement): Likewise.
3908         (cond_if_else_store_replacement_1): Likewise.
3909         (hoist_adjacent_loads): Likewise.
3910
3911 2021-06-18  Andrew Pinski  <apinski@marvell.com>
3912
3913         * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset
3914         types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR.
3915         (verify_gimple_assign_binary): Reject point and offset types on
3916         MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR,
3917         FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR,
3918         FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR.
3919
3920 2021-06-18  Michael Meissner  <meissner@linux.ibm.com>
3921
3922         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA
3923         3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions.
3924         * config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator):
3925         New insns.
3926
3927 2021-06-17  Aaron Sawdey  <acsawdey@linux.ibm.com>
3928
3929         * config/rs6000/genfusion.pl (gen_logical_addsubf): Add
3930         earlyclobber to alts 0/1.
3931         (gen_addadd): Add earlyclobber to alts 0/1.
3932         * config/rs6000/fusion.md: Regenerate file.
3933
3934 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3935
3936         * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec.
3937
3938 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
3939
3940         * gimple-range-cache.cc: Comment cleanups.
3941         * gimple-range-gori.cc: Comment cleanups.
3942         * gimple-range.cc: Comment/spacing cleanups
3943         * value-range.h: Comment cleanups.
3944
3945 2021-06-17  H.J. Lu  <hjl.tools@gmail.com>
3946
3947         PR target/100704
3948         * calls.c (expand_call): Replace PUSH_ARGS with
3949         targetm.calls.push_argument (0).
3950         (emit_library_call_value_1): Likewise.
3951         * defaults.h (PUSH_ARGS): Removed.
3952         (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with
3953         targetm.calls.push_argument (0).
3954         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
3955         (emit_push_insn): Pass the number bytes to push to
3956         targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0.
3957         * hooks.c (hook_bool_uint_true): New.
3958         * hooks.h (hook_bool_uint_true): Likewise.
3959         * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with
3960         targetm.calls.push_argument (0).
3961         * target.def (push_argument): Add a targetm.calls hook.
3962         * targhooks.c (default_push_argument): New.
3963         * targhooks.h (default_push_argument): Likewise.
3964         * config/bpf/bpf.h (PUSH_ARGS): Removed.
3965         * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New.
3966         * config/cr16/cr16.h (PUSH_ARGS): Removed.
3967         * config/i386/i386.c (ix86_push_argument): New.
3968         (TARGET_PUSH_ARGUMENT): Likewise.
3969         * config/i386/i386.h (PUSH_ARGS): Removed.
3970         * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New.
3971         * config/m32c/m32c.h (PUSH_ARGS): Removed.
3972         * config/nios2/nios2.h (PUSH_ARGS): Likewise.
3973         * config/pru/pru.h (PUSH_ARGS): Likewise.
3974         * doc/tm.texi.in: Remove PUSH_ARGS documentation.  Add
3975         TARGET_PUSH_ARGUMENT hook.
3976         * doc/tm.texi: Regenerated.
3977
3978 2021-06-17  Uroš Bizjak  <ubizjak@gmail.com>
3979
3980         PR target/97194
3981         * config/i386/i386-expand.c (expand_vector_set_var):
3982         Handle V2FS mode remapping.  Pass TARGET_MMX_WITH_SSE to
3983         ix86_expand_vector_init_duplicate.
3984         (ix86_expand_vector_init_duplicate): Emit insv_1 for
3985         QImode for !TARGET_PARTIAL_REG_STALL.
3986         * config/i386/predicates.md (vec_setm_mmx_operand): New predicate.
3987         * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand
3988         as operand 2 predicate.  Call ix86_expand_vector_set_var
3989         for non-constant index operand.
3990         (vec_setv2si): Ditto.
3991         (vec_setv4hi): Ditto.
3992         (vec_setv8qi): ditto.
3993
3994 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
3995
3996         PR tree-optimization/100790
3997         * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz
3998         code.
3999
4000 2021-06-17  Martin Liska  <mliska@suse.cz>
4001
4002         * doc/invoke.texi: Use consistently -O1 instead of -O.
4003
4004 2021-06-17  Martin Liska  <mliska@suse.cz>
4005
4006         * gcov-io.h: Update documentation entry about string format.
4007
4008 2021-06-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
4009
4010         PR target/100871
4011         * config/s390/vecintrin.h (vec_doublee): Fix to use
4012           __builtin_s390_vflls.
4013         (vec_floate): Fix to use __builtin_s390_vflrd.
4014
4015 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4016
4017         * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>.
4018         * dominance.h (get_dominated_to_depth): Likewise.
4019         (get_all_dominated_blocks): Likewise.
4020         * cfgcleanup.c (delete_unreachable_blocks): Adjust.
4021         * gcse.c (hoist_code): Likewise.
4022         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
4023         * tree-parloops.c (oacc_entry_exit_ok): Likewise.
4024         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
4025         * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise.
4026
4027 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4028
4029         * dominance.c (get_dominated_by_region): Return auto_vec<basic_block>.
4030         * dominance.h (get_dominated_by_region): Likewise.
4031         * tree-cfg.c (gimple_duplicate_sese_region): Adjust.
4032         (gimple_duplicate_sese_tail): Likewise.
4033         (move_sese_region_to_fn): Likewise.
4034
4035 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4036
4037         * dominance.c (get_dominated_by): Return auto_vec<basic_block>.
4038         * dominance.h (get_dominated_by): Likewise.
4039         * auto-profile.c (afdo_find_equiv_class): Adjust.
4040         * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise.
4041         * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
4042         * tree-cfg.c (test_linear_chain): Likewise.
4043         (test_diamond): Likewise.
4044
4045 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4046
4047         * cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>.
4048         * cfgloopanal.c (get_loop_hot_path): Likewise.
4049         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
4050
4051 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4052
4053         * cgraph.c (cgraph_node::collect_callers): Return
4054         auto_vec<cgraph_edge *>.
4055         * cgraph.h (cgraph_node::collect_callers): Likewise.
4056         * ipa-cp.c (create_specialized_node): Adjust.
4057         (decide_about_value): Likewise.
4058         (decide_whether_version_node): Likewise.
4059         * ipa-sra.c (process_isra_node_results): Likewise.
4060
4061 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
4062
4063         * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec.
4064         (auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy
4065         constructor.
4066         (auto_vec<T, 0>::operator=): Define move assignment and delete copy
4067         assignment.
4068
4069 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
4070
4071         * gimple-range.cc (debug_seed_ranger): New.
4072         (dump_ranger): New.
4073         (debug_ranger): New.
4074
4075 2021-06-17  Richard Biener   <rguenther@suse.de>
4076
4077         PR tree-optimization/54400
4078         * tree-vectorizer.h (enum slp_instance_kind): Add
4079         slp_inst_kind_bb_reduc.
4080         (reduction_fn_for_scalar_code): Declare.
4081         * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
4082         Check SLP_INSTANCE_KIND instead of looking at the
4083         representative.
4084         (vect_slp_analyze_instance_alignment): Likewise.
4085         * tree-vect-loop.c (reduction_fn_for_scalar_code): Export.
4086         * tree-vect-slp.c (vect_slp_linearize_chain): Split out
4087         chain linearization from vect_build_slp_tree_2 and generalize
4088         for the use of BB reduction vectorization.
4089         (vect_build_slp_tree_2): Adjust accordingly.
4090         (vect_optimize_slp): Elide permutes at the root of BB reduction
4091         instances.
4092         (vectorizable_bb_reduc_epilogue): New function.
4093         (vect_slp_prune_covered_roots): Likewise.
4094         (vect_slp_analyze_operations): Use them.
4095         (vect_slp_check_for_constructors): Recognize associatable
4096         chains for BB reduction vectorization.
4097         (vectorize_slp_instance_root_stmt): Generate code for the
4098         BB reduction epilogue.
4099
4100 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
4101
4102         * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with
4103         may_recompute_p.
4104         (gori_compute::may_recompute_p): New.
4105         (gori_compute::outgoing_edge_range_p): Perform recomputations.
4106         * gimple-range-gori.h (class gori_compute): Add prototype.
4107
4108 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
4109
4110         * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return
4111         true when a range can be calculated.
4112         * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p.
4113
4114 2021-06-16  Martin Sebor  <msebor@redhat.com>
4115
4116         * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete):
4117         Correct documented defaults.
4118
4119 2021-06-16  Andrew MacLeod  <amacleod@redhat.com>
4120
4121         * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize
4122         m_new_value_p directly.
4123
4124 2021-06-16  Uroš Bizjak  <ubizjak@gmail.com>
4125
4126         PR target/89021
4127         * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv):
4128         Handle 64bit modes for TARGET_SSE4_1.
4129         (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3.
4130         (expand_vec_perm_even_odd_pack): Handle V4HI mode.
4131         (expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via
4132         expand_vec_perm_pshufb2 for TARGET_SSSE3 and via
4133         expand_vec_perm_even_odd_pack for TARGET_SSE4_1.
4134         * config/i386/mmx.md (mmx_packusdw): New insn pattern.
4135
4136 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
4137
4138         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>):
4139         Change to an expander that emits the correct instruction
4140         depending on endianness.
4141         (aarch64_<sur><addsub>hn<mode>_insn_le): Define.
4142         (aarch64_<sur><addsub>hn<mode>_insn_be): Define.
4143
4144 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
4145
4146         * config/aarch64/aarch64-simd-builtins.def: Split generator
4147         for aarch64_<su>qmovn builtins into scalar and vector
4148         variants.
4149         * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le):
4150         Define.
4151         (aarch64_<su>qmovn<mode>_insn_be): Define.
4152         (aarch64_<su>qmovn<mode>): Split into scalar and vector
4153         variants. Change vector variant to an expander that emits the
4154         correct instruction depending on endianness.
4155
4156 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
4157
4158         * config/aarch64/aarch64-simd-builtins.def: Split generator
4159         for aarch64_sqmovun builtins into scalar and vector variants.
4160         * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>):
4161         Split into scalar and vector variants. Change vector variant
4162         to an expander that emits the correct instruction depending
4163         on endianness.
4164         (aarch64_sqmovun<mode>_insn_le): Define.
4165         (aarch64_sqmovun<mode>_insn_be): Define.
4166
4167 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
4168
4169         * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le):
4170         Define - modeling zero-high-half semantics.
4171         (aarch64_xtn<mode>): Change to an expander that emits the
4172         appropriate instruction depending on endianness.
4173         (aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half
4174         semantics.
4175         (aarch64_xtn2<mode>_le): Rename to...
4176         (aarch64_xtn2<mode>_insn_le): This.
4177         (aarch64_xtn2<mode>_be): Rename to...
4178         (aarch64_xtn2<mode>_insn_be): This.
4179         (vec_pack_trunc_<mode>): Emit truncation instruction instead
4180         of aarch64_xtn.
4181         * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
4182         attribute iterator.
4183
4184 2021-06-16  Martin Jambor  <mjambor@suse.cz>
4185
4186         PR tree-optimization/100453
4187         * tree-sra.c (create_access): Disqualify any const candidates
4188         which are written to.
4189         (sra_modify_expr): Do not store sub-replacements back to a const base.
4190         (handle_unscalarized_data_in_subtree): Likewise.
4191         (sra_modify_assign): Likewise.  Earlier, use TREE_READONLy test
4192         instead of constant_decl_p.
4193
4194 2021-06-16  Jakub Jelinek  <jakub@redhat.com>
4195
4196         PR middle-end/101062
4197         * stor-layout.c (finish_bitfield_representative): For fields in unions
4198         assume nextf is always NULL.
4199         (finish_bitfield_layout): Compute bit field representatives also in
4200         unions, but handle it as if each bitfield was the only field in the
4201         aggregate.
4202
4203 2021-06-16  Richard Biener  <rguenther@suse.de>
4204
4205         PR tree-optimization/101088
4206         * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for
4207         supported refs on edges.  Do not assert same ref but
4208         different kind stores are unsuported but mark them so.
4209         (hoist_memory_references): Only look for supported refs
4210         on exits.
4211
4212 2021-06-16  Roger Sayle  <roger@nextmovesoftware.com>
4213
4214         PR rtl-optimization/46235
4215         * config/i386/i386.md: New define_split for bt followed by cmov.
4216         (*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc.
4217         (*bt<mode>_setncqi): New define_insn_and_split for bt then setnc.
4218         (*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed
4219         by setnc with zero extension.
4220
4221 2021-06-16  Richard Biener  <rguenther@suse.de>
4222
4223         PR tree-optimization/101083
4224         * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get
4225         vectype as argument.
4226         (vect_build_slp_tree_2): Adjust.
4227
4228 2021-06-15  Martin Sebor  <msebor@redhat.com>
4229
4230         PR middle-end/100876
4231         * builtins.c: (gimple_call_return_array): Account for size_t
4232         mangling as either unsigned int or unsigned long
4233
4234 2021-06-15  Jeff Law  <jeffreyalaw@gmail.com>
4235
4236         * compare-elim.c (try_eliminate_compare): Run DCE to clean things
4237         up before eliminating comparisons.
4238
4239 2021-06-15  Aldy Hernandez  <aldyh@redhat.com>
4240
4241         * range-op.cc (operator_bitwise_or::wi_fold): Make sure
4242         nonzero|X is nonzero.
4243         (range_op_bitwise_and_tests): Add tests for above.
4244
4245 2021-06-15  Carl Love  <cel@us.ibm.com>
4246
4247         PR target/101022
4248         * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the
4249         enum definition.
4250         (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2
4251         definitions.
4252
4253 2021-06-15  Tobias Burnus  <tobias@codesourcery.com>
4254
4255         PR fortran/92568
4256         * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET.
4257         (struct gimplify_omp_ctx): Extend defaultmap array by one.
4258         (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET].
4259         (omp_notice_variable): Update type classification for Fortran.
4260         (gimplify_scan_omp_clauses): Update calls for new argument; handle
4261         GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY.
4262         * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument.
4263         * langhooks.c (lhd_omp_scalar_p): Likewise.
4264         (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
4265         (LANG_HOOKS_DECLS): Add them.
4266         * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update
4267         omp_scalar_p pointer type to include the new bool argument.
4268
4269 2021-06-15  David Malcolm  <dmalcolm@redhat.com>
4270
4271         * doc/analyzer.texi
4272         (Special Functions for Debugging the Analyzer): Add
4273         __analyzer_dump_capacity.
4274
4275 2021-06-15  Jakub Jelinek  <jakub@redhat.com>
4276
4277         PR target/101046
4278         * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
4279         case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.
4280
4281 2021-06-15  Richard Biener  <rguenther@suse.de>
4282
4283         * cfgloopanal.c (mark_irreducible_loops): Use a dominance
4284         check to identify loop latches.
4285         * cfgloop.c (verify_loop_structure): Likewise.
4286         * loop-init.c (apply_loop_flags): Allow marked irreducible
4287         regions even with multiple latches.
4288         * predict.c (rebuild_frequencies): Simplify.
4289
4290 2021-06-15  Richard Biener  <rguenther@suse.de>
4291
4292         * tree-ssa-threadupdate.c
4293         (jump_thread_path_registry::mark_threaded_blocks): Assert we
4294         have marked irreducible regions.
4295
4296 2021-06-14  Martin Sebor  <msebor@redhat.com>
4297
4298         PR c++/100876
4299         * builtins.c (gimple_call_return_array): Check for attribute fn spec.
4300         Handle calls to placement new.
4301         (ndecl_dealloc_argno): Avoid placement delete.
4302
4303 2021-06-14  Peter Bergner  <bergner@linux.ibm.com>
4304
4305         PR target/100777
4306         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
4307         create_tmp_reg_or_ssa_name().
4308
4309 2021-06-14  Andrew MacLeod  <amacleod@redhat.com>
4310
4311         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
4312         (ranger_cache::enable_new_values): Set to specified value and
4313         return the old value.
4314         (ranger_cache::disable_new_values): Delete.
4315         (ranger_cache::fill_block_cache): Disable non 1st order derived
4316         poor values.
4317         * gimple-range-cache.h (ranger_cache): Adjust prototypes.
4318         * gimple-range.cc (gimple_ranger::range_of_expr): Adjust.
4319
4320 2021-06-14  Uroš Bizjak  <ubizjak@gmail.com>
4321
4322         PR target/101058
4323         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
4324         Return true early when testing with V2HImode.
4325         * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1.
4326
4327 2021-06-14  Christophe Lyon  <christophe.lyon@linaro.org>
4328
4329         * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern.
4330         (mve_vec_unpack<US>_hi_<mode>): New pattern.
4331         (@mve_vec_pack_trunc_lo_<mode>): New pattern.
4332         (mve_vmovntq_<supf><mode>): Prefix with '@'.
4333         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to
4334         vec-common.md.
4335         (vec_unpack<US>_lo_<mode>): Likewise.
4336         (vec_pack_trunc_<mode>): Rename to
4337         neon_quad_vec_pack_trunc_<mode>.
4338         * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New
4339         pattern.
4340         (vec_unpack<US>_lo_<mode>): New.
4341         (vec_pack_trunc_<mode>): New.
4342
4343 2021-06-14  Richard Biener  <rguenther@suse.de>
4344
4345         PR tree-optimization/100934
4346         * tree-ssa-dom.c (pass_dominator::execute): Properly
4347         mark irreducible regions.
4348
4349 2021-06-14  Martin Liska  <mliska@suse.cz>
4350
4351         * doc/invoke.texi: Put r{...} on the same line as @item.
4352
4353 2021-06-14  Martin Liska  <mliska@suse.cz>
4354
4355         * doc/invoke.texi: Add missing newline.
4356
4357 2021-06-14  Martin Liska  <mliska@suse.cz>
4358
4359         * doc/invoke.texi: Remove '+' charasters.
4360
4361 2021-06-14  Claudiu Zissulescu  <claziss@synopsys.com>
4362
4363         * config.gcc (arc): Add support for with_cpu option.
4364         * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu.
4365
4366 2021-06-14  Richard Biener  <rguenther@suse.de>
4367
4368         PR tree-optimization/101031
4369         * tree-ssa-strlen.c (maybe_invalidate): Increment max_size
4370         instead of size when accounting for a possibly string
4371         terminating nul.
4372
4373 2021-06-14  Martin Liska  <mliska@suse.cz>
4374
4375         * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].
4376
4377 2021-06-14  Aldy Hernandez  <aldyh@redhat.com>
4378
4379         * value-query.cc (gimple_range_global): Call get_range_global
4380         if called after inlining.
4381
4382 2021-06-13  Uroš Bizjak  <ubizjak@gmail.com>
4383
4384         PR target/101021
4385         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
4386         Emit constant permutation insn directly from here.
4387
4388 2021-06-13  Trevor Saunders  <tbsaunde@tbsaunde.org>
4389
4390         * attribs.c (find_attribute_namespace): Iterate over vec<> with
4391         range based for.
4392         * auto-profile.c (afdo_find_equiv_class): Likewise.
4393         * gcc.c (do_specs_vec): Likewise.
4394         (do_spec_1): Likewise.
4395         (driver::set_up_specs): Likewise.
4396         * gimple-loop-jam.c (any_access_function_variant_p): Likewise.
4397         * gimple-ssa-store-merging.c (compatible_load_p): Likewise.
4398         (imm_store_chain_info::try_coalesce_bswap): Likewise.
4399         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
4400         (get_location_for_stmts): Likewise.
4401         * graphite-poly.c (print_iteration_domains): Likewise.
4402         (free_poly_bb): Likewise.
4403         (remove_gbbs_in_scop): Likewise.
4404         (free_scop): Likewise.
4405         (dump_gbb_cases): Likewise.
4406         (dump_gbb_conditions): Likewise.
4407         (print_pdrs): Likewise.
4408         (print_scop): Likewise.
4409         * ifcvt.c (cond_move_process_if_block): Likewise.
4410         * lower-subreg.c (decompose_multiword_subregs): Likewise.
4411         * regcprop.c (pass_cprop_hardreg::execute): Likewise.
4412         * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
4413         * sel-sched-dump.c (dump_insn_vector): Likewise.
4414         * store-motion.c (store_ops_ok): Likewise.
4415         (store_killed_in_insn): Likewise.
4416         * timevar.c (timer::named_items::print): Likewise.
4417         * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise.
4418         (cleanup_tree_cfg_noloop): Likewise.
4419         * tree-data-ref.c (dump_data_references): Likewise.
4420         (print_dir_vectors): Likewise.
4421         (print_dist_vectors): Likewise.
4422         (dump_data_dependence_relations): Likewise.
4423         (dump_dist_dir_vectors): Likewise.
4424         (dump_ddrs): Likewise.
4425         (create_runtime_alias_checks): Likewise.
4426         (free_subscripts): Likewise.
4427         (save_dist_v): Likewise.
4428         (save_dir_v): Likewise.
4429         (invariant_access_functions): Likewise.
4430         (same_access_functions): Likewise.
4431         (access_functions_are_affine_or_constant_p): Likewise.
4432         (find_data_references_in_stmt): Likewise.
4433         (graphite_find_data_references_in_stmt): Likewise.
4434         (free_dependence_relations): Likewise.
4435         (free_data_refs): Likewise.
4436         * tree-inline.c (copy_debug_stmts): Likewise.
4437         * tree-into-ssa.c (dump_currdefs): Likewise.
4438         (rewrite_update_phi_arguments): Likewise.
4439         * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
4440         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
4441         Likewise.
4442         (vect_slp_analyze_node_dependences): Likewise.
4443         (vect_slp_analyze_instance_dependence): Likewise.
4444         (vect_record_base_alignments): Likewise.
4445         (vect_get_peeling_costs_all_drs): Likewise.
4446         (vect_peeling_supportable): Likewise.
4447         * tree-vectorizer.c (vec_info::~vec_info): Likewise.
4448         (vec_info::free_stmt_vec_infos): Likewise.
4449
4450 2021-06-13  Jeff Law  <jeffreyalaw@gmail.com>
4451
4452         * config/h8300/logical.md (<code>qi3_1<cczn>): New pattern.
4453         (andqi3_1<cczn>): Removed.
4454         (<ors>qi3_1): Do not split for IOR/XOR a single bit.
4455         (H8/SX bit logicals): Split out from other patterns.
4456         * config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from
4457         mulqihi3_const_clobber_flags.
4458         (mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly
4459
4460 2021-06-13  H.J. Lu  <hjl.tools@gmail.com>
4461
4462         PR target/101023
4463         * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used
4464         to true if red zone is used.
4465         (ix86_output_indirect_jmp): Replace ix86_red_zone_size with
4466         ix86_red_zone_used.
4467         * config/i386/i386.h (machine_function): Add red_zone_used.
4468         (ix86_red_zone_size): Removed.
4469         (ix86_red_zone_used): New.
4470         * config/i386/i386.md (peephole2 patterns): Replace
4471         ix86_red_zone_size with ix86_red_zone_used.
4472
4473 2021-06-12  Jason Merrill  <jason@redhat.com>
4474
4475         * doc/extend.texi (unused variable attribute): Applies to
4476         structure fields as well.
4477
4478 2021-06-12  Eugene Rozenfeld  <erozen@microsoft.com>
4479
4480         * auto-profile.c (read_profile): fix a typo in an error string
4481
4482 2021-06-11  Thomas Schwinge  <thomas@codesourcery.com>
4483
4484         * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
4485         default argument.
4486         * tree-pretty-print.c (dump_omp_clauses): Update.
4487         (dump_generic_node) <OMP_CLAUSE>: Use it.
4488
4489 2021-06-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
4490
4491         PR target/101016
4492         * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0,
4493         int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for
4494         the polymorphic variants matching code.
4495         (__arm_vld1q_z): Likewise.
4496         (__arm_vld2q): Likewise.
4497         (__arm_vld4q): Likewise.
4498         (__arm_vldrbq_gather_offset): Likewise.
4499         (__arm_vldrbq_gather_offset_z): Likewise.
4500
4501 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
4502
4503         PR tree-optimization/96392
4504         * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype.
4505
4506 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
4507
4508         PR tree-optimization/96392
4509         * fold-const.c (fold_real_zero_addition_p): Take both arguments
4510         of the addition or subtraction, not just the zero.  Use this
4511         other argument in tests for signaling NaNs and signed zeros.
4512         (tree_expr_maybe_real_minus_zero_p): New predicate.
4513         * fold-const.h (fold_real_zero_addition_p): Update prototype.
4514         (tree_expr_maybe_real_minus_zero_p): New function prototype.
4515         * match.pd: Update calls to fold_real_zero_addition_p.
4516         Replace HONOR_NANS with tree_expr_maybe_nan_p.
4517         Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p.
4518         Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p.
4519         * tree-ssa-reassoc.c (eliminate_using_constants): Update
4520         call to fold_real_zero_addition_p.
4521
4522 2021-06-11  Richard Biener  <rguenther@suse.de>
4523
4524         PR tree-optimization/101025
4525         * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process
4526         all refs that require dependence checking.
4527
4528 2021-06-11  Richard Biener  <rguenther@suse.de>
4529
4530         PR tree-optimization/101028
4531         * tree-vect-slp.c (vect_build_slp_tree_2): When SLP
4532         reassoc discovery fails fatally, mark appropriate lanes
4533         in matches[] so.
4534
4535 2021-06-11  Richard Biener  <rguenther@suse.de>
4536
4537         PR tree-optimization/101026
4538         * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we
4539         have a representative for the associated chain nodes.
4540
4541 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
4542
4543         PR rtl-optimization/101008
4544         * simplify-rtx.c (relational_result): New function.
4545         (simplify_logical_relational_operation,
4546         simplify_relational_operation): Use it.
4547
4548 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
4549
4550         PR target/101007
4551         * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2.
4552
4553 2021-06-11  Uroš Bizjak  <ubizjak@gmail.com>
4554
4555         PR target/101021
4556         * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return
4557         false if the permutation can be implemented with constant
4558         permutation instruction in wider mode.
4559         (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb.
4560         Handle V8QImode and V4HImode.
4561
4562 2021-06-11  Martin Liska  <mliska@suse.cz>
4563
4564         PR gcov-profile/100788
4565         * common.opt: Add new option.
4566         * coverage.c (coverage_begin_function): Emit warning instead on
4567         the internal compiler error.
4568         * doc/invoke.texi: Document the option.
4569         * toplev.c (process_options): Enable it by default.
4570
4571 2021-06-11  Richard Biener  <rguenther@suse.de>
4572
4573         PR middle-end/101009
4574         * tree-data-ref.c (build_classic_dist_vector_1): Make sure
4575         to set *init_b to true when we encounter a constant equal
4576         index pair.
4577         (compute_affine_dependence): Also dump the actual DR_REF.
4578
4579 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
4580
4581         PR tree-optimization/100984
4582         * gimple-ssa-evrp.c  (ssa_equiv_stack): Use auto_vec for
4583         replacements table.
4584         (ssa_equiv_stack::~ssa_equiv_stack): Remove.
4585
4586 2021-06-11  Kewen Lin  <linkw@linux.ibm.com>
4587
4588         * config/rs6000/rs6000.md
4589         (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New
4590         define_insn_and_split.
4591
4592 2021-06-11  Richard Biener  <rguenther@suse.de>
4593
4594         * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
4595         to sort operands of the associative chain.
4596
4597 2021-06-11  Richard Biener  <rguenther@suse.de>
4598
4599         * system.h (gcc_stablesort_r): Declare.
4600         * sort.cc (gcc_sort_r): Support stable sort.
4601         (gcc_stablesort_r): Define.
4602         * vec.h (vec<>::stablesort): Add.
4603
4604 2021-06-10  Uroš Bizjak  <ubizjak@gmail.com>
4605
4606         PR target/89021
4607         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
4608         Handle V2SF mode.  Emit SHUFPS to fixup unpack-high for V2SF mode.
4609         (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1.
4610         (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3.
4611         (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1.
4612         (expand_vec_perm_interleave2): Handle 64bit modes.
4613         (expand_vec_perm_even_odd_pack): Handle V8QI mode.
4614         (expand_vec_perm_even_odd_1): Ditto.
4615         (ix86_vectorize_vec_perm_const): Ditto.
4616         * config/i386/i386.md (UNSPEC_PSHUFB): Move from ...
4617         * config/i386/sse.md: ... here.
4618         * config/i386/mmx.md (*vec_interleave_lowv2sf):
4619         New insn_and_split pattern.
4620         (*vec_interleave_highv2sf): Ditto.
4621         (mmx_pshufbv8qi3): New insn pattern.
4622         (*mmx_pblendw): Ditto.
4623
4624 2021-06-10  Peter Bergner  <bergner@linux.ibm.com>
4625
4626         * config/rs6000/rs6000-builtin.def (build_pair): New built-in.
4627         (build_acc): Likewise.
4628         * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble
4629         source operands in little-endian mode.
4630         (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR.
4631         (mma_init_builtins): Likewise.
4632         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness
4633         ordering for the MMA assemble and build source operands.
4634         * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair):
4635         Document.
4636         (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
4637         documentation.
4638
4639 2021-06-10  Jeff Law  <jeffreyalaw@gmail.com>
4640
4641         * config/h8300/h8300.c (select_cc_mode): Handle MEM.  Use
4642         REG_P.
4643         * config/h8300/extensions.md: Replace _clobber_flags patterns
4644         with <cczn>.
4645
4646 2021-06-10  Robin Dapp  <rdapp@linux.ibm.com>
4647
4648         * config/s390/vector.md (vcond_mask_<mode><mode>): Change to
4649         (vcond_mask_<mode><tointvec>): this.
4650
4651 2021-06-10  Andrew Stubbs  <ams@codesourcery.com>
4652             Thomas Schwinge  <thomas@codesourcery.com>
4653
4654         * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into...
4655         (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these.
4656         * gimple.h (enum gf_mask): Split
4657         'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into
4658         'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and
4659         'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'.
4660         (is_gimple_omp_oacc): Update.
4661         * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
4662         * gimplify.c (gimplify_omp_target_update): Likewise.
4663         * omp-expand.c (expand_omp_target, build_omp_regions_1)
4664         (omp_make_gimple_edges): Likewise.
4665         * omp-low.c (check_omp_nesting_restrictions, lower_omp_target):
4666         Likewise.
4667
4668 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
4669
4670         * value-query.cc (value_query::value_on_edge): Rename name to
4671         expr.
4672         (range_query::range_on_edge): Same.
4673         (range_query::value_of_expr): Same.
4674         (range_query::value_on_edge): Same.
4675         * value-query.h (class value_query): Same.
4676         (class range_query): Same.
4677
4678 2021-06-10  Richard Biener  <rguenther@suse.de>
4679
4680         PR tree-optimization/101003
4681         * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately
4682         use the pattern stmt defs when linearizing a chain.
4683
4684 2021-06-10  Jakub Jelinek  <jakub@redhat.com>
4685
4686         PR debug/100852
4687         * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use
4688         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
4689
4690 2021-06-10  Clement Chigot  <clement.chigot@atos.net>
4691
4692         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive.
4693         * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
4694
4695 2021-06-09  Andrew Pinski  <apinski@marvell.com>
4696
4697         PR tree-optimization/100925
4698         * match.pd (a ? CST1 : CST2): Limit transformations
4699         that would produce a negative to integeral types only.
4700         Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also.
4701
4702 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
4703
4704         Revert:
4705         2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
4706
4707         * doc/tm.texi: Correctly update.
4708
4709 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
4710
4711         * doc/tm.texi: Correctly update.
4712
4713 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
4714
4715         PR other/100735
4716         * doc/tm.texi.in (Trampolines): Add a missing blank line.
4717
4718 2021-06-09  Paul Eggert  <eggert@cs.ucla.edu>
4719
4720         PR other/100735
4721         * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines
4722         and -ftrampolines work only with Ada.
4723         * doc/tm.texi.in (Trampolines): Likewise.
4724         * doc/tm.texi: Regenerated.
4725
4726 2021-06-09  Carl Love  <cel@us.ibm.com>
4727
4728         * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq):
4729         Add define for new builtins.
4730         * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand.
4731         * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL):  Add
4732         overloaded builtin definitions.
4733         (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D,
4734         VSIGNEXTSD2Q):  Add builtin expansions.
4735         (SIGNEXT): Add P10 overload definition.
4736         * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL,
4737         P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions.
4738         * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn.
4739         (vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>,
4740         vsignextend_si_v2di)[VIlong]: Add define_expand.
4741         Make define_insn vsx_sign_extend_si_v2di visible.
4742         * doc/extend.texi:  Add documentation for the vec_signexti,
4743         vec_signextll builtins and vec_signextq.
4744
4745 2021-06-09  Carl Love  <cel@us.ibm.com>
4746
4747         * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf,
4748         __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw,
4749         __floattikf_sw, __floatuntikf_sw respectively.
4750         * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
4751         fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add
4752         define_insn for mode IEEE 128.
4753
4754 2021-06-09  Carl Love  <cel@us.ibm.com>
4755
4756         * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq):
4757         Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI.
4758         * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md.
4759         (vashlv1ti3): Change to vashl<mode>3, mode VEC_TI.
4760         (vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI.
4761         * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update
4762         uses of VSX_TI to VEC_TI.
4763
4764 2021-06-09  Carl Love  <cel@us.ibm.com>
4765
4766         * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns.
4767
4768 2021-06-09  Carl Love  <cel@us.ibm.com>
4769
4770         * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new
4771         builtins.
4772         * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD,
4773         UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs.
4774         (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud,
4775         altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq,
4776         altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm,
4777         altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq,
4778         altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New
4779         define_insn.
4780         (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di,
4781         vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi,
4782         altivec_vrlqnm): New define_expands.
4783         * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P,
4784         VCMPGTUT_P): Add macro expansions.
4785         (BU_P10V_AV_P): Add builtin predicate definition.
4786         (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI,
4787         CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P,
4788         VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ,
4789         VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI,
4790         MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions.
4791         (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions.
4792         * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT,
4793         P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI,
4794         P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST,
4795         P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI,
4796         P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI,
4797         P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD,
4798         P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD,
4799         P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS,
4800         P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI,
4801         P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ,
4802         P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ,
4803         P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P,
4804         P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P,
4805         P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET,
4806         P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P,
4807         P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI,
4808         P10V_BUILTIN_MODU_V1TI):
4809         New overloaded definitions.
4810         (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT,
4811         P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI,
4812         P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT,
4813         P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI,
4814         P10V_BUILTIN_CMPLE_U1TI]: New case statements.
4815         (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]:
4816         New assignments.
4817         (altivec_init_builtins): New E_V1TImode case statement.
4818         (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD,
4819         P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI,
4820         P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI,
4821         P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements.
4822         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode,
4823         E_V1TImode]: New case statements.
4824         * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum
4825         value RS6000_BTI_bool_V1TI.
4826         * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti,
4827         vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti,
4828         vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p,
4829         vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3,
4830         vlshrv1ti3, vashrv1ti3): New define_expands.
4831         * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ,
4832         UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ,
4833         UNSPEC_VSX_MODUQ): New unspecs.
4834         (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti,
4835         vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New
4836         define_insns.
4837         (vcmpnet): New define_expand.
4838         * doc/extend.texi: Add documentation for the new builtins vec_rl,
4839         vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo,
4840         vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt,
4841         vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt,
4842         vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt,
4843         vec_any_ge, vec_any_le.
4844
4845 2021-06-09  Carl Love  <cel@us.ibm.com>
4846
4847         * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix
4848         bug in argument generation.
4849
4850 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
4851
4852         * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S.
4853         (VCLZQ): Remove.
4854         * config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix,
4855         remove <supf> iterator.
4856         (mve_vclzq_u<mode>): New.
4857         * config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>.
4858         (neon_vclz<mode): Move to ...
4859         * config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove.
4860         * config/arm/vec-common.md: ... here. Add support for MVE.
4861
4862 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
4863
4864         * config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'.
4865         (@mve_vrhaddq_<supf><mode): Likewise.
4866         * config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise.
4867         * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
4868         (avg<mode>3_ceil", uavg<mode>3_ceil): New patterns.
4869
4870 2021-06-09  imba-tjd  <109224573@qq.com>
4871
4872         * doc/invoke.texi: Fix typo.
4873
4874 2021-06-09  Roger Sayle  <roger@nextmovesoftware.com>
4875
4876         PR middle-end/53267
4877         * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]:
4878         Support evaluation of fmod/fmodf/fmodl at compile-time.
4879
4880 2021-06-09  Richard Biener  <rguenther@suse.de>
4881
4882         PR tree-optimization/100981
4883         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
4884         gimple_get_lhs to also handle calls.
4885         * tree-vect-slp-patterns.c (complex_pattern::build): Transfer
4886         reduction info.
4887
4888 2021-06-09  Richard Biener  <rguenther@suse.de>
4889
4890         PR tree-optimization/97832
4891         * tree-vectorizer.h (_slp_tree::failed): New.
4892         * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
4893         failed member.
4894         (_slp_tree::~_slp_tree): Free failed.
4895         (vect_build_slp_tree): Retain failed nodes and record
4896         matches in them, copying that back out when running
4897         into a cached fail.  Dump start and end of discovery.
4898         (dt_sort_cmp): New.
4899         (vect_build_slp_tree_2): Handle associatable chains
4900         together doing more aggressive operand swapping.
4901
4902 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
4903
4904         PR target/100896
4905         * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
4906         GNU targets.
4907         * doc/install.texi: Require glibc 2.1 and binutils 2.12 for
4908         Linux and GNU targets.
4909
4910 2021-06-09  Richard Biener  <rguenther@suse.de>
4911
4912         * tree-vect-stmts.c (vect_is_simple_use): Always get dt
4913         from the stmt.
4914
4915 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
4916
4917         * config/arc/arc.md (loop_end): Change it to
4918         define_insn_and_split.
4919
4920 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
4921
4922         * config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
4923         (machi): New pattern.
4924         (umaddhisi4): Use VMAC2HU instruction.
4925         (umachi): New pattern.
4926
4927 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
4928
4929         * config/arc/arc-protos.h (arc_split_move_p): New prototype.
4930         * config/arc/arc.c (arc_split_move_p): New function.
4931         (arc_split_move): Clean up.
4932         * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
4933         (movdf_insn): Likewise.
4934         * config/arc/simdext.md (mov<VWH>_insn): Likewise.
4935
4936 2021-06-09  Uroš Bizjak  <ubizjak@gmail.com>
4937
4938         PR target/100936
4939         * config/i386/i386.c (print_operand_address_as): Rename "no_rip"
4940         argument to "raw".  Do not emit segment overrides when "raw" is true.
4941
4942 2021-06-09  Martin Liska  <mliska@suse.cz>
4943
4944         * doc/gcov.texi: Create a proper JSON files.
4945         * doc/invoke.texi: Remove dots in order to make it a valid
4946         JSON object.
4947
4948 2021-06-09  Xionghu Luo  <luoxhu@linux.ibm.com>
4949
4950         * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New.
4951         (insn_is_load_p): Use pattern_is_rotate64.
4952         (insn_is_swap_p): Likewise.
4953         (quad_aligned_load_p): Likewise.
4954         (const_load_sequence_p): Likewise.
4955         (replace_swapped_aligned_load): Likewise.
4956         (recombine_lvx_pattern): Likewise.
4957         (recombine_stvx_pattern): Likewise.
4958
4959 2021-06-09  Andrew MacLeod  <amacleod@redhat.com>
4960
4961         * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a
4962         fur_stmt source record.
4963         * gimple-range.cc (fur_source::get_operand): Generic range query.
4964         (fur_source::get_phi_operand): New.
4965         (fur_source::register_dependency): New.
4966         (fur_source::query): New.
4967         (class fur_edge): New.  Edge source for operands.
4968         (fur_edge::fur_edge): New.
4969         (fur_edge::get_operand): New.
4970         (fur_edge::get_phi_operand): New.
4971         (fur_edge::query): New.
4972         (fur_stmt::fur_stmt): New.
4973         (fur_stmt::get_operand): New.
4974         (fur_stmt::get_phi_operand): New.
4975         (fur_stmt::query): New.
4976         (class fur_depend): New.  Statement source and process dependencies.
4977         (fur_depend::fur_depend): New.
4978         (fur_depend::register_dependency): New.
4979         (class fur_list): New.  List source for operands.
4980         (fur_list::fur_list): New.
4981         (fur_list::get_operand): New.
4982         (fur_list::get_phi_operand): New.
4983         (fold_range): New.  Instantiate appropriate fur_source class and fold.
4984         (fold_using_range::range_of_range_op): Use new API.
4985         (fold_using_range::range_of_address): Ditto.
4986         (fold_using_range::range_of_phi): Ditto.
4987         (imple_ranger::fold_range_internal): Use fur_depend class.
4988         (fold_using_range::range_of_ssa_name_with_loop_info): Use new API.
4989         * gimple-range.h (class fur_source): Now a base class.
4990         (class fur_stmt): New.
4991         (fold_range): New prototypes.
4992         (fur_source::fur_source): Delete.
4993
4994 2021-06-08  Andrew Pinski  <apinski@marvell.com>
4995
4996         PR tree-optimization/25290
4997         * tree-ssa-phiopt.c (xor_replacement): Delete.
4998         (tree_ssa_phiopt_worker): Delete use of xor_replacement.
4999         (match_simplify_replacement): Allow one cheap preparation
5000         statement that can be moved to before the if.
5001
5002 2021-06-08  Pat Haugen  <pthaugen@linux.ibm.com>
5003
5004         * config/rs6000/power10.md (power10-fused-load, power10-fused-store,
5005         power10-fused_alu, power10-fused-vec, power10-fused-branch): New.
5006
5007 2021-06-08  Jeff Law  <jeffreyalaw@gmail.com>
5008
5009         * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split.
5010         Create length attribute on define_insn_and_split.  Only split for cases which we
5011         know will use AND.
5012         (andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags.  Only handle AND here and
5013         fix length computation.
5014         (b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator.
5015
5016 2021-06-08  Richard Biener  <rguenther@suse.de>
5017
5018         PR tree-optimization/100923
5019         * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
5020         the operand vector to be valueized.
5021         (valueize_refs): Likewise.
5022         (valueize_shared_reference_ops_from_ref): Adjust.
5023         (valueize_shared_reference_ops_from_call): Likewise.
5024         (vn_reference_lookup_3): Likewise.
5025         (vn_reference_lookup_pieces): Likewise.  Re-valueize
5026         with honoring availability when we are about to create
5027         the ao_ref and valueized before.
5028         (vn_reference_lookup): Likewise.
5029         (vn_reference_insert_pieces): Adjust.
5030
5031 2021-06-08  Richard Biener  <rguenther@suse.de>
5032
5033         * tree-vectorizer.h (_slp_instance::root_stmt): Change to...
5034         (_slp_instance::root_stmts): ... a vector.
5035         (SLP_INSTANCE_ROOT_STMT): Rename to ...
5036         (SLP_INSTANCE_ROOT_STMTS): ... this.
5037         (slp_root::root): Change to...
5038         (slp_root::roots): ... a vector.
5039         (slp_root::slp_root): Adjust.
5040         * tree-vect-slp.c (_slp_instance::location): Adjust.
5041         (vect_free_slp_instance): Release the root stmt vector.
5042         (vect_build_slp_instance): Adjust.
5043         (vect_analyze_slp): Likewise.
5044         (_bb_vec_info::~_bb_vec_info): Likewise.
5045         (vect_slp_analyze_operations): Likewise.
5046         (vect_bb_vectorization_profitable_p): Likewise.  Adjust
5047         costs for the root stmt.
5048         (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs
5049         as root stmts.
5050         (vect_slp_analyze_bb_1): Simplify by marking all root stmts
5051         as pure_slp.
5052         (vectorize_slp_instance_root_stmt): Adjust.
5053         (vect_schedule_slp): Likewise.
5054
5055 2021-06-08  Aldy Hernandez  <aldyh@redhat.com>
5056
5057         * gimple-ssa-evrp.c (class ssa_equiv_stack): New.
5058         (ssa_equiv_stack::ssa_equiv_stack): New.
5059         (ssa_equiv_stack::~ssa_equiv_stack): New.
5060         (ssa_equiv_stack::enter): New.
5061         (ssa_equiv_stack::leave): New.
5062         (ssa_equiv_stack::push_replacement): New.
5063         (ssa_equiv_stack::get_replacement): New.
5064         (is_pointer_ssa): New.
5065         (class pointer_equiv_analyzer): New.
5066         (pointer_equiv_analyzer::pointer_equiv_analyzer): New.
5067         (pointer_equiv_analyzer::~pointer_equiv_analyzer): New.
5068         (pointer_equiv_analyzer::set_global_equiv): New.
5069         (pointer_equiv_analyzer::set_cond_equiv): New.
5070         (pointer_equiv_analyzer::get_equiv): New.
5071         (pointer_equiv_analyzer::enter): New.
5072         (pointer_equiv_analyzer::leave): New.
5073         (pointer_equiv_analyzer::get_equiv_expr): New.
5074         (pta_valueize): New.
5075         (pointer_equiv_analyzer::visit_stmt): New.
5076         (pointer_equiv_analyzer::visit_edge): New.
5077         (hybrid_folder::value_of_expr): Call PTA.
5078         (hybrid_folder::value_on_edge): Same.
5079         (hybrid_folder::pre_fold_bb): New.
5080         (hybrid_folder::post_fold_bb): New.
5081         (hybrid_folder::pre_fold_stmt): New.
5082         (rvrp_folder::pre_fold_bb): New.
5083         (rvrp_folder::post_fold_bb): New.
5084         (rvrp_folder::pre_fold_stmt): New.
5085         (rvrp_folder::value_of_expr): Call PTA.
5086         (rvrp_folder::value_on_edge): Same.
5087
5088 2021-06-08  Jakub Jelinek  <jakub@redhat.com>
5089
5090         PR c++/100957
5091         * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't
5092         check TREE_CODE if OMP_CLAUSE_DECL is NULL.
5093
5094 2021-06-08  Richard Biener  <rguenther@suse.de>
5095
5096         PR middle-end/100951
5097         * tree-vect-generic.c (expand_vector_piecewise): Build a
5098         VECTOR_CST if all elements are constant.
5099         (expand_vector_condition): Likewise.
5100         (lower_vec_perm): Likewise.
5101         (expand_vector_conversion): Likewise.
5102
5103 2021-06-08  Martin Liska  <mliska@suse.cz>
5104
5105         * doc/invoke.texi: Document new param evrp-sparse-threshold.
5106
5107 2021-06-08  Martin Liska  <mliska@suse.cz>
5108
5109         * genautomata.c (create_automata): Fix typo.
5110
5111 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
5112
5113         PR tree-optimization/100794
5114         * tree-predcom.c (tree_predictive_commoning_loop): Add parameter
5115         allow_unroll_p and only allow unrolling when it's true.
5116         (tree_predictive_commoning): Add parameter allow_unroll_p and
5117         adjust for it.
5118         (run_tree_predictive_commoning): Likewise.
5119         (pass_predcom::gate): Check flag_tree_loop_vectorize and
5120         global_options_set.x_flag_predictive_commoning.
5121         (pass_predcom::execute): Adjust for allow_unroll_p.
5122
5123 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
5124
5125         * tree-predcom.c (execute_pred_commoning): Remove update_ssa call.
5126         (tree_predictive_commoning_loop): Factor some cleanup stuffs into
5127         lambda function cleanup, remove scev_reset call, and adjust return
5128         value.
5129         (tree_predictive_commoning): Adjust for different changed values,
5130         only set flag TODO_update_ssa_only_virtuals if changed.
5131         (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals
5132         from todo_flags_finish.
5133
5134 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
5135
5136         * gimple-range-cache.cc (class sbr_sparse_bitmap): New.
5137         (sbr_sparse_bitmap::sbr_sparse_bitmap): New.
5138         (sbr_sparse_bitmap::bitmap_set_quad): New.
5139         (sbr_sparse_bitmap::bitmap_get_quad): New.
5140         (sbr_sparse_bitmap::set_bb_range): New.
5141         (sbr_sparse_bitmap::get_bb_range): New.
5142         (sbr_sparse_bitmap::bb_range_p): New.
5143         (block_range_cache::block_range_cache): initialize bitmap obstack.
5144         (block_range_cache::~block_range_cache): Destruct obstack.
5145         (block_range_cache::set_bb_range): Decide when to utilze the
5146         sparse on entry cache.
5147         * gimple-range-cache.h (block_range_cache): Add bitmap obstack.
5148         * params.opt (-param=evrp-sparse-threshold): New.
5149
5150 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
5151
5152         * bitmap.c (bitmap_set_aligned_chunk): New.
5153         (bitmap_get_aligned_chunk): New.
5154         (test_aligned_chunk): New.
5155         (bitmap_c_tests): Call test_aligned_chunk.
5156         * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New.
5157
5158 2021-06-07  Uroš Bizjak  <ubizjak@gmail.com>
5159
5160         PR target/100637
5161         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
5162         Handle V4QI mode.
5163         (ix86_expand_vector_init_one_nonzero): Ditto.
5164         (ix86_expand_vector_init_one_var): Ditto.
5165         (ix86_expand_vector_init_general): Ditto.
5166         * config/i386/mmx.md (vec_initv4qiqi): New expander.
5167
5168 2021-06-07  Jeff Law  <jeffreyalaw@gmail.com>
5169
5170         * config/h8300/movepush.md: Change most _clobber_flags
5171         patterns to instead use <cczn> subst.
5172         (movsi_cczn): New pattern with usable CC cases split out.
5173         (movsi_h8sx_cczn): Likewise.
5174
5175 2021-06-07  Martin Liska  <mliska@suse.cz>
5176
5177         * common/common-target.def: Split long lines and replace them
5178         with '\n\'.
5179         * target.def: Likewise.
5180         * doc/tm.texi: Re-generated.
5181
5182 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
5183
5184         PR target/100887
5185         * fold-const.c (fold_read_from_vector): Return NULL if trying to
5186         read from a CONSTRUCTOR with vector type elements.
5187
5188 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
5189
5190         PR middle-end/100898
5191         * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy
5192         should copy any arguments.  Don't call gimple_call_num_args
5193         on id->call_stmt or call_stmt more than once.
5194
5195 2021-06-07  liuhongt  <hongtao.liu@intel.com>
5196
5197         PR target/100885
5198         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine
5199         constraints.
5200         (<insn>v4siv4di2): Delete constraints for define_expand.
5201
5202 2021-06-07  liuhongt  <hongtao.liu@intel.com>
5203
5204         PR target/82735
5205         * config/i386/i386-expand.c (ix86_expand_builtin): Remove
5206         assignment of cfun->machine->has_explicit_vzeroupper.
5207         * config/i386/i386-features.c
5208         (ix86_add_reg_usage_to_vzerouppers): Delete.
5209         (ix86_add_reg_usage_to_vzeroupper): Ditto.
5210         (rest_of_handle_insert_vzeroupper): Remove
5211         ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end
5212         of the function.
5213         (gate): Remove cfun->machine->has_explicit_vzeroupper.
5214         * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper):
5215         Declared.
5216         * config/i386/i386.c (ix86_insn_callee_abi): New function.
5217         (ix86_initialize_callee_abi): Ditto.
5218         (ix86_expand_avx_vzeroupper): Ditto.
5219         (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper
5220         ABI.
5221         (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi.
5222         (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper
5223         directly.
5224         * config/i386/i386.h (struct GTY(()) machine_function): Delete
5225         has_explicit_vzeroupper.
5226         * config/i386/i386.md (enum unspec): New member
5227         UNSPEC_CALLEE_ABI.
5228         (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New
5229         define_constants for insn callee abi index.
5230         * config/i386/predicates.md (vzeroupper_pattern): Adjust.
5231         * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted.
5232         (avx_vzeroupper): Call ix86_expand_avx_vzeroupper.
5233         (*avx_vzeroupper): Rename to ..
5234         (avx_vzeroupper_callee_abi): .. this, and adjust pattern as
5235         call_insn which has a special vzeroupper ABI.
5236         (*avx_vzeroupper_1): Deleted.
5237
5238 2021-06-07  liuhongt  <hongtao.liu@intel.com>
5239
5240         PR target/82735
5241         * df-scan.c (df_get_call_refs): When call_insn is a fake call,
5242         it won't use stack pointer reg.
5243         * final.c (leaf_function_p): When call_insn is a fake call, it
5244         won't affect caller as a leaf function.
5245         * reg-stack.c (callee_clobbers_any_stack_reg): New.
5246         (subst_stack_regs): When call_insn doesn't clobber any stack
5247         reg, don't clear the arguments.
5248         * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is
5249         a insn.
5250         * shrink-wrap.c (requires_stack_frame_p): No need for stack
5251         frame for a fake call.
5252         * rtl.h (FAKE_CALL_P): New macro.
5253
5254 2021-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5255
5256         * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename
5257         to...
5258         (sparc_order_regs_for_local_alloc): ...this.
5259         (sparc_leaf_reg_remap): Declare.
5260         * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust.
5261         (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap.
5262         * config/sparc/sparc.c (leaf_reg_remap): Delete.
5263         (order_regs_for_local_alloc): Rename to...
5264         (sparc_order_regs_for_local_alloc): ...this.
5265         (sparc_leaf_reg_remap): New function.
5266         (sparc_conditional_register_usage): Do not modify leaf_reg_remap.
5267
5268 2021-06-06  David Edelsohn  <dje.gcc@gmail.com>
5269
5270         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common):
5271         Use assemble_name to output BSS section name.
5272
5273 2021-06-06  Uroš Bizjak  <ubizjak@gmail.com>
5274
5275         * config/i386/constraints.md (Bs):
5276         Remove boolean operators from match_test RTX.
5277         (Bw): Ditto.
5278         (L): Ditto.
5279         (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
5280         (Wz): Ditto.
5281
5282 2021-06-06  Martin Liska  <mliska@suse.cz>
5283
5284         * doc/extend.texi: Add missing @headitem.
5285         * doc/invoke.texi: Likewise.
5286         * doc/objc.texi: Likewise.
5287
5288 2021-06-06  Martin Liska  <mliska@suse.cz>
5289
5290         * genhooks.c (emit_findices): Remove unused function.
5291         (emit_documentation): Do not call emit_findices
5292         and do not search for @Fcode directives.
5293
5294 2021-06-06  Martin Liska  <mliska@suse.cz>
5295
5296         * doc/invoke.texi: Remove extra character.
5297
5298 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
5299
5300         * config/sh/sh.md (doloop_end_split): Fix empty split condition.
5301
5302 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
5303
5304         * config/sparc/sparc.md (*snedi<W:mode>_zero_vis3,
5305         *neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero,
5306         *plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero,
5307         *minus_minus_snedi<W:mode>_zero): Fix empty split condition.
5308
5309 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
5310
5311         * config/or1k/or1k.md (*movdi): Fix empty split condition.
5312
5313 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
5314
5315         * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty
5316         split condition.
5317
5318 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
5319
5320         * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec,
5321         *zero_extendsidi2): Fix empty split condition.
5322
5323 2021-06-05  Jeff Law  <jeffreyalaw@gmail.com>
5324
5325         * config/h8300/addsub.md: Fix split condition in define_insn_and_split
5326         patterns.
5327         * config/h8300/bitfield.md: Likewise.
5328         * config/h8300/combiner.md: Likewise.
5329         * config/h8300/divmod.md: Likewise.
5330         * config/h8300/extensions.md: Likewise.
5331         * config/h8300/jumpcall.md: Likewise.
5332         * config/h8300/movepush.md: Likewise.
5333         * config/h8300/multiply.md: Likewise.
5334         * config/h8300/other.md: Likewise.
5335         * config/h8300/shiftrotate.md: Likewise.
5336         * config/h8300/logical.md: Likewise.  Fix split pattern to use
5337         code iterator that somehow slipped through.
5338
5339 2021-06-04  Tobias Burnus  <tobias@codesourcery.com>
5340
5341         PR middle-end/100905
5342         * tree-nested.c (convert_nonlocal_omp_clauses,
5343         convert_local_omp_clauses): Handle OMP_CLAUSE_BIND.
5344
5345 2021-06-04  Martin Sebor  <msebor@redhat.com>
5346
5347         PR middle-end/100732
5348         * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls
5349         with either source or destination argument of invalid type.
5350         * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking
5351         calls with arguments of invalid type.
5352
5353 2021-06-04  Martin Sebor  <msebor@redhat.com>
5354
5355         * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected
5356         order.
5357         (attr_access::vla_bounds): Also handle VLA bounds.
5358
5359 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
5360
5361         * config/i386/predicates.md (GOT_memory_operand):
5362         Implement using match_code RTXes.
5363         (GOT32_symbol_operand): Ditto.
5364
5365 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
5366
5367         PR target/100637
5368         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
5369         Handle V2HI mode.
5370         (ix86_expand_vector_init_general): Ditto.
5371         Use SImode instead of word_mode for logic operations
5372         when GET_MODE_SIZE (mode) < UNITS_PER_WORD.
5373         (expand_vec_perm_even_odd_1): Assert that V2HI mode should be
5374         implemented by expand_vec_perm_1.
5375         (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes
5376         should be implemented using standard shuffle patterns.
5377         (ix86_vectorize_vec_perm_const): Handle V2HImode.  Add V4HI and
5378         V2HI modes to modes, implementable with shuffle for one operand.
5379         * config/i386/mmx.md (*punpckwd): New insn_and_split pattern.
5380         (*pshufw_1): New insn pattern.
5381         (*vec_dupv2hi): Ditto.
5382         (vec_initv2hihi): New expander.
5383
5384 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
5385
5386         * config/arm/vfp.md (no_literal_pool_df_immediate,
5387         no_literal_pool_sf_immediate): Fix empty split condition.
5388
5389 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
5390
5391         * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext,
5392         *tls_dynamic_gnu2_combine_32): Fix empty split condition.
5393         * config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt,
5394         *<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt,
5395         *<sse4_1_avx2>_pblendvb_lt): Likewise.
5396
5397 2021-06-04  Jakub Jelinek  <jakub@redhat.com>
5398
5399         PR target/100887
5400         * config/i386/i386-expand.c (ix86_expand_vector_init): Handle
5401         concatenation from half-sized modes with TImode elements.
5402
5403 2021-06-04  Claudiu Zissulescu  <claziss@synopsys.com>
5404
5405         * config/arc/arc.c (arc_override_options): Disable millicode
5406         thunks when RF16 is on.
5407
5408 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
5409
5410         * config/rs6000/rs6000.h (PROMOTE_MODE): Remove.
5411
5412 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
5413
5414         * config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
5415         Replace PROMOTE_MODE marco with its content.
5416
5417 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
5418
5419         * config/cris/cris.md (*addi_reload): Fix empty split condition.
5420
5421 2021-06-03  Jim Wilson  <jimw@sifive.com>
5422
5423         * config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
5424         turn it on for all riscv targets.
5425
5426 2021-06-03  Uroš Bizjak  <ubizjak@gmail.com>
5427
5428         PR target/100637
5429         * config/i386/i386-expand.c (ix86_expand_vector_set):
5430         Handle V2HI and V4QI modes.
5431         (ix86_expand_vector_extract): Ditto.
5432         * config/i386/mmx.md (*pinsrw): New insn pattern.
5433         (*pinsrb): Ditto.
5434         (*pextrw): Ditto.
5435         (*pextrw_zext): Ditto.
5436         (*pextrb): Ditto.
5437         (*pextrb_zext): Ditto.
5438         (vec_setv2hi): New expander.
5439         (vec_extractv2hihi): Ditto.
5440         (vec_setv4qi): Ditto.
5441         (vec_extractv4qiqi): Ditto.
5442         (vec_setv8qi): Enable only for TARGET_SSE4_1.
5443         (vec_extractv8qiqi): Ditto.
5444
5445 2021-06-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
5446
5447         * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input
5448         order to subf instruction.
5449         * config/rs6000/fusion.md: Regenerate.
5450
5451 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
5452
5453         * calls.c (get_size_range): Use range_of_expr instead of
5454         determine_value_range.
5455         * tree-affine.c (expr_to_aff_combination): Same.
5456         * tree-data-ref.c (split_constant_offset): Same.
5457         * tree-vrp.c (determine_value_range_1): Remove.
5458         (determine_value_range): Remove.
5459         * tree-vrp.h (determine_value_range): Remove.
5460
5461 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
5462
5463         * function-tests.c (test_ranges): Call gimple_range_tests.
5464         * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt
5465         to get_tree_range.
5466         * gimple-range.cc (fur_source::get_operand): Do not call
5467         get_tree_range or gimple_range_global.
5468         get_tree_range.
5469         (get_tree_range): Move to value-query.cc.
5470         Call get_arith_expr_range.
5471         (gimple_ranger::range_of_expr): Add argument to get_tree_range.
5472         Include gimple-range-tests.cc.
5473         * gimple-range.h (fold_range): Add argument.
5474         (get_tree_range): Remove.
5475         * selftest.h (gimple_range_tests): New.
5476         * value-query.cc (global_range_query::range_of_expr): Add
5477         stmt argument.
5478         (range_query::get_tree_range): Move from gimple-range.cc.
5479         * value-query.h (class range_query): Add get_tree_range and
5480         get_arith_expr_range.  Make fur_source a friend.
5481         * vr-values.c (vr_values::range_of_expr): Pass stmt to
5482         get_tree_range.
5483         * gimple-range-tests.cc: New file.
5484
5485 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
5486
5487         * gimple-range.cc (gimple_ranger::export_global_ranges): Call
5488           update_global_range.
5489         * value-query.cc (update_global_range): New.
5490         * value-query.h (update_global_range): New.
5491
5492 2021-06-03  David Malcolm  <dmalcolm@redhat.com>
5493
5494         * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject
5495         printing the same location twice if there are fix-it hints,
5496         multiple locations, or a label.
5497
5498 2021-06-03  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5499
5500         * tree-vect-loop.c (vect_transform_loop): Use main loop's various'
5501         thresholds to narrow the upper bound on epilogue iterations.
5502
5503 2021-06-03  Christophe Lyon  <christophe.lyon@linaro.org>
5504
5505         * config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec.
5506         (mve_vabsq_s<mode>): Likewise.
5507         * config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2.
5508         * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete.
5509         * config/arm/vec-common.md (neg<mode>2): Rename to
5510         <absneg_str><mode>2.
5511
5512 2021-06-03  Claudiu Zissulescu  <claziss@synopsys.com>
5513
5514         * common/config/arc/arc-common.c (arc_option_optimization_table):
5515         Remove malign-call.
5516         * config/arc/arc.c (arc_unalign_branch_p): Remove unused function.
5517         * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro.
5518         (INDEX_REG_CLASS): Only refer to GENERAL_REGS.
5519         * config/arc/arc.md (abssi2_mixed): Remove pattern.
5520         * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete.
5521         (malign-call): Likewise.
5522         (mmixed-code): Likewise.
5523         * doc/invoke.texi (ARC): Update doc.
5524
5525 2021-06-03  Martin Liska  <mliska@suse.cz>
5526
5527         * common.opt: Use proper Enum values.
5528         * opts.c (COVERAGE_SANITIZER_OPT): Remove.
5529         (parse_sanitizer_options): Handle only sanitizer_opts.
5530         (common_handle_option): Just assign value.
5531
5532 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
5533
5534         PR ipa/99122
5535         * tree-inline.c (inline_forbidden_p): Remove test on return type.
5536
5537 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
5538
5539         * dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate
5540         DW_OP_GNU_variable_value referencing an existing DIE at file scope.
5541         (type_byte_size): Inline into...
5542         (add_byte_size_attribute): ...this and call add_scalar_info.
5543
5544 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
5545
5546         * dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo.
5547         (typed_binop_from_tree): New function.
5548         (loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type,
5549         turn a divide by a power of 2 into a shift.
5550         <CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the
5551         size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a
5552         typed divide by calling typed_binop_from_tree.
5553
5554 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
5555
5556         * dwarf2out.c (scompare_loc_descriptor): Fix head comment.
5557         (is_handled_procedure_type): Likewise.
5558         (struct loc_descr_context): Add strict_signedness field.
5559         (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type,
5560         DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret.
5561         (resolve_args_picking): Minor tweak.
5562         (function_to_dwarf_procedure): Initialize strict_signedness field.
5563         (type_byte_size): Likewise.
5564         (field_byte_offset): Likewise.
5565         (gen_descr_array_type_die): Likewise.
5566         (gen_variant_part): Likewise.
5567         (loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness
5568         to true when a context is present before evaluating the arguments.
5569         <COND_EXPR>: Do not generate a useless comparison with zero.
5570         When dereferencing an address, if strict_signedness is true and the
5571         type is small and signed, use DW_OP_deref_type to do the dereference
5572         and then DW_OP_convert to convert back to the generic type.
5573
5574 2021-06-03  Jakub Jelinek  <jakub@redhat.com>
5575
5576         PR c++/100859
5577         * tree-inline.c (copy_tree_body_r): Handle iterators on
5578         OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND.
5579
5580 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
5581
5582         * config/arc/arc.md (*bbit_di): Remove.
5583
5584 2021-06-02  Christoph Muellner  <cmuellner@gcc.gnu.org>
5585
5586         PR rtl-optimization/100264
5587         * ree.c (get_sub_rtx): Ignore SET expressions without register
5588         destinations and remove assertion, as it is not valid anymore
5589         with this new behaviour.
5590         (merge_def_and_ext): Eliminate destination check for register
5591         as such SET expressions can't occur anymore.
5592         (combine_reaching_defs): Likewise.
5593
5594 2021-06-02  Jakub Jelinek  <jakub@redhat.com>
5595
5596         PR target/100841
5597         * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid
5598         -Wtype-limits warnings.
5599         (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition
5600         in operands to avoid -Wsign-compare warnings.
5601
5602 2021-06-02  Pat Haugen  <pthaugen@linux.ibm.com>
5603
5604         * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
5605         gen_frame_store.
5606
5607 2021-06-02  Vineet Gupta  <vgupta@synopsys.com>
5608
5609         * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux.
5610
5611 2021-06-02  Ilya Leoshkevich  <iii@linux.ibm.com>
5612
5613         * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single
5614         constraint.
5615         * config/s390/subst.md(cconly_subst): Use a single constraint
5616         in (match_scratch).
5617
5618 2021-06-02  Martin Liska  <mliska@suse.cz>
5619
5620         * ipa-icf.h: Use auto_vec for memory_access_types.
5621
5622 2021-06-02  Jeff Law  <jeffreyalaw@gmail.com>
5623
5624         * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused
5625         argument from prototype.
5626         (output_logical_op): Add rtx_code argument.
5627         (compute_logical_op_length): Likewise.
5628         * config/h8300/h8300.c (h8300_and_costs): Pass additional argument
5629         to compute_a_shift_length.
5630         (output_logical_op); New argument with the rtx code rather than
5631         extracting it from an operand.  Handle QImode too.
5632         (compute_logical_op_length): Similary.
5633         (compute_a_shift_length): Drop unused argument.
5634         * config/h8300/h8300.md (logicals): New code iterator.
5635         * config/h8300/logical.md (<code><mode>3 expander): Combine
5636         the "and" expander with the "ior"/"xor" expander.
5637         (bclr<mode>msx): Combine the QI/HI mode patterns.
5638         (<logical><mode>3 insns): Use code iterator rather than match_operator.
5639         Handle QImode as well.   Update call to output_logical_op and
5640         compute_logical_op_length to pass in rtx_code
5641         Fix split condition on all define_insn_and_split patterns.
5642         (one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering
5643         the flags and setting ZN via existing define_subst.
5644         * config/h8300/shiftrotate.md: Drop unused argument from
5645         calls to compute_a_shift_length.
5646         Signed-off-by: Jeff Law <jeffreyalaw@gmail.com>
5647
5648 2021-06-01  Andrew Pinski  <apinski@marvell.com>
5649
5650         PR tree-optimization/25290
5651         * tree-ssa-phiopt.c (match_simplify_replacement):
5652         New function.
5653         (tree_ssa_phiopt_worker): Use match_simplify_replacement.
5654         (two_value_replacement): Change the comment about
5655         conditional_replacement.
5656         (conditional_replacement): Delete.
5657
5658 2021-06-01  Andrew Pinski  <apinski@marvell.com>
5659
5660         PR tree-optimization/95481
5661         * tree-tailcall.c (find_tail_calls): Handle empty typed
5662         return decls.
5663
5664 2021-06-01  Andrew Pinski  <apinski@marvell.com>
5665
5666         * gimplify.c (zero_sized_field_decl): Delete
5667         (zero_sized_type): Delete
5668         (gimplify_init_ctor_eval): Use is_empty_type instead
5669         of zero_sized_field_decl.
5670         (gimplify_modify_expr): Use is_empty_type instead of
5671         zero_sized_type.
5672
5673 2021-06-01  Jason Merrill  <jason@redhat.com>
5674
5675         PR c++/91859
5676         * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment.
5677
5678 2021-06-01  Jason Merrill  <jason@redhat.com>
5679
5680         PR c++/94492
5681         * diagnostic.h (warning_enabled_at): Declare.
5682         * diagnostic.c (diagnostic_enabled): Factor out from...
5683         (diagnostic_report_diagnostic): ...here.
5684         (warning_enabled_at): New.
5685
5686 2021-06-01  Aldy Hernandez  <aldyh@redhat.com>
5687
5688         * gimple-ssa-evrp.c: Enable exporting of global ranges.
5689
5690 2021-06-01  Martin Liska  <mliska@suse.cz>
5691
5692         PR other/100826
5693         * doc/invoke.texi: Mention that -fgcse-after-reload
5694         is enabled with -O3.
5695
5696 2021-06-01  liuhongt  <hongtao.liu@intel.com>
5697
5698         PR tree-optimization/98365
5699         * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function.
5700         (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction.
5701         (convert_scalar_cond_reduction): Ditto.
5702         (predicate_scalar_phi): Ditto.
5703
5704 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
5705
5706         PR tree-optimization/100781
5707         * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new
5708         value calculation by default.
5709         (ranger_cache::enable_new_values): New.
5710         (ranger_cache::disable_new_values): New.
5711         (ranger_cache::push_poor_value): Check if new values are allowed.
5712         * gimple-range-cache.h (class ranger_cache): New member/methods.
5713         * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug
5714         statement, and disable/renable new value calculation.
5715
5716 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
5717
5718         * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete.
5719         (ranger_cache::range_of_def): New.
5720         (ranger_cache::entry_range): New.
5721         (ranger_cache::exit_range): New.
5722         (ranger_cache::range_of_expr): Adjust.
5723         (ranger_cache::range_on_edge): Adjust.
5724         (ranger_cache::propagate_cache): Call exit_range directly.
5725         * gimple-range-cache.h (class ranger_cache): Adjust.
5726
5727 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
5728
5729         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for
5730         gori_compute being a member rather than base class.
5731         dervied call to member call.
5732         (ranger_cache::dump): No longer dump gori_map.
5733         (ranger_cache::dump_bb): New.
5734         (ranger_cache::get_non_stale_global_range): Adjust for gori_compute
5735         being a member rather than base class.
5736         (ranger_cache::set_global_range): Ditto.
5737         (ranger_cache::ssa_range_in_bb): Ditto.
5738         (ranger_cache::range_of_expr): New.
5739         (ranger_cache::range_on_edge): New.
5740         (ranger_cache::block_range): Adjust for gori_computes.  Debug changes.
5741         (ranger_cache::propagate_cache):  Adjust debugging output.
5742         (ranger_cache::fill_block_cache): Adjust for gori_computes.  Debug
5743         output changes.
5744         * gimple-range-cache.h (class ranger_cache): Make gori_compute a
5745         member, and inherit from range_query instead.
5746         (ranger_cache::dump_bb): New. split from dump.
5747         * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete.
5748         (gori_compute::expr_range_at_stmt): Delete.
5749         (gori_compute::compute_name_range_op): Delete.
5750         (gori_compute::compute_operand_range_switch): Add fur_source.
5751         (gori_compute::compute_operand_range): Add fur_source param, inline
5752         old compute_name_range_op and optimize_logical_operands.
5753         (struct tf_range): Delete.
5754         (gori_compute::logical_combine): Adjust
5755         (gori_compute::optimize_logical_operands): Delete.
5756         (gori_compute::compute_logical_operands_in_chain): Delete.
5757         (gori_compute::compute_logical_operands): Adjust.
5758         (gori_compute::compute_operand1_range): Adjust to fur_source.
5759         (gori_compute::compute_operand2_range): Ditto.
5760         (gori_compute::compute_operand1_and_operand2_range): Ditto.
5761         (gori_compute::outgoing_edge_range_p): Add range_query parameter,
5762         and adjust to fur_source.
5763         * gimple-range-gori.h (class gori_compute): Simplify and adjust to
5764         range_query and fur_source.
5765         * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge
5766         from the ranger_cache..
5767         (gimple_ranger::fold_range_internal): Adjust to base class change of
5768         ranger_cache.
5769         (gimple_ranger::dump_bb): Adjust dump.
5770         * gimple-range.h (gimple_ranger):export gori computes object.
5771
5772 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
5773
5774         PR tree-optimization/100774
5775         * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range):
5776         Constant values are also not stale.
5777         (ranger_cache::set_global_range): Range invariant values should also
5778         have the correct timestamp.
5779
5780 2021-05-31  Martin Liska  <mliska@suse.cz>
5781
5782         * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
5783         Unpack FUNCTION_DECL_DECL_TYPE.
5784         * tree-streamer-out.c (pack_ts_function_decl_value_fields):
5785         Stream FUNCTION_DECL_DECL_TYPE instead of
5786         DECL_IS_OPERATOR_NEW_P.
5787         * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE
5788         macro.
5789         (DECL_IS_OPERATOR_NEW_P): Likewise.
5790         (DECL_IS_OPERATOR_DELETE_P): Likewise.
5791         (DECL_LAMBDA_FUNCTION_P): Likewise.
5792
5793 2021-05-31  Richard Biener  <rguenther@suse.de>
5794
5795         PR c++/88601
5796         * internal-fn.c (expand_SHUFFLEVECTOR): Define.
5797         * internal-fn.def (SHUFFLEVECTOR): New.
5798         * internal-fn.h (expand_SHUFFLEVECTOR): Declare.
5799         * doc/extend.texi: Document __builtin_shufflevector.
5800
5801 2021-05-31  Peter Bergner  <bergner@linux.ibm.com>
5802
5803         PR target/99842
5804         * config/rs6000/predicates.md(mma_assemble_input_operand): Allow
5805         indexed form addresses.
5806
5807 2021-05-29  Jeff Law  <jlaw@tachyum.com>
5808
5809         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused
5810         parameter.  Call callers fixed.
5811         (push): Likewise.
5812         (output_plussi): Add FALLTHRU markers.
5813         (h8300_shift_needs_scratch_p): Add gcc_unreachable marker.
5814
5815 2021-05-29  Jakub Jelinek  <jakub@redhat.com>
5816
5817         PR middle-end/99928
5818         * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd
5819         combined with parallel, make sure to add shared clause to
5820         parallel for explicit linear clause.
5821
5822 2021-05-29  Aldy Hernandez  <aldyh@redhat.com>
5823
5824         PR tree-optimization/100787
5825         * gimple-ssa-evrp.c: Disable exporting of global ranges.
5826
5827 2021-05-28  Jason Merrill  <jason@redhat.com>
5828
5829         * tree-iterator.h (struct tree_stmt_iterator): Add operator++,
5830         operator--, operator*, operator==, and operator!=.
5831         (class tsi_range): New.
5832
5833 2021-05-28  Richard Biener  <rguenther@suse.de>
5834
5835         PR tree-optimization/100778
5836         * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly
5837         trapping ops in different BBs.
5838
5839 2021-05-28  Richard Biener  <rguenther@suse.de>
5840
5841         PR ipa/100791
5842         * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
5843         copy fntype from original call.
5844
5845 2021-05-28  Martin Liska  <mliska@suse.cz>
5846
5847         PR gcov-profile/100751
5848         * doc/gcov.texi: Revert partially a hunk that was wrong.
5849
5850 2021-05-28  Cooper Qu  <cooper.qu@linux.alibaba.com>
5851
5852         * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi):
5853         Defined.
5854         (HAVE_sync_compare_and_swaphi): Likewise.
5855         (HAVE_sync_compare_and_swapsi): Likewise.
5856
5857 2021-05-28  Jakub Jelinek  <jakub@redhat.com>
5858
5859         PR middle-end/99928
5860         * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define.
5861
5862 2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
5863
5864         * gimplify.c (gimplify_omp_affinity): New.
5865         (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards.
5866         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY.
5867         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY.
5868         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause.
5869         (walk_tree_1): Handle OMP_CLAUSE_AFFINITY.
5870
5871 2021-05-28  Joern Rennecke  <joern.rennecke@riscy-ip.com>
5872             Richard Biener   <rguenther@suse.de>
5873
5874         * match.pd <popcount & / + pattern matching>:
5875         When generating popcount directly fails, try doing it in two halves.
5876
5877 2021-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5878
5879         * Makefile.in (generated_files): Add gimple-match.c and
5880         generic-match.c
5881
5882 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
5883
5884         * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP.
5885
5886 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
5887
5888         * gensupport.c (alter_constraints): Add MATCH_SCRATCH case.
5889
5890 2021-05-28  Kewen Lin  <linkw@linux.ibm.com>
5891
5892         PR tree-optimization/99398
5893         * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases
5894         where the fed operands are CTOR/CST and propagated through
5895         VIEW_CONVERT_EXPR.  Call vec_perm_indices::new_shrunk_vector.
5896         * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New
5897         function.
5898         * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New
5899         declare.
5900
5901 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
5902
5903         * config/i386/mmx.md (addv2sf3): Do not call
5904         ix86_fixup_binary_operands_no_copy.
5905         (subv2sf3): Ditto.
5906         (mulv2sf3): Ditto.
5907         (<smaxmin:code>v2sf3): Ditto.
5908         (<plusminus:insn><MMXMODEI:mode>3): Ditto.
5909         (<plusminus:insn><VI_32:mode>3): Remove expander.
5910         (<plusminus:insn><VI_32:mode>3): Rename from
5911         "*<plusminus:insn><VI_32:mode>3".
5912         (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy.
5913         (mulv2hi3): Remove expander.
5914         (mulv2hi3): Rename from *mulv2hi3.
5915         (<s>mulv2hi3_highpart): Remove expander.
5916         (<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart.
5917         (<smaxmin:code><MMXMODE14:mode>3): Rename from
5918         "*mmx_<smaxmin:code><MMXMODE14:mode>3".
5919         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander.
5920         (SMAXMIN_MMXMODEI): Remove mode iterator.
5921         (<smaxmin:code>v4hi3): New expander.
5922         (<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3.
5923         (<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3.
5924         (<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
5925         (SMAXMIN_VI_32): Remove mode iterator.
5926         (<umaxmin:code><MMXMODE24:mode>3): Rename from
5927         "*mmx_<umaxmin:code><MMXMODE24:mode>3".
5928         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander.
5929         (UMAXMIN_MMXMODEI): Remove mode iterator.
5930         (<umaxmin:code>v8qi3): New expander.
5931         (<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3.
5932         (<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3.
5933         (<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
5934         (UMAXMIN_VI_32): Remove mode iterator.
5935         (<any_shift:insn>v2hi3): Remove expander.
5936         (<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3.
5937         (<any_logic:code><MMXMODEI:mode>3): Do not call
5938         ix86_fixup_binary_operands_no_copy.
5939         (<any_logic:code><VI_32:mode>3): Remove expander.
5940         (<any_logic:code><VI_32:mode>3): Rename from
5941         "*<any_logic:code><VI_32:mode>3".
5942         (uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy.
5943         * config/i386/sse.md (div<VF2:mode>3): Do not call
5944         ix86_fixup_binary_operands_no_copy.
5945         (div<VF1:mode>3): Ditto.
5946         (<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto.
5947         (smulhrsv4hi3): Ditto.
5948         (smulhrsv2hi3): Ditto.
5949
5950 2021-05-27  Martin Sebor  <msebor@redhat.com>
5951
5952         * ggc.h (gt_ggc_mx): Add overloads for all integers.
5953         (gt_pch_nx):  Same.
5954         * hash-map.h (class hash_map): Add pch_nx_helper overloads for all
5955         integers.
5956         (hash_map::operator==): New function.
5957
5958 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
5959
5960         PR target/100637
5961         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
5962         For TARGET_XOP bypass SSE comparisons for all supported vector modes.
5963         * config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern.
5964         (*xop_maskcmp<VI_32:mode>3): Ditto.
5965         (*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto.
5966         (*xop_maskcmp_uns<VI_32:mode>3): Ditto.
5967
5968 2021-05-27  Richard Earnshaw  <rearnsha@arm.com>
5969
5970         PR target/100767
5971         * config/arm/arm.c (arm_configure_build_target): Remove parameter
5972         opts_set, directly check opts parameters for being non-null.
5973         (arm_option_restore): Update call to arm_configure_build_target.
5974         (arm_option_override): Likewise.
5975         (arm_can_inline_p): Likewise.
5976         (arm_valid_target_attribute_tree): Likewise.
5977         * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
5978         * config/arm/arm-protos.h (arm_configure_build_target): Adjust
5979         prototype.
5980
5981 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
5982
5983         * vr-values.c (simplify_conversion_using_ranges): Use
5984         get_range_query instead of get_global_range_query.
5985
5986 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
5987
5988         * gimple-range.cc (get_range_global): Move to value-query.cc.
5989         (gimple_range_global): Same.
5990         (get_global_range_query): Same.
5991         (global_range_query::range_of_expr): Same.
5992         * gimple-range.h (class global_range_query): Move to
5993         value-query.h.
5994         (gimple_range_global): Same.
5995         * tree-ssanames.c (get_range_info): Move to value-query.cc.
5996         (get_ptr_nonnull): Same.
5997         * tree-ssanames.h (get_range_info): Remove.
5998         (get_ptr_nonnull): Remove.
5999         * value-query.cc (get_ssa_name_range_info): Move from
6000         tree-ssanames.c.
6001         (get_ssa_name_ptr_info_nonnull): Same.
6002         (get_range_global): Move from gimple-range.cc.
6003         (gimple_range_global): Same.
6004         (get_global_range_query): Same.
6005         (global_range_query::range_of_expr): Same.
6006         * value-query.h (class global_range_query): Move from
6007         gimple-range.h.
6008         (gimple_range_global): Same.
6009
6010 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
6011
6012         PR target/100637
6013         * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern.
6014         (uavgv2hi3_ceil): Ditto.
6015
6016 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
6017
6018         PR c/100653
6019         * doc/extend.texi (scalar_storage_order): Rephrase slightly.
6020
6021 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
6022
6023         * tree-ssanames.c (get_range_info): Merge both copies of
6024         get_range_info into one that works with irange.
6025         * tree-ssanames.h (get_range_info): Remove version that works on
6026         wide_ints.
6027
6028 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
6029
6030         * builtins.c (check_nul_terminated_array): Convert to get_range_query.
6031         (expand_builtin_strnlen): Same.
6032         (determine_block_size): Same.
6033         * fold-const.c (expr_not_equal_to): Same.
6034         * gimple-fold.c (size_must_be_zero_p): Same.
6035         * gimple-match-head.c: Include gimple-range.h.
6036         * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query.
6037         * gimple-ssa-warn-restrict.c
6038         (builtin_memref::extend_offset_range): Same.
6039         * graphite-sese-to-poly.c (add_param_constraints): Same.
6040         * internal-fn.c (get_min_precision): Same.
6041         * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same.
6042         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
6043         * match.pd: Same.
6044         * tree-data-ref.c (split_constant_offset): Same.
6045         (dr_step_indicator): Same.
6046         * tree-dfa.c (get_ref_base_and_extent): Same.
6047         * tree-scalar-evolution.c (iv_can_overflow_p): Same.
6048         * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same.
6049         (determine_value_range): Same.
6050         (record_nonwrapping_iv): Same.
6051         (infer_loop_bounds_from_signedness): Same.
6052         (scev_var_range_cant_overflow): Same.
6053         * tree-ssa-phiopt.c (two_value_replacement): Same.
6054         * tree-ssa-pre.c (insert_into_preds_of_block): Same.
6055         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same.
6056         * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same.
6057         (get_range): Same.
6058         (dump_strlen_info): Same.
6059         (set_strlen_range): Same.
6060         (maybe_diag_stxncpy_trunc): Same.
6061         (get_len_or_size): Same.
6062         (handle_integral_assign): Same.
6063         * tree-ssa-structalias.c (find_what_p_points_to): Same.
6064         * tree-ssa-uninit.c (find_var_cmp_const): Same.
6065         * tree-switch-conversion.c (bit_test_cluster::emit): Same.
6066         * tree-vect-patterns.c (vect_get_range_info): Same.
6067         (vect_recog_divmod_pattern): Same.
6068         * tree-vrp.c (intersect_range_with_nonzero_bits): Same.
6069         (register_edge_assert_for_2): Same.
6070         (determine_value_range_1): Same.
6071         * tree.c (get_range_pos_neg): Same.
6072         * vr-values.c (vr_values::get_lattice_entry): Same.
6073         (vr_values::update_value_range): Same.
6074         (simplify_conversion_using_ranges): Same.
6075
6076 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
6077
6078         * gimple-ssa-warn-alloca.c (alloca_call_type): Use
6079           get_range_query instead of query argument.
6080         (pass_walloca::execute): Enable and disable global ranger.
6081
6082 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
6083
6084         * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
6085         enable_ranger.
6086         (rvrp_folder::~rvrp_folder): Call disable_ranger.
6087         (hybrid_folder::hybrid_folder): Call enable_ranger.
6088         (hybrid_folder::~hybrid_folder): Call disable_ranger.
6089
6090 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
6091
6092         * function.c (allocate_struct_function): Set cfun->x_range_query.
6093         * function.h (struct function): Declare x_range_query.
6094         (get_range_query): New.
6095         (get_global_range_query): New.
6096         * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache):
6097         Remove call to safe_grow_cleared.
6098         * gimple-range.cc (get_range_global): New.
6099         (gimple_range_global): Move from gimple-range.h.
6100         (get_global_range_query): New.
6101         (global_range_query::range_of_expr): New.
6102         (enable_ranger): New.
6103         (disable_ranger): New.
6104         * gimple-range.h (gimple_range_global): Move to gimple-range.cc.
6105         (class global_range_query): New.
6106         (enable_ranger): New.
6107         (disable_ranger): New.
6108         * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename
6109         dump_all_value_ranges to dump.
6110         * tree-vrp.c (vrp_prop::finalize): Same.
6111         * value-query.cc (range_query::dump): New.
6112         * value-query.h (range_query::dump): New.
6113         * vr-values.c (vr_values::dump_all_value_ranges): Rename to...
6114         (vr_values::dump): ...this.
6115         * vr-values.h (class vr_values): Rename dump_all_value_ranges to
6116         dump and make virtual.
6117
6118 2021-05-26  Uroš Bizjak  <ubizjak@gmail.com>
6119
6120         * config/i386/i386.c (ix86_autovectorize_vector_modes):
6121         Add V4QImode and V16QImode for TARGET_SSE2.
6122         * doc/sourcebuild.texi (Vector-specific attributes):
6123         Add vect64 and vect32 description.
6124
6125 2021-05-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6126
6127         * gimple-range-gori.cc (range_def_chain::register_dependency):
6128         Resize m_def_chain when needed.
6129
6130 2021-05-26  Christophe Lyon  <christophe.lyon@linaro.org>
6131
6132         * config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'.
6133         * config/arm/neon.md (reduc_plus_scal_<mode>): Move to ..
6134         * config/arm/vec-common.md: .. here. Add support for MVE.
6135
6136 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
6137
6138         * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove
6139         register keywords.
6140         * config/microblaze/microblaze.c (microblaze_legitimize_address,
6141         call_internal1,
6142         microblaze_option_override, print_operand): Likewise.
6143         * config/microblaze/microblaze.md (call_internal_plt,
6144         call_value_intern_plt, call_value_intern): Likewise.
6145         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise.
6146         * config/iq2000/iq2000.md (call_internal1, call_value_internal1,
6147         call_value_multiple_internal1): Likewise.
6148         * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise.
6149
6150 2021-05-26  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
6151
6152         * config/arc/arc.c (arc_address_cost, arc_print_operand_address,
6153         arc_ccfsm_advance, symbolic_reference_mentioned_p,
6154         arc_raw_symbolic_reference_mentioned_p): Remove register
6155         keyword.
6156
6157 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
6158
6159         PR libgomp/100573
6160         * omp-low.c: Include omp-offload.h.
6161         (create_omp_child_function): If current_function_decl has
6162         "omp declare target" attribute and is_gimple_omp_offloaded,
6163         remove that attribute from the copy of attribute list and
6164         add "omp target entrypoint" attribute instead.
6165         (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.*
6166         variables for offloading if in omp_maybe_offloaded_ctx.
6167         * omp-offload.c (pass_omp_target_link::execute): Nullify second
6168         argument to GOMP_target_data_ext in offloaded code.
6169
6170 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
6171
6172         * config/csky/csky.c (csky_can_change_mode_class): Delete.
6173         For csky, HF/SF mode use the low bits of VREGS.
6174
6175 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
6176
6177         * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a
6178         DECL which is a reference for OMP.
6179
6180 2021-05-26  Martin Liska  <mliska@suse.cz>
6181
6182         PR gcov-profile/100751
6183         * doc/gcov.texi: Document that __gcov_dump can be called just
6184         once and that __gcov_reset resets run-time counters.
6185
6186 2021-05-26  Martin Liska  <mliska@suse.cz>
6187
6188         * doc/install.texi: Port relevant part from install-old.texi
6189         and re-generate list of CPUs and systems.
6190
6191 2021-05-26  Martin Liska  <mliska@suse.cz>
6192
6193         * Makefile.in: Remove it.
6194         * doc/include/fdl.texi: Update next/previous chapters.
6195         * doc/install.texi: Likewise.
6196         * doc/install-old.texi: Removed.
6197
6198 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
6199
6200         * config/csky/csky.c (ck810_legitimate_index_p): Support
6201         "base + index" with DF mode.
6202         * config/csky/constraints.md ("Y"): New constraint for memory operands
6203         without index register.
6204         * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m"
6205         when mov between memory and general registers, and lower their priority.
6206         * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise.
6207
6208 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
6209
6210         * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete.
6211
6212 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
6213
6214         * config/csky/csky.md (untyped_call): Emit clobber for return
6215         registers to mark them used.
6216
6217 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
6218
6219         * config/csky/csky.md (cskyv2_sextend_ldbs): New.
6220
6221 2021-05-26  Andrew Pinski  <apinski@marvell.com>
6222
6223         * match.pd (x < 0 ? ~y : y): New patterns.
6224
6225 2021-05-26  Andrew Pinski  <apinski@marvell.com>
6226
6227         * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0,
6228         A?POW2:0 and A?0:POW2.
6229
6230 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6231
6232         * gimple-range-gori.cc (class logical_stmt_cache): Delete
6233         (logical_stmt_cache::logical_stmt_cache ): Delete.
6234         (logical_stmt_cache::~logical_stmt_cache): Delete.
6235         (logical_stmt_cache::cache_entry::dump): Delete.
6236         (logical_stmt_cache::get_range): Delete.
6237         (logical_stmt_cache::cached_name ): Delete.
6238         (logical_stmt_cache::same_cached_name): Delete.
6239         (logical_stmt_cache::cacheable_p): Delete.
6240         (logical_stmt_cache::slot_diagnostics ): Delete.
6241         (logical_stmt_cache::dump): Delete.
6242         (gori_compute_cache::gori_compute_cache): Delete.
6243         (gori_compute_cache::~gori_compute_cache): Delete.
6244         (gori_compute_cache::compute_operand_range): Delete.
6245         (gori_compute_cache::cache_stmt): Delete.
6246         * gimple-range-gori.h (gori_compute::compute_operand_range): Remove
6247         virtual.
6248         (class gori_compute_cache): Delete.
6249
6250 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6251
6252         * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori
6253         intead of m_cache.
6254         (fold_using_range::range_of_address): Adjust.
6255         (fold_using_range::range_of_phi): Adjust.
6256         * gimple-range.h (class fur_source): Adjust.
6257         (fur_source::fur_source): Adjust.
6258
6259 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6260
6261         * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename
6262         from expr_range_in_bb and adjust.
6263         (gori_compute::compute_name_range_op): Adjust.
6264         (gori_compute::optimize_logical_operands): Adjust.
6265         (gori_compute::compute_logical_operands_in_chain): Adjust.
6266         (gori_compute::compute_operand1_range): Adjust.
6267         (gori_compute::compute_operand2_range): Adjust.
6268         (ori_compute_cache::cache_stmt): Adjust.
6269         * gimple-range-gori.h (gori_compute): Rename prototype.
6270
6271 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6272
6273         * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be
6274         checked only after range_of_stmt, not range_on_entry.
6275         (gimple_ranger::range_on_entry): Check for non-null in any
6276         predecessor block, if it is not already non-null.
6277         (gimple_ranger::range_on_exit): DOnt check for non-null after
6278         range on entry call.
6279         (gimple_ranger::dump_bb): New.  Split from dump.
6280         (gimple_ranger::dump): Adjust.
6281         * gimple-range.h (class gimple_ranger): Adjust.
6282
6283 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6284
6285         * gimple-range-cache.cc (struct range_timestamp): Delete.
6286         (class temporal_cache): Adjust.
6287         (temporal_cache::get_timestamp): Delete.
6288         (temporal_cache::set_dependency): Delete.
6289         (temporal_cache::temporal_value): Adjust.
6290         (temporal_cache::current_p): Take dependencies as params.
6291         (temporal_cache::set_timestamp): Adjust.
6292         (temporal_cache::set_always_current): Adjust.
6293         (ranger_cache::get_non_stale_global_range): Adjust.
6294         (ranger_cache::register_dependency): Delete.
6295         * gimple-range-cache.h (class range_cache): Adjust.
6296
6297 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6298
6299         * gimple-range-gori.cc (range_def_chain::range_def_chain): init
6300         bitmap obstack.
6301         (range_def_chain::~range_def_chain): Dispose of obstack rather than
6302         each individual bitmap.
6303         (range_def_chain::set_import): New.
6304         (range_def_chain::get_imports): New.
6305         (range_def_chain::chain_import_p): New.
6306         (range_def_chain::register_dependency): Rename from build_def_chain
6307         and set imports.
6308         (range_def_chain::def_chain_in_bitmap_p): New.
6309         (range_def_chain::add_def_chain_to_bitmap): New.
6310         (range_def_chain::has_def_chain): Just check first depenedence.
6311         (range_def_chain::get_def_chain): Process imports, use generic
6312         register_dependency routine.
6313         (range_def_chain::dump): New.
6314         (gori_map::gori_map): Allocate import list.
6315         (gori_map::~gori_map): Release imports.
6316         (gori_map::exports): Check for past allocated block size.
6317         (gori_map::imports): New.
6318         (gori_map::def_chain_in_export_p): Delete.
6319         (gori_map::is_import_p): New.
6320         (gori_map::maybe_add_gori): Handle imports.
6321         (gori_map::dump): Adjust output, add imports.
6322         (gori_compute::has_edge_range_p): Remove def_chain_in_export call.
6323         (gori_export_iterator::gori_export_iterator): New.
6324         (gori_export_iterator::next): New.
6325         (gori_export_iterator::get_name): New.
6326         * gimple-range-gori.h (range_def_chain): Add imports and direct
6327         dependecies via struct rdc.
6328         (range_def_chain::depend1): New.
6329         (range_def_chain::depend2): New.
6330         (class gori_map): Adjust.
6331         (FOR_EACH_GORI_IMPORT_NAME): New.
6332         (FOR_EACH_GORI_EXPORT_NAME): New.
6333         (class gori_export_iterator): New.
6334
6335 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6336
6337         * gimple-range-cache.cc (ranger_cache::ranger_cache):  Move initial
6338         export cache filling to here.
6339         * gimple-range-gori.cc (gori_compute::gori_compute) : From Here.
6340
6341 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
6342
6343         * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h.
6344         (gori_map): Move to gimple-range-gori.h.
6345         (gori_compute::gori_compute): Adjust.
6346         (gori_compute::~gori_compute): Delete.
6347         (gori_compute::compute_operand_range_switch): Adjust.
6348         (gori_compute::compute_operand_range): Adjust.
6349         (gori_compute::compute_logical_operands): Adjust.
6350         (gori_compute::has_edge_range_p ): Adjust.
6351         (gori_compute::set_range_invariant): Delete.
6352         (gori_compute::dump): Adjust.
6353         (gori_compute::outgoing_edge_range_p): Adjust.
6354         * gimple-range-gori.h (class range_def_chain): Relocate here.
6355         (class gori_map): Relocate here.
6356         (class gori_compute): Inherit from gori_map, and adjust.
6357
6358 2021-05-25  Aldy Hernandez  <aldyh@redhat.com>
6359
6360         * value-range.cc (range_tests_legacy): Use
6361         build_nonstandard_integer_type instead of int and short.
6362
6363 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6364
6365         * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL
6366         when really creating an initialization statement for it.
6367
6368 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6369
6370         * tree-inline.c (setup_one_parameter): Fix thinko in new condition.
6371
6372 2021-05-25  Kito Cheng  <kito.cheng@sifive.com>
6373
6374         * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax.
6375
6376 2021-05-25  Martin Liska  <mliska@suse.cz>
6377
6378         PR tree-optimization/92860
6379         PR target/99592
6380         * optc-save-gen.awk: Remove exceptions.
6381
6382 2021-05-25  Martin Liska  <mliska@suse.cz>
6383
6384         * asan.h (sanitize_coverage_p): New function.
6385         * doc/extend.texi: Document it.
6386         * fold-const.c (fold_range_test): Use sanitize_flags_p
6387         instead of flag_sanitize_coverage.
6388         (fold_truth_andor): Likewise.
6389         * sancov.c: Likewise.
6390         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
6391         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle
6392         -fsanitize-coverage when inlining.
6393
6394 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
6395
6396         * config/csky/csky-modes.def : Fix copyright.
6397
6398 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
6399
6400         * config/csky/csky-modes.def : Amend copyright.
6401         * config/csky/csky_insn_fpuv2.md : Likewise.
6402         * config/csky/csky_insn_fpuv3.md : Likewise.
6403
6404 2021-05-25  Richard Biener  <rguenther@suse.de>
6405
6406         PR middle-end/100727
6407         * calls.c (initialize_argument_information): Explicitely test
6408         for WITH_SIZE_EXPR.
6409         * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.
6410
6411 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
6412
6413         * config/csky/csky.h (FRAME_POINTER_REGNUM): Use
6414         HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of
6415         the signle definition. The signle definition may not work well
6416         at simplify_subreg_regno().
6417         (HARD_FRAME_POINTER_REGNUM): New.
6418         (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM.
6419         * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate,
6420         csky_initial_elimination_offset, csky_expand_prologue,
6421         csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM.
6422
6423 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
6424
6425         * config/csky/csky.c (csky_option_override):
6426         Init csky_arch_isa_features[] in advance, so TARGET_DSP
6427         and TARGET_DIV can be set well.
6428
6429 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
6430
6431         * config/csky/constraints.md ("l", "h"): Delete.
6432         * config/csky/csky.h (reg_class, REG_CLASS_NAMES,
6433         REG_CLASS_CONTENTS):  Delete LO_REGS and HI_REGS.
6434         * config/csky/csky.c (regno_reg_classm,
6435         csky_secondary_reload, csky_register_move_cost):
6436         Use HILO_REGS instead of LO_REGS and HI_REGS.
6437
6438 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
6439
6440         * config/csky/constraints.md ("W"): New constriant for mem operand
6441         with base reg, index register.
6442         ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to
6443         "csky_valid_mem_constraint_operand" to deal with both "Q" and "W"
6444         constraint.
6445         ("Dv"): New constraint for const double value that can be used at
6446         fmovi instruction.
6447         * config/csky/csky-modes.def (HFmode): New mode.
6448         * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename
6449         to "csky_valid_mem_constraint_operand" and support new constraint
6450         "W".
6451         (csky_get_movedouble_length): New.
6452         (fpuv3_output_move): New.
6453         (fpuv3_const_double): New.
6454         * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3.
6455         (decompose_csky_address): Refine.
6456         (csky_print_operand): New "CONST_DOUBLE" operand.
6457         (csky_output_move): Support fpv3 instructions.
6458         (csky_get_movedouble_length): New.
6459         (fpuv3_output_move): New.
6460         (fpuv3_const_double): New.
6461         (csky_emit_compare): Cover float comparsion.
6462         (csky_emit_compare_float): Refine.
6463         (csky_vaild_fpuv2_mem_operand): Rename to
6464         "csky_valid_mem_constraint_operand" and support new constraint "W".
6465         (ck860_rtx_costs): New.
6466         (csky_rtx_costs): Add the cost calculation of CK860.
6467         (regno_reg_class): New vregs for fpuv3.
6468         (csky_dbx_regno): Likewise.
6469         (csky_cpu_cpp_builtins): New builtin macro for fpuv3.
6470         (csky_conditional_register_usage): Suporrot fpuv3.
6471         (csky_dwarf_register_span): Suporrot fpuv3.
6472         (csky_init_builtins, csky_mangle_type): Support "__fp16" type.
6473         (ck810_legitimate_index_p): Support fp16.
6474         * config/csky/csky.h (TARGET_TLS): ADD CK860.
6475         (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3.
6476         (TARGET_SINGLE_FPU): Support fpuv3.
6477         (TARGET_SUPPORT_FPV3): New.
6478         (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers.
6479         (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES,
6480          REG_CLASS_CONTENTS): Support fpuv3.
6481         * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine.
6482         (csky_movsf_fpv2): Likewise.
6483         (ck801_movsf): Likewise.
6484         (csky_movsf): Likewise.
6485         (movdf): Likewise.
6486         (csky_movdf_fpv2): Likewise.
6487         (ck801_movdf): Likewise.
6488         (csky_movdf): Likewise.
6489         (movsicc): Refine. Use "comparison_operatior" instead of
6490         "ordered_comparison_operatior".
6491         (addsicc): Likewise.
6492         (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant.
6493         (call_value_internal_vh): New.
6494         * config/csky/csky_cores.def (CK860): New arch and cpu.
6495         (fpv3_hf): New.
6496         (fpv3_hsf): New.
6497         (fpv3_sdf): New.
6498         (fpv3): New.
6499         * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns
6500         into emit-patterns and match-patterns, remain the emit-patterns here,
6501         and move the match-patterns to csky_insn_fpuv2.md or
6502         csky_insn_fpuv3.md.
6503         * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions.
6504         * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3
6505         isntructions.
6506         * config/csky/csky_isa.def (fcr): New.
6507         (fpv3_hi): New.
6508         (fpv3_hf): New.
6509         (fpv3_sf): New.
6510         (fpv3_df): New.
6511         (CK860): New definition for ck860.
6512         * config/csky/csky_tables.opt (ck860): New processors ck860,
6513         ck860f. And new arch ck860.
6514         (fpv3_hf): New.
6515         (fpv3_hsf): New.
6516         (fpv3_hdf): New.
6517         (fpv3): New.
6518         * config/csky/predicates.md (csky_float_comparsion_operator): Delete
6519         "geu", "gtu", "leu", "ltu", which will never appear at float comparison.
6520         * config/csky/t-csky-elf: Support 860.
6521         * config/csky/t-csky-linux: Likewise.
6522         * doc/md.texi: Add "Q" and "W" constraints for C-SKY.
6523
6524 2021-05-24  Aaron Sawdey  <acsawdey@linux.ibm.com>
6525
6526         * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to
6527         add generation of logical-add and add-logical fusion pairs.
6528         * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask
6529         and powerpc mask.
6530         * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on
6531         logical-add and add-logical fusion by default.
6532         * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and
6533         -mpower10-fusion-add-logical options.
6534         * config/rs6000/fusion.md: Regenerate file.
6535
6536 2021-05-24  Aldy Hernandez  <aldyh@redhat.com>
6537
6538         * value-range.cc (irange::legacy_equal_p): Check type when
6539         comparing VR_VARYING types.
6540         (range_tests_legacy): Test comparing VARYING ranges of different
6541         sizes.
6542
6543 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
6544
6545         * config/aarch64/aarch64.c (neoversen1_tunings):
6546         Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
6547
6548 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
6549
6550         * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for
6551         extern weak symbols.  Limit symbol offsets for non-GOT symbols with
6552         PIC/PIE.
6553
6554 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
6555
6556         * config/arm/neon.md (vec_load_lanesxi<mode>)
6557         (vec_store_lanexoi<mode>): Move ...
6558         * config/arm/vec-common.md: here.
6559
6560 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
6561
6562         * config/arm/neon.md (vec_load_lanesoi<mode>)
6563         (vec_store_lanesoi<mode>): Move ...
6564         * config/arm/vec-common.md: here.
6565
6566 2021-05-24  liuhongt  <hongtao.liu@intel.com>
6567
6568         PR target/100660
6569         * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing
6570         stmt with GIMPLE_NOP when lhs doesn't exist.
6571
6572 2021-05-23  Uroš Bizjak  <ubizjak@gmail.com>
6573
6574         PR target/100722
6575         * config/i386/mmx.md (*push<VI_32:mode>2_rex64):
6576         New instruction pattern.
6577         (*push<VI_32:mode>2): Ditto.
6578         (push splitter for SSE registers): New splitter.
6579
6580 2021-05-23  Andrew Pinski  <apinski@marvell.com>
6581
6582         * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types.
6583
6584 2021-05-22  Aaron Sawdey  <acsawdey@linux.ibm.com>
6585
6586         * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types.
6587         * config/rs6000/fusion.md: Regenerate file.
6588
6589 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
6590
6591         * config/rs6000/genfusion.pl (gen_addadd): New function.
6592         * config/rs6000/fusion.md: Regenerate file.
6593         * config/rs6000/rs6000-cpus.def: Add
6594         OPTION_MASK_P10_FUSION_2ADD to masks.
6595         * config/rs6000/rs6000.c (rs6000_option_override_internal):
6596         Handle default value of OPTION_MASK_P10_FUSION_2ADD.
6597         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add.
6598
6599 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
6600
6601         PR middle-end/99928
6602         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define.
6603         * gimplify.c (enum gimplify_omp_var_data): Fix up
6604         GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT.
6605         (omp_lastprivate_for_combined_outer_constructs): If combined target
6606         has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to
6607         GOVD_MAP | GOVD_SEEN.
6608         (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for
6609         firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT.
6610         (gimplify_adjust_omp_clauses): For firstprivate clauses with
6611         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and
6612         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and
6613         let it be replaced by implicit map clause.
6614
6615 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
6616
6617         PR middle-end/99928
6618         * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New
6619         function.
6620         (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it.
6621         (gimplify_omp_for): Likewise.
6622
6623 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
6624
6625         PR middle-end/90115
6626         * omp-low.c (oacc_privatization_candidate_p): Reject 'static',
6627         'external' in blocks.
6628
6629 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
6630
6631         PR middle-end/90115
6632         * flag-types.h (enum openacc_privatization): New.
6633         * params.opt (-param=openacc-privatization): New.
6634         * doc/invoke.texi (openacc-privatization): Document it.
6635         * omp-general.h (get_openacc_privatization_dump_flags): New
6636         function.
6637         * omp-low.c (oacc_privatization_candidate_p): Add diagnostics.
6638         * omp-offload.c (execute_oacc_device_lower)
6639         <IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics.
6640         * target.def (goacc.adjust_private_decl): Add 'location_t'
6641         parameter.
6642         * doc/tm.texi: Regenerate.
6643         * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust.
6644         * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise.
6645         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl):
6646         Likewise.  Preserve it for...
6647         (nvptx_goacc_expand_var_decl): ... use here.
6648
6649 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
6650
6651         * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__'
6652         DejaGnu selector.
6653
6654 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
6655
6656         PR middle-end/90115
6657         * omp-low.c (oacc_privatization_candidate_p): New function.
6658         (oacc_privatization_scan_clause_chain)
6659         (oacc_privatization_scan_decl_chain): Use it.  Also
6660         'gcc_checking_assert' that we're not seeing duplicates.
6661
6662 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
6663
6664         PR middle-end/90115
6665         * omp-offload.c (execute_oacc_device_lower): Skip processing if no
6666         work to be done.
6667
6668 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
6669
6670         PR middle-end/90115
6671         * omp-offload.c (execute_oacc_device_lower): Explain.
6672
6673 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
6674
6675         PR middle-end/90115
6676         * omp-offload.c (execute_oacc_device_lower)
6677         <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1'
6678         case, too.
6679         * internal-fn.c (expand_UNIQUE): Don't expect
6680         'IFN_UNIQUE_OACC_PRIVATE'.
6681
6682 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
6683
6684         PR middle-end/90115
6685         * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses.
6686
6687 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
6688
6689         PR middle-end/90115
6690         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl)
6691         (nvptx_goacc_expand_var_decl): Tighten.
6692
6693 2021-05-21  Julian Brown  <julian@codesourcery.com>
6694             Chung-Lin Tang  <cltang@codesourcery.com>
6695             Thomas Schwinge  <thomas@codesourcery.com>
6696
6697         PR middle-end/90115
6698         * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL)
6699         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks.
6700         * doc/tm.texi: Regenerate.
6701         * expr.c (expand_expr_real_1): Expand decls using the
6702         expand_var_decl OpenACC hook if defined.
6703         * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE.
6704         * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE.
6705         * omp-low.c (omp_context): Add oacc_privatization_candidates
6706         field.
6707         (lower_oacc_reductions): Add PRIVATE_MARKER parameter.  Insert
6708         before fork.
6709         (lower_oacc_head_tail): Add PRIVATE_MARKER parameter.  Modify
6710         private marker's gimple call arguments, and pass it to
6711         lower_oacc_reductions.
6712         (oacc_privatization_scan_clause_chain)
6713         (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
6714         New functions.
6715         (lower_omp_for, lower_omp_target, lower_omp_1): Use these.
6716         * omp-offload.c (convert.h): Include.
6717         (oacc_loop_xform_head_tail): Treat private-variable markers like
6718         fork/join when transforming head/tail sequences.
6719         (struct var_decl_rewrite_info): Add struct.
6720         (oacc_rewrite_var_decl, is_sync_builtin_call): New functions.
6721         (execute_oacc_device_lower): Support rewriting gang-private
6722         variables using target hook, and fix up addr_expr and var_decl
6723         nodes afterwards.
6724         * target.def (adjust_private_decl, expand_var_decl): New hooks.
6725         * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl):
6726         Rename to...
6727         (gcn_goacc_adjust_private_decl): ...this.
6728         * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl):
6729         Rename to...
6730         (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter.
6731         * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename
6732         definition using gcn_goacc_adjust_gangprivate_decl...
6733         (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using
6734         gcn_goacc_adjust_private_decl.
6735         * config/nvptx/nvptx.c (tree-pretty-print.h): Include.
6736         (gang_private_shared_size): New global variable.
6737         (gang_private_shared_align): Likewise.
6738         (gang_private_shared_sym): Likewise.
6739         (gang_private_shared_hmap): Likewise.
6740         (nvptx_option_override): Initialize these.
6741         (nvptx_file_end): Output gang_private_shared_sym.
6742         (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl):
6743         New functions.
6744         (nvptx_set_current_function): Clear gang_private_shared_hmap.
6745         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook.
6746         (TARGET_GOACC_EXPAND_VAR_DECL): Likewise.
6747
6748 2021-05-21  H.J. Lu  <hjl.tools@gmail.com>
6749
6750         * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed.
6751
6752 2021-05-21  Richard Biener  <rguenther@suse.de>
6753             H.J. Lu  <hjl.tools@gmail.com>
6754
6755         PR middle-end/90773
6756         * expr.c (expand_constructor): Elide expand_constructor if
6757         move by pieces is preferred.
6758
6759 2021-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6760
6761         * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
6762         Take a flag and mode value as arguments.
6763         (aarch64_modifies_global_state_p): Likewise.
6764         (aarch64_reads_global_state_p): Likewise.
6765         (aarch64_could_trap_p): Likewise.
6766         (aarch64_get_attributes): Likewise.
6767         (aarch64_init_simd_builtins): Adjust callsite of above.
6768         (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get
6769         function attributes to apply to builtins.
6770         (aarch64_init_crc32_builtins): Likewise.
6771         (aarch64_init_builtin_rsqrt): Likewise.
6772
6773 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
6774
6775         * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion.
6776         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types.
6777         (gen_2logical): Use new fusion types.
6778         * config/rs6000/fusion.md: Regenerate.
6779
6780 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
6781
6782         PR target/100637
6783         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
6784         Handle V4QI and V2HI modes.
6785         (ix86_expand_sse_movcc): Ditto.
6786         * config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3):
6787         New instruction pattern.
6788         (*eq<VI_32:mode>3): Ditto.
6789         (*gt<VI_32:mode>3): Ditto.
6790         (*xop_pcmov_<VI_32:mode>): Ditto.
6791         (mmx_pblendvb32): Ditto.
6792         (mmx_pblendvb64): Rename from mmx_pblendvb.
6793         (vec_cmp<VI_32:mode><VI_32:mode>): New expander.
6794         (vec_cmpu<VI_32:mode><VI_32:mode>): Ditto.
6795         (vcond<VI_32:mode><VI_32:mode>): Ditto.
6796         (vcondu<VI_32:mode><VI_32:mode>): Ditto.
6797         (vcond_mask_<VI_32:mode><VI_32:mode>): Ditto.
6798
6799 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
6800
6801         PR tree-optimization/94589
6802         * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and
6803         rhs2, treat x <= 4 equivalently to x < 5 etc.  In cmp1 and cmp2 (if
6804         not the same as cmp3) treat <= the same as < and >= the same as >.
6805         Don't require that cond2_phi_edge is true edge, instead take
6806         false/true edges into account based on cmp1/cmp2 comparison kinds.
6807
6808 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
6809
6810         PR target/100637
6811         * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator.
6812         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander
6813         from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3
6814         using SMAXMIN_MMXMODEI mode iterator.
6815         (*<smaxmin:code>v4qi3): New insn pattern.
6816         (*<smaxmin:code>v2hi3): Ditto.
6817         (SMAXMIN_VI_32): New mode iterator.
6818         (<smaxmin:code><SMAXMIN_VI_32>mode3): New expander.
6819         (UMAXMIN_MMXMODEI): New mode iterator.
6820         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander
6821         from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3
6822         using UMAXMIN_MMXMODEI mode iterator.
6823         (*<umaxmin:code>v4qi3): New insn pattern.
6824         (*<umaxmin:code>v2hi3): Ditto.
6825         (UMAXMIN_VI_32): New mode iterator.
6826         (<umaxmin:code><UMAXMIN_VI_32>mode3): New expander.
6827         (abs<VI_32:mode>2): New insn pattern.
6828         (ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ...
6829         * config/i386/sse.md: ... here.
6830
6831 2021-05-20  Clement Chigot  <clement.chigot@atos.net>
6832             David Edelsohn  <dje.gcc@gmail.com>
6833
6834         * collect2.c (scan_prog_file): Issue non-fatal warning for
6835         non-COFF files.
6836
6837 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
6838
6839         * doc/invoke.texi (-Wno-c++11-extensions)
6840         (-Wno-c++14-extensions, -Wno-c++17-extensions)
6841         (-Wno-c++20-extensions, -Wno-c++23-extensions): Document
6842         new options.
6843
6844 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
6845
6846         * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p.
6847         * config/darwin.c (darwin_override_options): Likewise.
6848         * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
6849         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
6850         (DWARF2_FRAME_REG_OUT): Likewise.
6851         * config/mips/mips.c (mips_output_filename): Likewise.
6852         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name):
6853         Likewise.
6854         (rs6000_dbx_register_number): Likewise.
6855         * dbxout.c: Include flags.h.
6856         * dwarf2cfi.c (cfi_label_required_p): Likewise.
6857         (dwarf2out_do_frame): Likewise.
6858         * except.c: Include flags.h.
6859         * final.c (dwarf2_debug_info_emitted_p): Likewise.
6860         (final_scan_insn_1): Likewise.
6861         * flags.h (dwarf_debuginfo_p): New function declaration.
6862         * opts.c (dwarf_debuginfo_p): New function definition.
6863         * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p.
6864         * toplev.c (process_options): Likewise.
6865
6866 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
6867
6868         * common.opt: Change type to support bitmasks.
6869         * flag-types.h (enum debug_info_type): Rename enumerator constants.
6870         (NO_DEBUG): New bitmask.
6871         (DBX_DEBUG): Likewise.
6872         (DWARF2_DEBUG): Likewise.
6873         (XCOFF_DEBUG): Likewise.
6874         (VMS_DEBUG): Likewise.
6875         (VMS_AND_DWARF2_DEBUG): Likewise.
6876         * flags.h (debug_set_to_format): New function declaration.
6877         (debug_set_count): Likewise.
6878         (debug_set_names): Likewise.
6879         * opts.c (debug_type_masks): Array of bitmasks for debug formats.
6880         (debug_set_to_format): New function definition.
6881         (debug_set_count): Likewise.
6882         (debug_set_names): Likewise.
6883         (set_debug_level): Update access to debug_type_names.
6884         * toplev.c: Likewise.
6885
6886 2021-05-20  Martin Sebor  <msebor@redhat.com>
6887
6888         PR middle-end/100684
6889         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda.
6890
6891 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
6892
6893         PR target/100701
6894         * config/i386/i386.md (isa): Remove x64_bmi.
6895         (enabled): Remove x64_bmi.
6896         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
6897         Remove general register alternative.
6898         (*andnot<VI_32:mode>3): Ditto.
6899         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
6900         (*<any_logic:code><VI_32:mode>3): Ditto.
6901
6902 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
6903
6904         * config/arm/arm.c: Include head files tree-vectorizer.h and
6905         cfgloop.h.
6906
6907 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
6908
6909         PR target/100637
6910         * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes.
6911         (*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint.
6912         (<s>mulv4hi3_highpart): New expander.
6913         (*<s>mulv2hi3_highpart): New insn pattern.
6914         (<s>mulv2hi3_higpart): New expander.
6915         (*<any_shift:insn>v2hi3): New insn pattern.
6916         (<any_shift:insn>v2hi3): New expander.
6917         * config/i386/sse.md (smulhrsv2hi3): New expander.
6918         (*smulhrsv2hi3): New insn pattern.
6919
6920 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
6921
6922         * doc/invoke.texi (vect-inner-loop-cost-factor): Document new
6923         parameter.
6924         * params.opt (vect-inner-loop-cost-factor): New.
6925         * targhooks.c (default_add_stmt_cost): Replace hardcoded factor
6926         50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file
6927         tree-vectorizer.h and its required ones.
6928         * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace
6929         hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR.
6930         * config/arm/arm.c (arm_add_stmt_cost): Likewise.
6931         * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
6932         * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
6933         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
6934         Likewise.
6935         (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor.
6936         * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor.
6937         (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro.
6938
6939 2021-05-20  Christophe Lyon  <christophe.lyon@linaro.org>
6940             Torbjörn Svensson  <torbjorn.svensson@st.com>
6941
6942         PR c/42579
6943         * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__.
6944
6945 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
6946
6947         PR middle-end/99928
6948         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For
6949         explicit linear clause when combined with target, make it map(tofrom:)
6950         instead of no clause or firstprivate.
6951
6952 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
6953
6954         PR tree-optimization/94589
6955         * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence
6956         of integral conversions.
6957
6958 2021-05-19  Andrew MacLeod  <amacleod@redhat.com>
6959
6960         * gimple-range.cc (fur_source::get_operand): New.
6961         (gimple_range_fold): Delete.
6962         (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt.
6963         (fold_using_range::range_of_range_op): Move from gimple_ranger.
6964         (fold_using_range::range_of_address): Ditto.
6965         (fold_using_range::range_of_phi): Ditto.
6966         (fold_using_range::range_of_call): Ditto.
6967         (fold_using_range::range_of_builtin_ubsan_call): Move from
6968         range_of_builtin_ubsan_call.
6969         (fold_using_range::range_of_builtin_call): Move from
6970         range_of_builtin_call.
6971         (gimple_ranger::range_of_builtin_call): Delete.
6972         (fold_using_range::range_of_cond_expr): Move from gimple_ranger.
6973         (gimple_ranger::fold_range_internal): New.
6974         (gimple_ranger::range_of_stmt): Use new fold_using_range API.
6975         (fold_using_range::range_of_ssa_name_with_loop_info): Move from
6976         gimple_ranger.  Improve ranges of SSA_NAMES when possible.
6977         * gimple-range.h (gimple_ranger): Remove various range_of routines.
6978         (class fur_source): New.
6979         (class fold_using_range): New.
6980         (fur_source::fur_source): New.
6981         (fold_range): New.
6982         * vr-values.c (vr_values::extract_range_basic): Use fold_using_range
6983         instead of range_of_builtin_call.
6984
6985 2021-05-19  Jonathan Wakely  <jwakely@redhat.com>
6986
6987         * doc/cpp.texi (Common Predefined Macros): Update documentation
6988         for the __GXX_EXPERIMENTAL_CXX0X__ macro.
6989
6990 2021-05-19  Alex Coplan  <alex.coplan@arm.com>
6991
6992         PR target/100333
6993         * config/arm/arm.md (nonsecure_call_internal): Always ensure
6994         callee's address is in a register.
6995
6996 2021-05-19  Geng Qi  <gengqi@linux.alibaba.com>
6997
6998         * common/config/riscv/riscv-common.c
6999         (riscv_subset_list::parsing_subset_version): Properly parse the letter
7000         'p' in '-march'.
7001         (riscv_subset_list::parse_std_ext,
7002          riscv_subset_list::parse_multiletter_ext): To handle errors generated
7003         in riscv_subset_list::parsing_subset_version.
7004
7005 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
7006
7007         * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
7008         type attribute in patterns generating XTN(2).
7009
7010 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
7011
7012         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>):
7013         Remove as duplicate of...
7014         (aarch64_xtn<mode>): This.
7015         (aarch64_xtn2<mode>_le): Move position in file.
7016         (aarch64_xtn2<mode>_be): Move position in file.
7017         (aarch64_xtn2<mode>): Move position in file.
7018         (vec_pack_trunc_<mode>): Define as an expander.
7019
7020 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
7021
7022         * config/aarch64/aarch64-simd-builtins.def: Split builtin
7023         generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into
7024         separate scalar and vector generators.
7025         * config/aarch64/aarch64-simd.md
7026         (aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and
7027         split into...
7028         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and...
7029         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This.
7030         * config/aarch64/iterators.md: Define SD_HSDI iterator.
7031
7032 2021-05-19  Jonathn Wright  <jonathan.wright@arm.com>
7033
7034         * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead
7035         of UNSPEC_SQXTUN2.
7036         * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2.
7037
7038 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
7039
7040         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>):
7041         Implement as an expand emitting a big/little endian
7042         instruction pattern.
7043         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define.
7044         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define.
7045
7046 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
7047
7048         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>):
7049         Implement as an expand emitting a big/little endian
7050         instruction pattern.
7051         (aarch64_<sur><addsub>hn2<mode>_insn_le): Define.
7052         (aarch64_<sur><addsub>hn2<mode>_insn_be): Define.
7053         * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and
7054         UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator.
7055
7056 2021-05-19  Richard Biener  <rguenther@suse.de>
7057
7058         PR middle-end/100672
7059         * fold-const.c (fold_negate_expr_1): Use element_precision.
7060         (negate_expr_p): Likewise.
7061
7062 2021-05-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
7063
7064         * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator.
7065         (pred_load): New int attribute.
7066         * config/aarch64/aarch64-sve.md
7067         (aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use
7068         SVE_PRED_LOAD enum iterator and corresponding pred_load attribute.
7069         * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to
7070         code_for_aarch64_load.
7071
7072 2021-05-19  Richard Biener  <rguenther@suse.de>
7073
7074         * cfgexpand.c (discover_nonconstant_array_refs_r): Make
7075         sure TARGET_MEM_REF bases are expanded as memory.
7076         * tree-ssa-operands.c (operands_scanner::get_tmr_operands):
7077         Do not mark TARGET_MEM_REF bases addressable.
7078         * tree-ssa.c (non_rewritable_mem_ref_base): Handle
7079         TARGET_MEM_REF bases as never rewritable.
7080         * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not
7081         walk TARGET_MEM_REF bases as address-takens.
7082         * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF.
7083
7084 2021-05-19  Richard Biener  <rguenther@suse.de>
7085
7086         * builtins.c (get_object_alignment_1): Strip outer
7087         WITH_SIZE_EXPR.
7088         * tree-dfa.c (get_ref_base_and_extent): Handle outer
7089         WITH_SIZE_EXPR for size processing and process the
7090         containing ref.
7091         * tree-ssa-alias.c (ao_ref_base_alias_set): Strip
7092         outer WITH_SIZE_EXPR.
7093         (ao_ref_base_alias_ptr_type): Likewise.
7094         (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref
7095         and handle that accordingly, stripping it for the
7096         core alias workers.
7097         * tree.c (get_base_address): Handle WITH_SIZE_EXPR by
7098         looking through it instead of returning NULL.
7099
7100 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
7101
7102         PR middle-end/100576
7103         * builtins.c (check_read_access): Convert bound to size_type_node if
7104         non-NULL.
7105
7106 2021-05-19  Richard Biener  <rguenther@suse.de>
7107
7108         * tree-cfg.c (verify_types_in_gimple_min_lval): Inline...
7109         (verify_types_in_gimple_reference): ... here.  Sanitize.
7110         (verify_gimple_call): Verify references in LHS and arguments.
7111         (verify_gimple_assign_single): Reject WITH_SIZE_EXPR.
7112
7113 2021-05-19  Uroš Bizjak  <ubizjak@gmail.com>
7114
7115         * config/i386/i386.h (VALID_INT_MODE_P):
7116         Add V8QI, V4HI and V2SI modes for TARGET_64BIT.
7117         * config/i386/i386.md (isa): Add x64_bmi.
7118         (enabled): Handle x64_bmi.
7119         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
7120         Add alternative using 64bit general registers.
7121         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
7122
7123 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
7124
7125         PR middle-end/99928
7126         * tree.h (OMP_MASTER_COMBINED): Define.
7127         * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate
7128         handling for outer combined/composite constructs to a loop.
7129         Handle lastprivate on combined target.
7130         (gimplify_expr): Formatting fix.
7131
7132 2021-05-19  Xionghu Luo  <luoxhu@linux.ibm.com>
7133
7134         * passes.def: Add sink_code pass before store_merging.
7135         * tree-ssa-sink.c (pass_sink_code:clone): New.
7136
7137 2021-05-18  Bill Schmidt  <wschmidt@linux.ibm.com>
7138
7139         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to
7140         rs6000_special_adjust_field_align_p.
7141         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
7142         * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary):
7143         Remove ABI warning.
7144         (rs6000_function_arg): Likewise.
7145         * config/rs6000/rs6000-protos.h
7146         (rs6000_special_adjust_field_align_p): Remove prototype.
7147         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
7148         Remove.
7149         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to
7150         rs6000_special_adjust_field_align_p.
7151
7152 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
7153
7154         PR target/100637
7155         * config/i386/i386.h (VALID_SSE2_REG_MODE):
7156         Add V4QI and V2HI modes.
7157         (VALID_INT_MODE_P): Ditto.
7158         * config/i386/mmx.md (VI_32): New mode iterator.
7159         (mmxvecsize): Handle V4QI and V2HI.
7160         (Yv_Yw): Ditto.
7161         (mov<VI_32:mode>): New expander.
7162         (*mov<mode>_internal): New insn pattern.
7163         (movmisalign<VI_32:mode>): New expander.
7164         (neg<VI_32:mode>): New expander.
7165         (<plusminus:insn><VI_32:mode>3): New expander.
7166         (*<plusminus:insn><VI_32:mode>3): New insn pattern.
7167         (mulv2hi3): New expander.
7168         (*mulv2hi3): New insn pattern.
7169         (one_cmpl<VI_32:mode>2): New expander.
7170         (*andnot<VI_32:mode>3): New insn pattern.
7171         (<any_logic:code><VI_32:mode>3): New expander.
7172         (*<any_logic:code><VI_32:mode>3): New insn pattern.
7173
7174 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
7175
7176         * config/i386/sse.md (<any_extend:insn>v4qiv4di2):
7177         Fix a mode mismatch with operand 1.
7178
7179 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
7180
7181         PR target/100626
7182         * config/i386/i386-expand.c (split_double_mode): Return
7183         temporary register when simplify_gen_subreg fails with
7184         the high half od the paradoxical subreg.
7185
7186 2021-05-18  Richard Biener  <rguenther@suse.de>
7187
7188         * cfgexpand.c (expand_one_var): Pass in forced_stack_var
7189         and honor it when expanding.
7190         (expand_used_vars_for_block): Pass through forced_stack_var.
7191         (expand_used_vars): Likewise.
7192         (discover_nonconstant_array_refs_r): Set bits in
7193         forced_stack_vars instead of marking vars TREE_ADDRESSABLE.
7194         (avoid_type_punning_on_regs): Likewise.
7195         (discover_nonconstant_array_refs): Likewise.
7196         (pass_expand::execute): Create and pass down forced_stack_var
7197         bitmap.  For parameters and returns temporarily set
7198         TREE_ADDRESSABLE when expand_function_start.
7199
7200 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
7201
7202         * doc/sourcebuild.texi: Document 'dg-note'.
7203
7204 2021-05-18  Tobias Burnus  <tobias@codesourcery.com>
7205
7206         PR other/100598
7207         * configure: Regenerate.
7208         * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@).
7209
7210 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
7211
7212         * gimple.h (is_gimple_omp_oacc): Tighten.
7213         * omp-low.c (check_omp_nesting_restrictions): Adjust.
7214
7215 2021-05-18  Richard Biener  <rguenther@suse.de>
7216
7217         * tree-ssa-operands.c (mark_address_taken): Simplify.
7218
7219 2021-05-18  Martin Liska  <mliska@suse.cz>
7220
7221         * config/gcn/mkoffload.c (STR): Redefine.
7222         * config/i386/intelmic-mkoffload.c (STR): Likewise.
7223         * config/nvptx/mkoffload.c (STR): Likewise.
7224
7225 2021-05-18  Martin Liska  <mliska@suse.cz>
7226
7227         * common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
7228         Use startswith function instead of strncmp.
7229         * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
7230         * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise.
7231         * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise.
7232         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise.
7233         * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise.
7234         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
7235         * config/arm/arm.c (arm_file_start): Likewise.
7236         (arm_valid_target_attribute_rec): Likewise.
7237         (thumb1_md_asm_adjust): Likewise.
7238         * config/arm/driver-arm.c (host_detect_local_cpu): Likewise.
7239         * config/avr/avr.c (STR_PREFIX_P): Likewise.
7240         (avr_set_current_function): Likewise.
7241         (avr_handle_addr_attribute): Likewise.
7242         (avr_asm_output_aligned_decl_common): Likewise.
7243         (avr_asm_named_section): Likewise.
7244         (avr_section_type_flags): Likewise.
7245         (avr_asm_select_section): Likewise.
7246         * config/c6x/c6x.c (c6x_in_small_data_p): Likewise.
7247         (c6x_section_type_flags): Likewise.
7248         * config/darwin-c.c (darwin_cfstring_ref_p): Likewise.
7249         (darwin_objc_declare_unresolved_class_reference): Likewise.
7250         (darwin_objc_declare_class_definition): Likewise.
7251         * config/darwin.c (indirect_data): Likewise.
7252         (darwin_encode_section_info): Likewise.
7253         (darwin_objc2_section): Likewise.
7254         (darwin_objc1_section): Likewise.
7255         (machopic_select_section): Likewise.
7256         (darwin_globalize_label): Likewise.
7257         (darwin_label_is_anonymous_local_objc_name): Likewise.
7258         (darwin_asm_named_section): Likewise.
7259         (darwin_asm_output_dwarf_offset): Likewise.
7260         * config/frv/frv.c (frv_string_begins_with): Likewise.
7261         (frv_in_small_data_p): Likewise.
7262         * config/gcn/mkoffload.c (STR): Likewise.
7263         (main): Likewise.
7264         * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise.
7265         * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
7266         * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise.
7267         (ix86_md_asm_adjust): Likewise.
7268         * config/i386/intelmic-mkoffload.c (STR): Likewise.
7269         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
7270         (i386_pe_file_end): Likewise.
7271         * config/ia64/ia64.c (ia64_in_small_data_p): Likewise.
7272         (ia64_section_type_flags): Likewise.
7273         * config/mips/driver-native.c (host_detect_local_cpu): Likewise.
7274         * config/mips/mips.c (mips_handle_interrupt_attr): Likewise.
7275         (mips16_stub_function_p): Likewise.
7276         (mips_function_rodata_section): Likewise.
7277         * config/msp430/msp430.c (msp430_mcu_name): Likewise.
7278         (msp430_function_section): Likewise.
7279         (msp430_section_type_flags): Likewise.
7280         (msp430_expand_helper): Likewise.
7281         * config/nios2/nios2.c (nios2_small_section_name_p): Likewise.
7282         (nios2_valid_target_attribute_rec): Likewise.
7283         * config/nvptx/mkoffload.c (process): Likewise.
7284         (STR): Likewise.
7285         * config/pa/som.h: Likewise.
7286         * config/pdp11/pdp11.c (pdp11_output_ident): Likewise.
7287         * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise.
7288         * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise.
7289         (rs6000_inner_target_options): Likewise.
7290         * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise.
7291         * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise.
7292         * config/vax/vax.c (vax_output_int_move): Likewise.
7293         * config/vms/vms-ld.c (startswith): Likewise.
7294         (process_args): Likewise.
7295         (main): Likewise.
7296         * config/vms/vms.c: Likewise.
7297
7298 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
7299
7300         PR rtl-optimization/100590
7301         * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if
7302         they are NONJUMP_INSN_P.
7303
7304 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
7305
7306         PR c++/100580
7307         * function.c (push_dummy_function): Set DECL_ARTIFICIAL and
7308         DECL_ASSEMBLER_NAME on the fn_decl.
7309
7310 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
7311
7312         PR tree-optimization/94589
7313         * tree-ssa-phiopt.c (spaceship_replacement): Pattern match
7314         phi result used in (res & ~1) == 0 comparison as res >= 0 as
7315         res == 2 would be UB with -ffinite-math-only.
7316
7317 2021-05-18  Martin Liska  <mliska@suse.cz>
7318
7319         * Makefile.in: genversion.o should depend on DATESTAMP.
7320
7321 2021-05-18  Claudiu Zissulescu  <claziss@synopsys.com>
7322
7323         * config/arc/simdext.md (negv2si2): Remove round bracket.
7324
7325 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
7326
7327         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
7328         _Bool as macro expanding to _Bool.
7329
7330 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
7331
7332         PR c++/100281
7333         * tree.c (build_reference_type_for_mode)
7334         (build_pointer_type_for_mode): Pick pointer mode if MODE argument
7335         is VOIDmode.
7336         (build_reference_type, build_pointer_type): Invoke
7337         build_*_type_for_mode with VOIDmode.
7338
7339 2021-05-17  Andrew MacLeod  <amacleod@redhat.com>
7340
7341         PR tree-optimization/100512
7342         * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const
7343         and non-zero pointer ranges as invariant.
7344         * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer
7345         processing from here.
7346
7347 2021-05-17  Tom de Vries  <tdevries@suse.de>
7348
7349         PR target/100497
7350         * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare
7351         * config/nvptx/nvptx.c (nvptx_output_barrier)
7352         (nvptx_output_atomic_insn): New function.
7353         (nvptx_print_operand): Add support for 'B'.
7354         * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic
7355         insns.
7356
7357 2021-05-17  Aldy Hernandez  <aldyh@redhat.com>
7358
7359         PR tree-optimization/100349
7360         * vr-values.c (bounds_of_var_in_loop): Bail if scev returns
7361           NULL.
7362
7363 2021-05-17  Tamar Christina  <tamar.christina@arm.com>
7364
7365         * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New.
7366         (host_detect_local_cpu): Use it.
7367
7368 2021-05-17  Martin Liska  <mliska@suse.cz>
7369
7370         * doc/invoke.texi: Add 2 missing dots.
7371
7372 2021-05-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
7373
7374         PR bootstrap/100552
7375         * configure.ac: Replace pattern substitution with call to sed.
7376         * configure: Regenerate.
7377
7378 2021-05-17  Richard Biener  <rguenther@suse.de>
7379
7380         PR middle-end/100582
7381         * tree.c (array_at_struct_end_p): Get to the base of the
7382         reference before looking for the underlying decl.
7383
7384 2021-05-17  Joern Rennecke  <joern.rennecke@embecosm.com>
7385
7386         * genoutput.c (validate_insn_alternatives) Make "wrong number of
7387         alternatives" message more specific, and remove assumption on where
7388         the problem is.
7389
7390 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
7391
7392         * config/arm/iterators.md (V16): New iterator.
7393         (VH_cvtto): New iterator.
7394         (v_cmp_result): Added V4HF and V8HF support.
7395         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH.
7396         (vcond<mode><mode>): Likewise.
7397         (vcond_mask_<mode><v_cmp_result>): Likewise.
7398         (vcond<VH_cvtto><mode>): New expander.
7399
7400 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
7401
7402         * config/arm/arm-protos.h (arm_expand_vector_compare): Update
7403         prototype.
7404         * config/arm/arm.c (arm_expand_vector_compare): Add support for
7405         MVE.
7406         (arm_expand_vcond): Likewise.
7407         * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S,
7408         VCMPEQQ_N_S, VCMPNEQ_N_S.
7409         (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove.
7410         * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix.
7411         (@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise.
7412         (@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise.
7413         (@mve_vpselq_<supf><mode>): Likewise.
7414         (@mve_vpselq_f<mode>"): Likewise.
7415         * config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE
7416         and move to vec-common.md.
7417         (vec_cmpu<mode><mode>): Likewise.
7418         (vcond<mode><mode>): Likewise.
7419         (vcond<V_cvtto><mode>): Likewise.
7420         (vcondu<mode><v_cmp_result>): Likewise.
7421         (vcond_mask_<mode><v_cmp_result>): Likewise.
7422         * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S)
7423         (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U)
7424         (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S)
7425         (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U)
7426         (VCMPHIQ_N_U, VCMPHIQ_U): Remove.
7427         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved
7428         from neon.md.
7429         (vec_cmpu<mode><mode>): Likewise.
7430         (vcond<mode><mode>): Likewise.
7431         (vcond<V_cvtto><mode>): Likewise.
7432         (vcondu<mode><v_cmp_result>): Likewise.
7433         (vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math
7434         condition.
7435
7436 2021-05-17  liuhongt  <hongtao.liu@intel.com>
7437
7438         PR target/100549
7439         * config/i386/i386.c (ix86_gimple_fold_builtin): Use
7440         gsi_insert_seq_before instead.
7441
7442 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
7443
7444         * doc/sourcebuild.texi (arm_qbit_ok): Rename into...
7445         (arm_sat_ok): ...this.
7446
7447 2021-05-17  Martin Liska  <mliska@suse.cz>
7448
7449         * lto-wrapper.c (merge_flto_options): Factor out a new function.
7450         (merge_and_complain): Use it.
7451         (run_gcc): Merge also linker command line -flto=foo argument
7452         with IL files.
7453
7454 2021-05-16  Christophe Lyon  <christophe.lyon@linaro.org>
7455
7456         * config/arm/arm.h (CPP_SPEC): Remove error message about
7457         -mlittle-endian/-mbig-endian conflict.
7458
7459 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
7460
7461         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
7462         __ROP_PROTECT__ if -mrop-protect is selected.
7463
7464 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
7465
7466         * config/rs6000/rs6000-internal.h (rs6000_stack): Add
7467         rop_hash_save_offset and rop_hash_size.
7468         * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute
7469         rop_hash_size and rop_hash_save_offset.
7470         (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size.
7471         (rs6000_emit_prologue): Emit hashst[p] in prologue.
7472         (rs6000_emit_epilogue): Emit hashchk[p] in epilogue.
7473         * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and
7474         UNSPEC_HASHCHK.
7475         (hashst): New define_insn.
7476         (hashchk): Likewise.
7477
7478 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
7479
7480         * config/rs6000/rs6000.c (rs6000_option_override_internal):
7481         Disable shrink wrap when inserting ROP-protect instructions.
7482         * config/rs6000/rs6000.opt (mrop-protect): New option.
7483         (mprivileged): Likewise.
7484         * doc/invoke.texi: Document mrop-protect and mprivileged.
7485
7486 2021-05-15  Hans-Peter Nilsson  <hp@axis.com>
7487
7488         * reorg.c (fill_slots_from_thread): Reinstate code typoed out in
7489         "Remove CC0".
7490
7491 2021-05-15  Martin Jambor  <mjambor@suse.cz>
7492
7493         Revert:
7494         2021-05-13  Martin Jambor  <mjambor@suse.cz>
7495
7496         PR tree-optimization/100453
7497         * tree-sra.c (sra_modify_assign): All const base accesses do not
7498         need refreshing, not just those from decl_pool.
7499         (sra_modify_assign): Do not refresh into a const base decl.
7500
7501 2021-05-15  Jakub Jelinek  <jakub@redhat.com>
7502
7503         PR rtl-optimization/100342
7504         * regcprop.c (copy_value): When copying a source reg in a wider
7505         mode than it has recorded for the value, adjust recorded destination
7506         mode too or punt if !REG_CAN_CHANGE_MODE_P.
7507
7508 2021-05-14  Jason Merrill  <jason@redhat.com>
7509
7510         * intl.h: Add comments.
7511
7512 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7513
7514         * config/aarch64/aarch64-simd.md
7515         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into...
7516         (aarch64_sqdmlsl2_lane<mode>_internal): ... This...
7517         (aarch64_sqdmlal2_lane<mode>_internal): ... And this.
7518         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ...
7519         (aarch64_sqdmlsl2_laneq<mode>_internal): ... This...
7520         (aarch64_sqdmlal2_laneq<mode>_internal): ... And this.
7521         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into...
7522         (aarch64_sqdmlsl2_n<mode>_internal): ... This...
7523         (aarch64_sqdmlal2_n<mode>_internal): ... And this.
7524
7525 2021-05-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7526
7527         PR target/66791
7528         * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's
7529         boolean logic equivalent.
7530         (vtst_s16): Likewise.
7531         (vtst_s32): Likewise.
7532         (vtst_u8): Likewise.
7533         (vtst_u16): Likewise.
7534         (vtst_u32): Likewise.
7535         (vtst_p8): Likewise.
7536         (vtst_p16): Likewise.
7537         (vtstq_s8): Likewise.
7538         (vtstq_s16): Likewise.
7539         (vtstq_s32): Likewise.
7540         (vtstq_u8): Likewise.
7541         (vtstq_u16): Likewise.
7542         (vtstq_u32): Likewise.
7543         (vtstq_p8): Likewise.
7544         (vtstq_p16): Likewise.
7545         * config/arm/arm_neon_builtins.def: Remove entry for vtst.
7546         * config/arm/neon.md (neon_vtst<mode>): Remove pattern.
7547
7548 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7549
7550         * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into...
7551         (aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This.
7552         (aarch64_sqdmlsl2<mode>): Delete.
7553         (aarch64_sqdmlal2_lane<mode>): Merge this...
7554         (aarch64_sqdmlsl2_lane<mode>): ... And this...
7555         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this.
7556         (aarch64_sqdmlal2_laneq<mode>): Merge this...
7557         (aarch64_sqdmlsl2_laneq<mode>): ... And this...
7558         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this.
7559         (aarch64_sqdmlal2_n<mode>): Merge this...
7560         (aarch64_sqdmlsl2_n<mode>): ... And this...
7561         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this.
7562
7563 2021-05-13  Martin Sebor  <msebor@redhat.com>
7564
7565         PR middle-end/100574
7566         * builtins.c (access_ref::get_ref): Improve detection of PHIs with
7567         all null arguments.
7568
7569 2021-05-13  Martin Sebor  <msebor@redhat.com>
7570
7571         PR tree-optimization/93100
7572         PR middle-end/98583
7573         * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that
7574         don't modify referenced objects.
7575
7576 2021-05-13  Martin Jambor  <mjambor@suse.cz>
7577
7578         PR tree-optimization/100453
7579         * tree-sra.c (sra_modify_assign): All const base accesses do not
7580         need refreshing, not just those from decl_pool.
7581         (sra_modify_assign): Do not refresh into a const base decl.
7582
7583 2021-05-13  Martin Liska  <mliska@suse.cz>
7584
7585         * tree-ssa-dom.c: Remove m_simplifier.
7586
7587 2021-05-13  Richard Earnshaw  <rearnsha@arm.com>
7588
7589         PR target/100563
7590         * config/arm/arm.c (arm_canonicalize_comparison): Correctly
7591         canonicalize DImode inequality comparisons against the
7592         maximum integral value.
7593
7594 2021-05-13  Jakub Jelinek  <jakub@redhat.com>
7595
7596         PR tree-optimization/98856
7597         * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument.
7598         Expect V2DI and V4DI arithmetic right shifts to be emulated.
7599         (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost
7600         caller.
7601         * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave,
7602         expand_vec_perm_2perm_pblendv): New functions.
7603         (ix86_expand_vec_perm_const_1): Use them.
7604         * config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ...
7605         (<mask_codefor>ashr<mode>3<mask_name>): ... this.
7606         (ashr<mode>3): New define_expand with VI248_AVX512BW iterator.
7607         (ashrv4di3): New define_expand.
7608         (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP
7609         and !TARGET_AVX512VL expansion.
7610
7611 2021-05-13  Uroš Bizjak  <ubizjak@gmail.com>
7612
7613         PR target/100581
7614         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode
7615         sizes < 16 to a register when constructing vpcmov pattern.
7616         * config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode.
7617
7618 2021-05-13  Martin Liska  <mliska@suse.cz>
7619
7620         * gcov-io.c (gcov_write_block): Remove.
7621         (gcov_write_words): Likewise.
7622         (gcov_read_words): Re-implement using gcov_read_bytes.
7623         (gcov_allocate): Remove.
7624         (GCOV_BLOCK_SIZE): Likewise.
7625         (struct gcov_var): Remove most of the fields.
7626         (gcov_position): Implement with ftell.
7627         (gcov_rewrite): Remove setting of start and offset fields.
7628         (from_file): Re-format.
7629         (gcov_open): Remove setbuf call. It should not be needed.
7630         (gcov_close): Remove internal buffer handling.
7631         (gcov_magic): Use __builtin_bswap32.
7632         (gcov_write_counter): Use directly gcov_write_unsigned.
7633         (gcov_write_string): Use direct fwrite and do not round
7634         to 4 bytes.
7635         (gcov_seek): Use directly fseek.
7636         (gcov_write_tag): Use gcov_write_unsigned directly.
7637         (gcov_write_length): Likewise.
7638         (gcov_write_tag_length): Likewise.
7639         (gcov_read_bytes): Use directly fread.
7640         (gcov_read_unsigned): Use gcov_read_words.
7641         (gcov_read_counter): Likewise.
7642         (gcov_read_string): Use gcov_read_bytes.
7643         * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect
7644         that size is not in bytes, but words (4B).
7645         (GCOV_TAG_FUNCTION_LENGTH): Likewise.
7646         (GCOV_TAG_ARCS_LENGTH): Likewise.
7647         (GCOV_TAG_ARCS_NUM): Likewise.
7648         (GCOV_TAG_COUNTER_LENGTH): Likewise.
7649         (GCOV_TAG_COUNTER_NUM): Likewise.
7650         (GCOV_TAG_SUMMARY_LENGTH): Likewise.
7651
7652 2021-05-13  liuhongt  <hongtao.liu@intel.com>
7653
7654         PR target/94680
7655         * config/i386/sse.md (ssedoublevecmode): Add attribute for
7656         V64QI/V32HI/V16SI/V4DI.
7657         (ssehalfvecmode): Add attribute for V2DI/V2DF.
7658         (*vec_concatv4si_0): Extend to VI124_128.
7659         (*vec_concat<mode>_0): New pre-reload splitter.
7660         * config/i386/predicates.md (movq_parallel): New predicate.
7661
7662 2021-05-13  Alexandre Oliva  <oliva@adacore.com>
7663
7664         * targhooks.c (default_zero_call_used_regs): Retry using
7665         successfully-zeroed registers as sources.
7666
7667 2021-05-12  Tobias Burnus  <tobias@codesourcery.com>
7668
7669         * omp-low.c (finish_taskreg_scan): Use the proper detach decl.
7670
7671 2021-05-12  Aldy Hernandez  <aldyh@redhat.com>
7672
7673         PR c/100521
7674         * gimple-range.cc (range_of_builtin_call): Skip out on
7675           processing __builtin_clz when varying.
7676
7677 2021-05-12  Tom de Vries  <tdevries@suse.de>
7678
7679         PR target/96005
7680         * config/nvptx/nvptx-opts.h (enum ptx_version): New enum.
7681         * config/nvptx/nvptx.c (nvptx_file_start): Print .version according
7682         to ptx_version_option.
7683         * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define.
7684         * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
7685         (define_insn "nvptx_vote_ballot"): Use sync variant for
7686         TARGET_PTX_6_3.
7687         * config/nvptx/nvptx.opt (ptx_version): Add enum.
7688         (mptx): Add option.
7689         * doc/invoke.texi (Nvidia PTX Options): Add mptx item.
7690
7691 2021-05-12  Richard Biener  <rguenther@suse.de>
7692
7693         PR tree-optimization/100566
7694         * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
7695         allow_back for all edge queries.
7696
7697 2021-05-12  liuhongt  <hongtao.liu@intel.com>
7698
7699         PR target/99908
7700         * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add
7701         splitters for pblendvb of NOT mask register.
7702
7703 2021-05-12  Richard Biener  <rguenther@suse.de>
7704
7705         PR tree-optimization/100519
7706         * tree-ssa-reassoc.c (can_associate_p): Split into...
7707         (can_associate_op_p): ... this
7708         (can_associate_type_p): ... and this.
7709         (is_reassociable_op): Call can_associate_op_p.
7710         (break_up_subtract_bb): Call the appropriate predicates.
7711         (reassociate_bb): Likewise.
7712
7713 2021-05-12  Martin Liska  <mliska@suse.cz>
7714
7715         * lto-wrapper.c (merge_and_complain): Merge -flto=arg options.
7716         (run_gcc): Use -flto argument detection for merged
7717         fdecoded_options.
7718
7719 2021-05-12  Martin Liska  <mliska@suse.cz>
7720
7721         * lto-wrapper.c (print_lto_docs_link): New function.
7722         (run_gcc): Print warning about missing job server detection
7723         after we know NR of partitions. Do the same for -flto{,=1}.
7724         * opts.c (get_option_html_page): Support -flto option.
7725
7726 2021-05-12  Martin Liska  <mliska@suse.cz>
7727
7728         * lto-wrapper.c (get_options_from_collect_gcc_options): Change
7729         return type.
7730         (append_option): Remove.
7731         (find_option): Rework to use the vector type.
7732         (remove_option): Remove.
7733         (merge_and_complain): Use vectors for cl_decoded_option data
7734         type arguments.
7735         (append_compiler_options): Likewise.
7736         (append_diag_options): Likewise.
7737         (append_linker_options): Likewise.
7738         (append_offload_options): Likewise.
7739         (compile_offload_image): Likewise.
7740         (compile_images_for_offload_targets): Likewise.
7741         (find_and_merge_options): Likewise.
7742         (run_gcc): Likewise.
7743
7744 2021-05-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7745
7746         PR debug/100515
7747         * dwarf2out.c (dwarf2out_finish): Set
7748         have_multiple_function_sections with multi-range text_section.
7749
7750 2021-05-12  Martin Liska  <mliska@suse.cz>
7751
7752         PR bootstrap/100560
7753         * Makefile.in: Remove version.h from linker command line.
7754
7755 2021-05-12  Richard Biener  <rguenther@suse.de>
7756
7757         PR middle-end/100547
7758         * rtl.h (rtvec_alloc): Make argument size_t.
7759         * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX.
7760
7761 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
7762
7763         PR middle-end/100508
7764         * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
7765         type, don't reuse DECL_RTL if it has different mode, instead force
7766         creation of a new DEBUG_EXPR.
7767
7768 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
7769             Marc Glisse  <marc.glisse@inria.fr>
7770
7771         PR tree-optimization/94589
7772         * match.pd ((X & Y) == X -> (X & ~Y) == 0,
7773         (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications.
7774
7775 2021-05-12  Uroš Bizjak  <ubizjak@gmail.com>
7776
7777         PR target/98218
7778         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
7779         * config/i386/mmx.md (MMXMODE124): New mode iterator.
7780         (V2FI): Ditto.
7781         (mmxintvecmode): New mode attribute.
7782         (mmxintvecmodelower): Ditto.
7783         (*mmx_maskcmpv2sf3_comm): New insn pattern.
7784         (*mmx_maskcmpv2sf3): Ditto.
7785         (vec_cmpv2sfv2si): New expander.
7786         (vcond<V2FI:mode>v2si): Ditto.
7787         (mmx_vlendvps): New insn pattern.
7788         (vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode.
7789         (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
7790         (vcond_mask_<mode><mmxintvecmodelower>): Ditto.
7791
7792 2021-05-11  Martin Sebor  <msebor@redhat.com>
7793
7794         PR middle-end/21433
7795         * expr.c (expand_expr_real_1): Replace unreachable code with an assert.
7796
7797 2021-05-11  Richard Biener  <rguenther@suse.de>
7798
7799         * gimple-fold.c (gimple_fold_call): Do not call
7800         maybe_fold_reference on call arguments or the static chain.
7801         (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM
7802         inputs.
7803
7804 2021-05-11  Martin Liska  <mliska@suse.cz>
7805
7806         * builtins.def (DEF_HSAIL_BUILTIN): Remove.
7807         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
7808         (DEF_HSAIL_SAT_BUILTIN): Likewise.
7809         (DEF_HSAIL_INTR_BUILTIN): Likewise.
7810         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
7811         * doc/frontends.texi: Remove BRIG.
7812         * doc/install.texi: Likewise.
7813         * doc/invoke.texi: Likewise.
7814         * doc/standards.texi: Likewise.
7815         * brig-builtins.def: Removed.
7816         * brig/ChangeLog: Removed.
7817         * brig/Make-lang.in: Removed.
7818         * brig/brig-builtins.h: Removed.
7819         * brig/brig-c.h: Removed.
7820         * brig/brig-lang.c: Removed.
7821         * brig/brigfrontend/brig-arg-block-handler.cc: Removed.
7822         * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed.
7823         * brig/brigfrontend/brig-basic-inst-handler.cc: Removed.
7824         * brig/brigfrontend/brig-branch-inst-handler.cc: Removed.
7825         * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed.
7826         * brig/brigfrontend/brig-code-entry-handler.cc: Removed.
7827         * brig/brigfrontend/brig-code-entry-handler.h: Removed.
7828         * brig/brigfrontend/brig-comment-handler.cc: Removed.
7829         * brig/brigfrontend/brig-control-handler.cc: Removed.
7830         * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed.
7831         * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed.
7832         * brig/brigfrontend/brig-fbarrier-handler.cc: Removed.
7833         * brig/brigfrontend/brig-function-handler.cc: Removed.
7834         * brig/brigfrontend/brig-function.cc: Removed.
7835         * brig/brigfrontend/brig-function.h: Removed.
7836         * brig/brigfrontend/brig-inst-mod-handler.cc: Removed.
7837         * brig/brigfrontend/brig-label-handler.cc: Removed.
7838         * brig/brigfrontend/brig-lane-inst-handler.cc: Removed.
7839         * brig/brigfrontend/brig-machine.c: Removed.
7840         * brig/brigfrontend/brig-machine.h: Removed.
7841         * brig/brigfrontend/brig-mem-inst-handler.cc: Removed.
7842         * brig/brigfrontend/brig-module-handler.cc: Removed.
7843         * brig/brigfrontend/brig-queue-inst-handler.cc: Removed.
7844         * brig/brigfrontend/brig-seg-inst-handler.cc: Removed.
7845         * brig/brigfrontend/brig-signal-inst-handler.cc: Removed.
7846         * brig/brigfrontend/brig-to-generic.cc: Removed.
7847         * brig/brigfrontend/brig-to-generic.h: Removed.
7848         * brig/brigfrontend/brig-util.cc: Removed.
7849         * brig/brigfrontend/brig-util.h: Removed.
7850         * brig/brigfrontend/brig-variable-handler.cc: Removed.
7851         * brig/brigfrontend/hsa-brig-format.h: Removed.
7852         * brig/brigfrontend/phsa.h: Removed.
7853         * brig/brigspec.c: Removed.
7854         * brig/config-lang.in: Removed.
7855         * brig/gccbrig.texi: Removed.
7856         * brig/lang-specs.h: Removed.
7857         * brig/lang.opt: Removed.
7858
7859 2021-05-11  Richard Biener  <rguenther@suse.de>
7860
7861         PR ipa/100513
7862         * ipa-param-manipulation.c
7863         (ipa_param_body_adjustments::modify_call_stmt): Avoid
7864         altering SSA_NAME_DEF_STMT by adjusting the calls LHS
7865         via gimple_call_lhs_ptr.
7866
7867 2021-05-11  Alex Coplan  <alex.coplan@arm.com>
7868
7869         PR target/99725
7870         * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
7871         Avoid emitting CFA adjusts on the sp if we have the fp.
7872
7873 2021-05-11  Richard Sandiford  <richard.sandiford@arm.com>
7874
7875         * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete.
7876         (VMULD): New iterator.
7877         (VCOND): Handle V4HF and V8HF.
7878         (VCONQ): Fix entry for V2SF.
7879         * config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD
7880         instead of VMUL.  Use a 64-bit vector mode for the indexed operand.
7881         (*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with...
7882         (mul_laneq<mode>3): ...this define_insn.  Use VMUL instead of VDQSF.
7883         Use a 128-bit vector mode for the indexed operand.  Use stype for
7884         the scheduling type.
7885
7886 2021-05-11  Richard Biener  <rguenther@suse.de>
7887
7888         * gimple-fold.c (maybe_fold_reference): Only return
7889         is_gimple_min_invariant values.
7890
7891 2021-05-11  Richard Biener  <rguenther@suse.de>
7892
7893         PR middle-end/100509
7894         * gimple-fold.c (fold_gimple_assign): Only call
7895         get_symbol_constant_value on register type symbols.
7896
7897 2021-05-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
7898             Joe Ramsay   <joe.ramsay@arm.com>
7899
7900         PR target/100419
7901         * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments.
7902         (__arm_vcmpneq): Remove duplicate definition.
7903         (__arm_vstrwq_scatter_offset_p): Likewise.
7904         (__arm_vmaxq_x): Likewise.
7905         (__arm_vmlsdavaq): Likewise.
7906         (__arm_vmlsdavaxq): Likewise.
7907         (__arm_vmlsdavq_p): Likewise.
7908         (__arm_vmlsdavxq_p): Likewise.
7909         (__arm_vrmlaldavhaq): Likewise.
7910         (__arm_vstrbq_p): Likewise.
7911         (__arm_vstrbq_scatter_offset): Likewise.
7912         (__arm_vstrbq_scatter_offset_p): Likewise.
7913         (__arm_vstrdq_scatter_offset): Likewise.
7914         (__arm_vstrdq_scatter_offset_p): Likewise.
7915         (__arm_vstrdq_scatter_shifted_offset): Likewise.
7916         (__arm_vstrdq_scatter_shifted_offset_p): Likewise.
7917
7918 2021-05-11  Jakub Jelinek  <jakub@redhat.com>
7919
7920         PR middle-end/100471
7921         * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data
7922         is 0, bypass the reduction loop including
7923         GOMP_taskgroup_reduction_unregister call.
7924
7925 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
7926
7927         * config/rs6000/rs6000.c (struct rs6000_cost_data): New member
7928         costing_for_scalar.
7929         (rs6000_density_test): Early return if costing_for_scalar is true.
7930         (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data.
7931
7932 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
7933
7934         * doc/tm.texi: Regenerated.
7935         * target.def (init_cost): Add new parameter costing_for_scalar.
7936         * targhooks.c (default_init_cost): Adjust for new parameter.
7937         * targhooks.h (default_init_cost): Likewise.
7938         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise.
7939         (vect_compute_single_scalar_iteration_cost): Likewise.
7940         (vect_analyze_loop_2): Likewise.
7941         * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise.
7942         (vect_bb_vectorization_profitable_p): Likewise.
7943         * tree-vectorizer.h (init_cost): Likewise.
7944         * config/aarch64/aarch64.c (aarch64_init_cost): Likewise.
7945         * config/i386/i386.c (ix86_init_cost): Likewise.
7946         * config/rs6000/rs6000.c (rs6000_init_cost): Likewise.
7947
7948 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
7949
7950         * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to
7951         vect_nonmem and moved into...
7952         (struct rs6000_cost_data): ...here.
7953         (rs6000_init_cost): Use vect_nonmem of cost_data instead.
7954         (rs6000_add_stmt_cost): Likewise.
7955         (rs6000_finish_cost): Likewise.
7956
7957 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
7958
7959         * range-op.cc (get_bool_state): Adjust head comment.
7960         (operator_not_equal::op1_range): Fix comment.
7961         (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable.
7962
7963 2021-05-10  Martin Sebor  <msebor@redhat.com>
7964
7965         PR middle-end/100425
7966         PR middle-end/100510
7967         * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename...
7968         (pass_walloca::xlimit_certain_p): ...to this.
7969         (pass_walloca::gate): Execute for any kind of handled warning.
7970         (pass_walloca::execute): Avoid issuing "maybe" and "unbounded"
7971         warnings when xlimit_certain_p is set.
7972
7973 2021-05-10  Pat Haugen  <pthaugen@linux.ibm.com>
7974
7975         * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class):
7976         Return ALTIVEC_REGS if that is best_class.
7977         (rs6000_compute_pressure_classes): Add ALTIVEC_REGS.
7978
7979 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7980
7981         * config/arm/arm.h (CPP_SPEC): Remove error message about
7982         -mfloat-abi.
7983
7984 2021-05-10  Martin Jambor  <mjambor@suse.cz>
7985
7986         * ipa-prop.h (IPA_NODE_REF): Removed.
7987         (IPA_NODE_REF_GET_CREATE): Likewise.
7988         (IPA_EDGE_REF): Likewise.
7989         (IPA_EDGE_REF_GET_CREATE): Likewise.
7990         (IS_VALID_JUMP_FUNC_INDEX): Likewise.
7991         * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct
7992         use of ipa_node_params_sum.
7993         (ipcp_versionable_function_p): Likewise.
7994         (push_node_to_stack): Likewise.
7995         (pop_node_from_stack): Likewise.
7996         (set_single_call_flag): Replaced two IPA_NODE_REF with one single
7997         direct use of ipa_node_params_sum.
7998         (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of
7999         ipa_node_params_sum.
8000         (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of
8001         ipa_edge_args_sum.
8002         (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct
8003         use of ipa_node_params_sum.
8004         (self_recursively_generated_p): Likewise.
8005         (propagate_scalar_across_jump_function): Likewise.
8006         (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a
8007         direct use of ipa_edge_args_sum, moved the lookup after the early
8008         exit.  Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum.
8009         (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with
8010         direct uses of ipa_node_params_sum.
8011         (propagate_vr_across_jump_function): Likewise.
8012         (propagate_aggregate_lattice): Likewise.
8013         (propagate_aggs_across_jump_function): Likewise.
8014         (propagate_constants_across_call): Likewise, also replaced
8015         IPA_EDGE_REF with a direct use of ipa_edge_args_sum.
8016         (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use
8017         of ipa_node_params_sum.
8018         (estimate_local_effects): Likewise.
8019         (add_all_node_vals_to_toposort): Likewise.
8020         (propagate_constants_topo): Likewise.
8021         (ipcp_propagate_stage): Likewise.
8022         (ipcp_discover_new_direct_edges): Likewise.
8023         (calls_same_node_or_its_all_contexts_clone_p): Likewise.
8024         (cgraph_edge_brings_value_p): Likewise (in both overloaded functions).
8025         (get_info_about_necessary_edges): Likewise.
8026         (want_remove_some_param_p): Likewise.
8027         (create_specialized_node): Likewise.
8028         (self_recursive_pass_through_p): Likewise.
8029         (self_recursive_agg_pass_through_p): Likewise.
8030         (find_more_scalar_values_for_callers_subset): Likewise and also
8031         replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one
8032         case replacing two of those with a single query.
8033         (find_more_contexts_for_caller_subset): Likewise for the
8034         ipa_polymorphic_call_context overload.
8035         (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct
8036         use of ipa_edge_args_sum.  Replaced IPA_NODE_REF with direct uses of
8037         ipa_node_params_sum.
8038         (find_aggregate_values_for_callers_subset): Likewise, also reusing
8039         results of ipa_edge_args_sum->get.
8040         (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with
8041         direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a
8042         direct use of ipa_edge_args_sum.
8043         (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node
8044         summary query after the early exit and reused the result later.
8045         (decide_about_value): Replaced IPA_NODE_REF with a direct use of
8046         ipa_node_params_sum.
8047         (decide_whether_version_node): Likewise.  Removed re-querying for
8048         summaries after cloning.
8049         (spread_undeadness): Replaced IPA_NODE_REF with a direct use of
8050         ipa_node_params_sum.
8051         (has_undead_caller_from_outside_scc_p): Likewise, reusing results of
8052         some queries.
8053         (identify_dead_nodes): Likewise.
8054         (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of
8055         ipa_node_params_sum.
8056         (ipcp_store_vr_results): Likewise.
8057         * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
8058         (ipa_fn_summary_t::duplicate): Likewise.
8059         (analyze_function_body): Likewise.
8060         (estimate_calls_size_and_time): Likewise.
8061         (ipa_cached_call_context::duplicate_from): Likewise.
8062         (ipa_call_context::equal_to): Likewise.
8063         (remap_edge_params): Likewise.
8064         (ipa_merge_fn_summary_after_inlining): Likewise.
8065         (inline_read_section): Likewise.
8066         * ipa-icf.c (sem_function::param_used_p): Likewise.
8067         * ipa-modref.c (compute_parm_map): Likewise.
8068         (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of
8069         ipa_edge_args_sum.
8070         (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of
8071         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
8072         ipa_edge_args_sum.
8073         * ipa-profile.c (check_argument_count): Likewise.
8074         * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE
8075         with a direct use of ipa_node_params_sum.
8076         (ipa_initialize_node_params): Likewise.
8077         (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a
8078         direct use of ipa_edge_args_sum and reused the query result.
8079         (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a
8080         direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a
8081         direct use of ipa_edge_args_sum.
8082         (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of
8083         ipa_node_params_sum and reused the result of the query.
8084         (ipa_analyze_node): Likewise.
8085         (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use
8086         of ipa_node_params_sum.
8087         (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with
8088         direct uses of ipa_edge_args_sum.
8089         (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with
8090         direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a
8091         direct use of ipa_edge_args_sum.  Removed superficial re-querying the
8092         top edge summary.
8093         (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of
8094         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
8095         ipa_edge_args_sum.
8096         (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a
8097         direct use of ipa_edge_args_sum.
8098         (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct
8099         use of ipa_node_params_sum.
8100         (ipa_print_node_params): Likewise.
8101         (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with
8102         direct uses of ipa_edge_args_sum.
8103         (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of
8104         ipa_edge_args_sum.
8105         (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of
8106         ipa_node_params_sum.
8107         (ipa_prop_write_jump_functions): Likewise.  Move variable node to the
8108         scopes where it is used.
8109
8110 2021-05-10  Uroš Bizjak  <ubizjak@gmail.com>
8111
8112         * config/i386/i386-expand.c (ix86_expand_sse_movcc)
8113         <case E_V2SImode>: Force op_true to register.
8114
8115 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
8116
8117         * config/arm/iterators.md (MVE_FP_COMPARISONS): New.
8118         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>)
8119         (mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f*
8120         patterns.
8121         (mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>)
8122         (mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>)
8123         (mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>)
8124         (mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>)
8125         (mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>)
8126         (mve_vcmpneq_n_f<mode>): Remove.
8127         * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F)
8128         (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F)
8129         (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove.
8130
8131 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
8132
8133         * config/arm/iterators.md (MVE_COMPARISONS): New.
8134         (mve_cmp_op): New.
8135         (mve_cmp_type): New.
8136         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
8137         mve_vcmp patterns.
8138         (mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>)
8139         (mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>)
8140         (mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>)
8141         (mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>)
8142         (mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
8143         (mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
8144         (mve_vcmpneq_n_<mode>): Remove.
8145
8146 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
8147
8148         * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix.
8149         * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix.
8150         * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern
8151         names.
8152
8153 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
8154
8155         * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove.
8156         (vcmpneq_n_u): Likewise.
8157         (vcmpeqq_u,): Likewise.
8158         (vcmpeqq_n_u): Likewise.
8159         * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U,
8160         VCMPEQQ_N_U and VCMPNEQ_N_U.
8161         * config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration.
8162         (mve_vcmpeqq_n): Likewise.
8163         (mve_vcmpeqq): Likewise.
8164         (mve_vcmpneq_n): Likewise.
8165
8166 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
8167
8168         * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call
8169         the 's' version of the builtin.
8170
8171 2021-05-10  Richard Biener  <rguenther@suse.de>
8172
8173         PR tree-optimization/100492
8174         * tree-loop-distribution.c (find_seed_stmts_for_distribution):
8175         Find nothing when the loop contains an irreducible region.
8176
8177 2021-05-10  Richard Biener  <rguenther@suse.de>
8178
8179         PR middle-end/100464
8180         PR c++/100468
8181         * gimple-fold.c (canonicalize_constructor_val): Do not set
8182         TREE_ADDRESSABLE.
8183
8184 2021-05-10  Richard Biener  <rguenther@suse.de>
8185
8186         PR tree-optimization/100434
8187         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
8188         call LHS.
8189         (dse_optimize_stmt): Handle call LHS by dropping the
8190         LHS or the whole call if it doesn't have other
8191         side-effects.
8192         (pass_dse::execute): Adjust.
8193
8194 2021-05-10  Martin Liska  <mliska@suse.cz>
8195
8196         * Makefile.in: Add missing genversion rule.
8197
8198 2021-05-10  Alex Coplan  <alex.coplan@arm.com>
8199
8200         PR target/99960
8201         * config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use
8202         vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.
8203
8204 2021-05-10  Martin Liska  <mliska@suse.cz>
8205
8206         * builtins.c (is_builtin_name): Use startswith
8207         function instead of strncmp.
8208         * collect2.c (main): Likewise.
8209         (has_lto_section): Likewise.
8210         (scan_libraries): Likewise.
8211         * coverage.c (coverage_checksum_string): Likewise.
8212         (coverage_init): Likewise.
8213         * dwarf2out.c (is_cxx): Likewise.
8214         (gen_compile_unit_die): Likewise.
8215         * gcc-ar.c (main): Likewise.
8216         * gcc.c (init_spec): Likewise.
8217         (read_specs): Likewise.
8218         (execute): Likewise.
8219         (check_live_switch): Likewise.
8220         * genattrtab.c (write_attr_case): Likewise.
8221         (IS_ATTR_GROUP): Likewise.
8222         * gencfn-macros.c (main): Likewise.
8223         * gengtype.c (type_for_name): Likewise.
8224         (gen_rtx_next): Likewise.
8225         (get_file_langdir): Likewise.
8226         (write_local): Likewise.
8227         * genmatch.c (get_operator): Likewise.
8228         (get_operand_type): Likewise.
8229         (expr::gen_transform): Likewise.
8230         * genoutput.c (validate_optab_operands): Likewise.
8231         * incpath.c (add_sysroot_to_chain): Likewise.
8232         * langhooks.c (lang_GNU_C): Likewise.
8233         (lang_GNU_CXX): Likewise.
8234         (lang_GNU_Fortran): Likewise.
8235         (lang_GNU_OBJC): Likewise.
8236         * lto-wrapper.c (run_gcc): Likewise.
8237         * omp-general.c (omp_max_simt_vf): Likewise.
8238         * omp-low.c (omp_runtime_api_call): Likewise.
8239         * opts-common.c (parse_options_from_collect_gcc_options): Likewise.
8240         * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise.
8241         * real.c (real_from_string): Likewise.
8242         * selftest.c (assert_str_startswith): Likewise.
8243         * timevar.c (timer::validate_phases): Likewise.
8244         * tree.c (get_file_function_name): Likewise.
8245         * ubsan.c (ubsan_use_new_style_p): Likewise.
8246         * varasm.c (default_function_rodata_section): Likewise.
8247         (incorporeal_function_p): Likewise.
8248         (default_section_type_flags): Likewise.
8249         * system.h (startswith): Define startswith.
8250
8251 2021-05-10  Martin Liska  <mliska@suse.cz>
8252
8253         * bitmap.h (class auto_bitmap): Remove
8254         __cplusplus >= 201103.
8255         * config/aarch64/aarch64.c: Likewise.
8256         * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info):
8257         Likewise.
8258         * sbitmap.h: Likewise.
8259
8260 2021-05-10  Martin Liska  <mliska@suse.cz>
8261
8262         * Makefile.in: Rename gcov-iov to genversion and depend
8263         on version.h (instead of gcov-iov.h).
8264         * gcov-io.h: Include version.h instread of gcov-iov.h.
8265         * gengtype-state.c (read_state_version): Likewise.
8266         * gcov-iov.c: Moved to...
8267         * genversion.c: ...here.
8268         * lto-streamer.h (LTO_major_version): Define it with
8269         GCC_major_version.
8270         * version.c: Removed.
8271         * version.h: Removed.
8272
8273 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8274
8275         * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
8276         * config/arc/simdext.md (VCT): Add predicates for iterator
8277         elements.
8278         (EMUVEC): Define.
8279         (voptab): Likewise.
8280         (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
8281         (<voptab>v2si3): New patterns.
8282         (neg): Likewise.
8283         (reduc_plus_scal_v4hi): Likewise.
8284         (reduc_plus_scal_v2si): Likewise.
8285         (vec_duplicatev2si): Likewise.
8286         (vec_duplicatev4hi): Likewise.
8287
8288 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8289
8290         * config/arc/simdext.md: Format and cleanup file.
8291
8292 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8293
8294         * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access
8295         only when munaligned-access option is on.
8296         (movmisalign<mode>): Likewise.
8297
8298 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8299
8300         * common/config/arc/arc-common.c (arc_handle_option): Remove dot
8301         from string.
8302         * config/arc/arc.c (arc_reorg): Remove underscore from string.
8303
8304 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8305
8306         * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
8307         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
8308         * config/arc/arc.md (clrsbsi2): Cleanup pattern.
8309         (norm_f): Likewise.
8310         (ffs): Likewise.
8311         (ffs_f): Likewise.
8312         (clzsi2): Use fls instruction when available.
8313         (arc_clzsi2): Likewise.
8314
8315 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8316
8317         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27.
8318
8319 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
8320
8321         * doc/extend.texi (__builtin_arc_sr): Swap arguments.
8322
8323 2021-05-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8324
8325         PR middle-end/100467
8326         * toplev.c (compile_file): Call insn_locations_init before
8327         targetm.asm_out.code_end.
8328
8329 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
8330
8331         Revert:
8332         2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
8333
8334         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
8335
8336 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
8337             Andrew Stubbs  <amd@codesourcery.com>
8338
8339         PR target/100418
8340         * builtins.c (try_store_by_multiple_pieces): Use force_operand for
8341         emit_move_insn operands.
8342
8343 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
8344
8345         * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current
8346         location for the outgoing edges of an empty block.
8347         * dwarf2out.c (add_subscript_info): Retrieve the bounds and index
8348         type by means of the get_array_descr_info langhook, if it is set and
8349         returns true.  Remove obsolete code dealing with unnamed subtypes.
8350
8351 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8352
8353         * gimple-range-cache.cc (ssa_block_ranges): Virtualize.
8354         (sbr_vector): Renamed from ssa_block_cache.
8355         (sbr_vector::sbr_vector): Allocate from obstack abd initialize.
8356         (ssa_block_ranges::~ssa_block_ranges): Remove.
8357         (sbr_vector::set_bb_range): Use varying and undefined cached values.
8358         (ssa_block_ranges::set_bb_varying): Remove.
8359         (sbr_vector::get_bb_range): Adjust assert.
8360         (sbr_vector::bb_range_p): Adjust assert.
8361         (~block_range_cache): No freeing loop required.
8362         (block_range_cache::get_block_ranges): Remove.
8363         (block_range_cache::set_bb_range): Inline get_block_ranges.
8364         (block_range_cache::set_bb_varying): Remove.
8365         * gimple-range-cache.h (set_bb_varying): Remove prototype.
8366         * value-range.h (irange_allocator::get_memory): New.
8367
8368 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8369
8370         * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search
8371         dominator tree is available and requested.
8372         (ranger_cache::ssa_range_in_bb): Don't search dom tree here.
8373         (ranger_cache::fill_block_cache): Don't search dom tree here either.
8374         * gimple-range-cache.h (non_null_deref_p): Add dom_search param.
8375
8376 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8377
8378         * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with
8379         only PHI nodes better.
8380
8381 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8382
8383         * gimple-range-edge.h (gimple_outgoing_range): Rename from
8384         outgoing_range.
8385         (gcond_edge_range): Export prototype.
8386         * gimple-range-edge.cc (gcond_edge_range): New.
8387         (gimple_outgoing_range::edge_range_p): Use gcond_edge_range.
8388         * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range.
8389
8390 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8391
8392         * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute
8393         default range into a temp and allocate only what is needed.
8394
8395 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8396
8397         * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED.
8398
8399 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
8400
8401         * gimple-range.h (gimple_range_global): Pick up parameter initial
8402         values, and use-before defined locals are UNDEFINED.
8403
8404 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
8405
8406         * doc/extend.texi (scalar_storage_order): Mention effect on pointer
8407         and vector fields.
8408         * tree.h (reverse_storage_order_for_component_p): Return false if
8409         the type is a pointer.
8410
8411 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
8412
8413         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
8414
8415 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
8416
8417         PR target/98218
8418         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
8419         Handle V8QI, V4HI and V2SI modes.
8420         * config/i386/mmx.md (mmx_pblendvb): New insn pattern.
8421         * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ...
8422         * config/i386/i386.md (unspec): ... here.
8423
8424 2021-05-07  Tobias Burnus  <tobias@codesourcery.com>
8425             Tom de Vries  <tdevries@suse.de>
8426
8427         * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
8428         a truth_value_p reduction variable is nonintegral.
8429
8430 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
8431
8432         PR target/100445
8433         * config/i386/i386-expand.c (ix86_use_mask_cmp_p):
8434         Return false for mode sizes < 16.
8435
8436 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
8437
8438         PR target/100445
8439         * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.
8440
8441 2021-05-06  Martin Jambor  <mjambor@suse.cz>
8442
8443         * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even
8444         when there is no function summary.
8445         (ipa_sra_summarize_function): produce edge summaries even when
8446         bailing out early.
8447
8448 2021-05-06  Tom Tromey  <tom@tromey.com>
8449
8450         * godump.c (string_hash_eq): Remove.
8451         (go_finish): Use htab_eq_string.
8452
8453 2021-05-06  Tom Tromey  <tom@tromey.com>
8454
8455         * gengtype-state.c (read_state): Use htab_eq_string.
8456         (string_eq): Remove.
8457
8458 2021-05-06  Tom Tromey  <tom@tromey.com>
8459
8460         * gensupport.c (htab_eq_string): Remove.
8461
8462 2021-05-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8463
8464         PR ipa/97937
8465         * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer.
8466         * dwarf2out.h (dw_fde_node::ignored_debug): New data item.
8467         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy
8468         set_ignored_loc callbacks.
8469         * debug.c (do_nothing_debug_hooks): Likewise.
8470         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8471         * dwarf2out.c (text_section_used, cold_text_section_used): Remove.
8472         (in_text_section_p, last_text_label, last_cold_label,
8473         switch_text_ranges, switch_cold_ranges): New data items.
8474         (dwarf2out_note_section_used): Remove.
8475         (dwarf2out_begin_prologue): Set fde->ignored_debug and
8476         in_text_section_p.
8477         (mark_ignored_debug_section): New helper function.
8478         (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call
8479         mark_ignored_debug_section.
8480         (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc.
8481         (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc.
8482         (size_of_aranges): Adjust formula for multi-part text ranges size.
8483         (output_aranges): Output multi-part text ranges.
8484         (dwarf2out_set_ignored_loc): New callback function.
8485         (dwarf2out_finish): Output multi-part text ranges.
8486         (dwarf2out_c_finalize): Clear new data items.
8487         * final.c (final_start_function_1): Call set_ignored_loc callback.
8488         (final_scan_insn_1): Likewise.
8489         * ggc-page.c (gt_ggc_mx): New helper function.
8490         * stringpool.c (gt_pch_nx): Likewise.
8491
8492 2021-05-06  Richard Biener  <rguenther@suse.de>
8493
8494         * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove.
8495         (TV_TREE_SSA_REWRITE_BLOCKS): Likewise.
8496         (TV_TREE_INTO_SSA): New.
8497         * tree-into-ssa.c (insert_phi_nodes): Do not account separately.
8498         (rewrite_blocks): Likewise.
8499         (pass_data_build_ssa): Account to TV_TREE_INTO_SSA.
8500
8501 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
8502
8503         * tree-ssa-phiopt.c (value_replacement, minmax_replacement,
8504         abs_replacement, xor_replacement,
8505         cond_removal_in_popcount_clz_ctz_pattern,
8506         replace_phi_edge_with_variable): Change type of phi argument from
8507         gimple * to gphi *.
8508
8509 2021-05-06  Richard Biener  <rguenther@suse.de>
8510
8511         * tree-ssa-loop-split.c (split_loop): Delay updating SSA form.
8512         Output an opt-info message.
8513         (do_split_loop_on_cond): Likewise.
8514         (tree_ssa_split_loops): Update SSA form here.
8515
8516 2021-05-06  Richard Biener  <rguenther@suse.de>
8517
8518         * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE
8519         return variable removal.
8520
8521 2021-05-06  Marius Hillenbrand  <mhillen@linux.ibm.com>
8522
8523         * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros.
8524         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
8525         (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate
8526         operand.
8527         * config/s390/s390.c (s390_const_operand_ok): Remove unused
8528         values.
8529
8530 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
8531
8532         PR tree-optimization/94589
8533         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
8534         spaceship_replacement.
8535         (cond_only_block_p, spaceship_replacement): New functions.
8536
8537 2021-05-06  Richard Biener  <rguenther@suse.de>
8538
8539         PR ipa/100373
8540         * tree-emutls.c (gen_emutls_addr): Pass in whether we're
8541         dealing with a debug use and only query existing addresses
8542         if so.
8543         (lower_emutls_1): Avoid splitting out addresses for debug
8544         stmts, reset the debug stmt when we fail to find existing
8545         lowered addresses.
8546         (lower_emutls_phi_arg): Set wi.stmt.
8547
8548 2021-05-06  Christoph Muellner  <cmuellner@gcc.gnu.org>
8549
8550         PR target/100266
8551         * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper.
8552         * config/riscv/riscv.md (cbranch<mode>4): Generate helpers.
8553         (stack_protect_test): Use cbranch helper.
8554
8555 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
8556
8557         PR target/100402
8558         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
8559         always return the establisher frame for __builtin_frame_address (0).
8560
8561 2021-05-05  Ivan Sorokin  <vanyacpp@gmail.com>
8562
8563         PR target/91400
8564         * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New.
8565         (ix86_cpu_model_var): Likewise.
8566         (ix86_cpu_features2_type_node): Likewise.
8567         (ix86_cpu_features2_var): Likewise.
8568         (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with
8569         their types.
8570
8571 2021-05-05  Martin Sebor  <msebor@redhat.com>
8572
8573         * passes.def (pass_warn_printf): Run after SSA.
8574
8575 2021-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8576
8577         * config/arm/neon.md (neon_vtst_combine<mode>): New pattern.
8578         * config/arm/predicates.md (minus_one_operand): New predicate.
8579
8580 2021-05-05  Jeff Law  <jlaw@tachyum.com>
8581
8582         * config/avr/avr.md: Remove references to CC_STATUS_INIT.
8583
8584 2021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
8585
8586         PR rtl-optimization/100263
8587         * postreload.c (move2add_valid_value_p): Ensure register can
8588         change mode.
8589
8590 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
8591
8592         PR rtl-optimization/100411
8593         * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue
8594         and beginning of function markers.
8595
8596 2021-05-05  Jeff Law  <jlaw@tachyum.com>
8597
8598         * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove.
8599         * config/cr16/cr16.c (notice_update_cc): Remove.
8600         * config/cr16/cr16-protos.h (notice_update_cc): Remove.
8601
8602 2021-05-05  Uroš Bizjak  <ubizjak@gmail.com>
8603
8604         PR target/98218
8605         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
8606         Handle V8QI, V4HI and V2SI modes.
8607         * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode.
8608         (ix86_build_signbit_mask): Ditto.
8609         * config/i386/mmx.md (MMXMODE14): New mode iterator.
8610         (<smaxmin:code><MMXMODE14:mode>3): New expander.
8611         (*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern.
8612         (<umaxmin:code><MMXMODE24:mode>3): New expander.
8613         (*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern.
8614         (vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander.
8615         (vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
8616         (vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
8617         (vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
8618         (vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
8619
8620 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
8621
8622         * dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do
8623         not expand the VALUE_EXPR of variables put in the non-local frame.
8624         * gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not
8625         to be ignored for debug info, ensure its variable offsets are not.
8626
8627 2021-05-05  Richard Biener  <rguenther@suse.de>
8628
8629         PR tree-optimization/79333
8630         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
8631         Fold stmt following SSA edges.
8632
8633 2021-05-05  Richard Biener  <rguenther@suse.de>
8634
8635         PR middle-end/100394
8636         * calls.c (expand_call): Preserve possibly throwing calls.
8637         * cfgexpand.c (expand_call_stmt): When a call can throw signal
8638         RTL expansion there are side-effects.
8639         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify,
8640         mark all possibly throwing stmts necessary unless we can elide
8641         dead EH.
8642         * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless
8643         -fdelete-dead-exceptions.
8644         * tree.h (DECL_PURE_P): Add note about exceptions.
8645
8646 2021-05-05  Alexandre Oliva  <oliva@adacore.com>
8647
8648         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
8649         unconditional.
8650
8651 2021-05-04  David Edelsohn  <dje.gcc@gmail.com>
8652
8653         * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
8654         get_fnname_from_decl for name of thunk.
8655         * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name
8656         and ASM_OUTPUT_LABEL.
8657         (rs6000_xcoff_declare_function_name): Use assemble_name and
8658         ASM_OUTPUT_LABEL.
8659         (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL.
8660         (rs6000_xcoff_encode_section_info): Don't add mapping class
8661         for aliases.  Always add [DS] mapping class to primary
8662         FUNCTION_DECL.
8663         (rs6000_asm_weaken_decl): Don't explicitly add [DS].
8664
8665 2021-05-04  Martin Sebor  <msebor@redhat.com>
8666
8667         PR middle-end/100307
8668         * builtins.c (compute_objsize_r): Clear base0 for pointers.
8669
8670 2021-05-04  Jeff Law  <jlaw@tachyum.com>
8671
8672         * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
8673
8674 2021-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
8675
8676         * caller-save.c: Remove CC0.
8677         * cfgcleanup.c: Remove CC0.
8678         * cfgrtl.c: Remove CC0.
8679         * combine.c: Remove CC0.
8680         * compare-elim.c: Remove CC0.
8681         * conditions.h: Remove CC0.
8682         * config/h8300/h8300.h: Remove CC0.
8683         * config/h8300/h8300-protos.h: Remove CC0.
8684         * config/h8300/peepholes.md: Remove CC0.
8685         * config/i386/x86-tune-sched.c: Remove CC0.
8686         * config/m68k/m68k.c: Remove CC0.
8687         * config/rl78/rl78.c: Remove CC0.
8688         * config/sparc/sparc.c: Remove CC0.
8689         * config/xtensa/xtensa.c: Remove CC0.
8690         (gen_conditional_move):  Use pc_rtx instead of cc0_rtx in a piece of
8691         RTL where that is used as a placeholder only.
8692         * cprop.c: Remove CC0.
8693         * cse.c: Remove CC0.
8694         * cselib.c: Remove CC0.
8695         * df-problems.c: Remove CC0.
8696         * df-scan.c: Remove CC0.
8697         * doc/md.texi: Remove CC0.  Adjust an example.
8698         * doc/rtl.texi: Remove CC0.  Adjust an example.
8699         * doc/tm.texi: Regenerate.
8700         * doc/tm.texi.in: Remove CC0.
8701         * emit-rtl.c: Remove CC0.
8702         * final.c: Remove CC0.
8703         * fwprop.c: Remove CC0.
8704         * gcse-common.c: Remove CC0.
8705         * gcse.c: Remove CC0.
8706         * genattrtab.c: Remove CC0.
8707         * genconfig.c: Remove CC0.
8708         * genemit.c: Remove CC0.
8709         * genextract.c: Remove CC0.
8710         * gengenrtl.c: Remove CC0.
8711         * genrecog.c: Remove CC0.
8712         * haifa-sched.c: Remove CC0.
8713         * ifcvt.c: Remove CC0.
8714         * ira-costs.c: Remove CC0.
8715         * ira.c: Remove CC0.
8716         * jump.c: Remove CC0.
8717         * loop-invariant.c: Remove CC0.
8718         * lra-constraints.c: Remove CC0.
8719         * lra-eliminations.c: Remove CC0.
8720         * optabs.c: Remove CC0.
8721         * postreload-gcse.c: Remove CC0.
8722         * postreload.c: Remove CC0.
8723         * print-rtl.c: Remove CC0.
8724         * read-rtl-function.c: Remove CC0.
8725         * reg-notes.def: Remove CC0.
8726         * reg-stack.c: Remove CC0.
8727         * reginfo.c: Remove CC0.
8728         * regrename.c: Remove CC0.
8729         * reload.c: Remove CC0.
8730         * reload1.c: Remove CC0.
8731         * reorg.c: Remove CC0.
8732         * resource.c: Remove CC0.
8733         * rtl.c: Remove CC0.
8734         * rtl.def: Remove CC0.
8735         * rtl.h: Remove CC0.
8736         * rtlanal.c: Remove CC0.
8737         * sched-deps.c: Remove CC0.
8738         * sched-rgn.c: Remove CC0.
8739         * shrink-wrap.c: Remove CC0.
8740         * simplify-rtx.c: Remove CC0.
8741         * system.h: Remove CC0.  Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
8742         CC_STATUS_MDEP, and CC_STATUS.
8743         * target.def: Remove CC0.
8744         * valtrack.c: Remove CC0.
8745         * var-tracking.c: Remove CC0.
8746
8747 2021-05-04  Richard Biener  <rguenther@suse.de>
8748
8749         PR tree-optimization/100414
8750         * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
8751         info here.
8752         (tree_ssa_phiopt_worker): But unconditionally here.
8753
8754 2021-05-04  Tobias Burnus  <tobias@codesourcery.com>
8755
8756         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
8757         && and || with floating-point and complex arguments.
8758
8759 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
8760
8761         * tree-inline.c (insert_debug_decl_map): Delete.
8762         (copy_debug_stmt): Minor tweak.
8763         (setup_one_parameter): Do not use a variable if the value is either
8764         a read-only DECL or a non-addressable local variable in the caller.
8765         In this case, insert the debug-only variable in the map manually.
8766         (expand_call_inline): Do not generate a CLOBBER for these values.
8767         * tree-inline.h (debug_map): Minor tweak.
8768
8769 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
8770
8771         * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
8772         * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.
8773
8774 2021-05-04  Richard Biener  <rguenther@suse.de>
8775
8776         PR tree-optimization/100329
8777         * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
8778         asm goto defs.
8779         (insert_stmt_after): Assert we're not running into asm goto.
8780
8781 2021-05-04  Richard Biener  <rguenther@suse.de>
8782
8783         PR tree-optimization/100398
8784         * tree-ssa-dse.c (pass_dse::execute): Preserve control
8785         altering stmts.
8786
8787 2021-05-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8788
8789         * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.
8790
8791 2021-05-04  Alexandre Oliva  <oliva@adacore.com>
8792
8793         * builtins.c (try_store_by_multiple_pieces): New.
8794         (expand_builtin_memset_args): Use it.  If target_char_cast
8795         fails, proceed as for non-constant val.  Pass len's ctz to...
8796         * expr.c (clear_storage_hints): ... this.  Try store by
8797         multiple pieces after setmem.
8798         (clear_storage): Adjust.
8799         * expr.h (clear_storage_hints): Likewise.
8800         (try_store_by_multiple_pieces): Declare.
8801         * passes.def: Replace the last copy_prop with ccp.
8802
8803 2021-05-03  Tom de Vries  <tdevries@suse.de>
8804
8805         PR target/100321
8806         * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined
8807         reduction.
8808
8809 2021-05-03  Richard Biener  <rguenther@suse.de>
8810
8811         * tree-ssa-dse.c (dse_classify_store): Track two PHI defs.
8812
8813 2021-05-03  Richard Biener  <rguenther@suse.de>
8814
8815         * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h.
8816         (dse_dom_walker): Remove.
8817         (dse_dom_walker::dse_optimize_stmt): Rename...
8818         (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap.
8819         (dse_dom_walker::before_dom_children): Inline ...
8820         (pass_dse::execute): ... here.  Perform a reverse program
8821         order walk.
8822
8823 2021-05-03  H.J. Lu  <hjl.tools@gmail.com>
8824
8825         PR bootstrap/99703
8826         * configure: Regenerated.
8827
8828 2021-05-03  Ilya Leoshkevich  <iii@linux.ibm.com>
8829
8830         PR target/100217
8831         * config/s390/s390.c (s390_hard_fp_reg_p): New function.
8832         (s390_md_asm_adjust): Handle hard registers.
8833
8834 2021-05-03  Jakub Jelinek  <jakub@redhat.com>
8835
8836         PR tree-optimization/100382
8837         * tree-ssa-dse.c: Include tree-eh.h.
8838         (dse_dom_walker::before_dom_children): Don't remove stmts if
8839         stmt_unremovable_because_of_non_call_eh_p is true.
8840
8841 2021-05-02  David Edelsohn  <dje.gcc@gmail.com>
8842
8843         * varasm.c (compute_reloc_for_var): Split out from...
8844         (get_variable_section): Use it.
8845         * output.h (compute_reloc_for_var): Declare.
8846         * config/rs6000/rs6000-protos.h
8847         (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to
8848         unsigned int.
8849         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix):
8850         Don't append storage mapping class to symbol.
8851         (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes.
8852         Don't convert TLS BSS to common.
8853         (rs6000_xcoff_unique_section): Don't fall back to select_secton.
8854         (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is
8855         bss_initializer.
8856         (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage
8857         mapping class.
8858         (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int.
8859         If align is 0 from TLS class, use the same rules as varasm.c
8860         If not common, switch to BSS section manually.
8861         If common, emit appropriate comm or lcomm directive.
8862         (rs6000_xcoff_encode_section_info): Add logic to append all
8863         storage mapping classes.
8864         (rs6000_asm_weaken_decl): Adjust for qualname symbols.
8865         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
8866         rs6000_xcoff_asm_output_aligned_decl_common.
8867         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
8868         rs6000_xcoff_asm_output_aligned_decl_common.
8869         (ASM_OUTPUT_TLS_COMMON): Use
8870         rs6000_xcoff_asm_output_aligned_decl_common.
8871
8872 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
8873
8874         PR target/100375
8875         * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0
8876         as first argument of pseudo_node_t constructors.
8877
8878 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
8879
8880         PR target/100336
8881         * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def.
8882
8883 2021-05-01  Aldy Hernandez  <aldyh@redhat.com>
8884
8885         * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove.
8886         (gt_pch_nx (int_range<1> *&)): New.
8887         (gt_ggc_mx (int_range<1> *&)): New.
8888         * value-range.h (class irange): Add GTY support for
8889         the base class.
8890
8891 2021-05-01  Geng Qi  <gengqi@linux.alibaba.com>
8892
8893         * doc/options.texi (Negative): Change either or to both and.
8894
8895 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
8896
8897         * config/aarch64/aarch64-simd-builtins.def: Add
8898         float_ml[as][q]_laneq builtin generator macros.
8899         * config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define.
8900         (aarch64_float_mla_laneq<mode>): Define.
8901         (aarch64_float_mls_laneq<mode>): Define.
8902         * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin
8903         instead of GCC vector extensions.
8904         (vmlaq_laneq_f32): Likewise.
8905         (vmls_laneq_f32): Likewise.
8906         (vmlsq_laneq_f32): Likewise.
8907
8908 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
8909
8910         * config/aarch64/aarch64-simd-builtins.def: Add
8911         float_ml[as]_lane builtin generator macros.
8912         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>):
8913         Rename to...
8914         (mul_lane<mode>3): This, and re-order arguments.
8915         (aarch64_float_mla_lane<mode>): Define.
8916         (aarch64_float_mls_lane<mode>): Define.
8917         * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin
8918         instead of GCC vector extensions.
8919         (vmlaq_lane_f32): Likewise.
8920         (vmls_lane_f32): Likewise.
8921         (vmlsq_lane_f32): Likewise.
8922
8923 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
8924
8925         * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as]
8926         builtin generator macros.
8927         * config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>):
8928         Define.
8929         (aarch64_float_mls<mode>): Define.
8930         * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin
8931         instead of relying on GCC vector extensions.
8932         (vmla_f64): Likewise.
8933         (vmlaq_f32): Likewise.
8934         (vmlaq_f64): Likewise.
8935         (vmls_f32): Likewise.
8936         (vmls_f64): Likewise.
8937         (vmlsq_f32): Likewise.
8938         (vmlsq_f64): Likewise.
8939         * config/aarch64/iterators.md: Define VDQF_DF mode iterator.
8940
8941 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
8942
8943         * config/aarch64/aarch64-simd-builtins.def: Add
8944         float_ml[as]_n_builtin generator macros.
8945         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>):
8946         Rename to...
8947         (mul_n<mode>3): This, and re-order arguments.
8948         (aarch64_float_mla_n<mode>): Define.
8949         (aarch64_float_mls_n<mode>): Define.
8950         * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin
8951         instead of inline asm.
8952         (vmlaq_n_f32): Likewise.
8953         (vmls_n_f32): Likewise.
8954         (vmlsq_n_f32): Likewise.
8955
8956 2021-04-30  Jonathan Wright  <joanthan.wright@arm.com>
8957
8958         * config/aarch64/aarch64-simd-builtins.def: Add pmull[2]
8959         builtin generator macros.
8960         * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define.
8961         (aarch64_pmull_hiv16qi_insn): Define.
8962         (aarch64_pmull_hiv16qi): Define.
8963         * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin
8964         instead of inline asm.
8965         (vmull_p8): Likewise.
8966
8967 2021-04-30  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
8968
8969         * config/avr/avr.md: Adjust peepholes to match and
8970         generate parallels with clobber of REG_CC.
8971         (mov<mode>_insn): Rename to mov<mode>_insn_split.
8972         (*mov<mode>_insn): Rename to mov<mode>_insn.
8973
8974 2021-04-30  David Edelsohn  <dje.gcc@gmail.com>
8975
8976         * varasm.c (use_blocks_for_decl_p): Don't use section anchors
8977         for VAR_DECLs if -fdata-sections enabled.
8978
8979 2021-04-30  Michael Meissner  <meissner@linux.ibm.com>
8980
8981         PR bootstrap/100327
8982         * config/rs6000/rs6000.c
8983         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
8984         (rs6000_libgcc_floating_mode_supported_p): New target hook.
8985
8986 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
8987
8988         * tree-ssa-threadbackward.c (class thread_jumps): Split out code
8989         from here...
8990         (class back_threader_registry): ...to here...
8991         (class back_threader_profitability): ...and here...
8992         (thread_jumps::thread_through_all_blocks): Remove argument.
8993         (back_threader_registry::back_threader_registry): New.
8994         (back_threader_registry::~back_threader_registry): New.
8995         (back_threader_registry::thread_through_all_blocks): New.
8996         (thread_jumps::profitable_jump_thread_path): Move from here...
8997         (back_threader_profitability::profitable_path_p): ...to here.
8998         (thread_jumps::find_taken_edge): New.
8999         (thread_jumps::convert_and_register_current_path): Move...
9000         (back_threader_registry::register_path): ...to here.
9001         (thread_jumps::register_jump_thread_path_if_profitable): Move...
9002         (thread_jumps::maybe_register_path): ...to here.
9003         (thread_jumps::handle_phi): Call find_taken_edge and
9004         maybe_register_path.
9005         (thread_jumps::handle_assignment): Same.
9006         (thread_jumps::fsm_find_control_statement_thread_paths): Remove
9007         tree argument to handle_phi and handle_assignment.
9008         (thread_jumps::find_jump_threads_backwards): Set m_name.  Remove
9009         set of m_speed_p and m_max_threaded_paths.
9010         (pass_thread_jumps::execute): Remove second argument from
9011         find_jump_threads_backwards.
9012         (pass_early_thread_jumps::execute): Same.
9013
9014 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
9015
9016         * tree-ssa-dom.c (class dom_jump_threader_simplifier): New.
9017         (class dom_opt_dom_walker): Initialize some class variables.
9018         (pass_dominator::execute): Pass evrp_range_analyzer and
9019         dom_jump_threader_simplifier to dom_opt_dom_walker.
9020         Adjust for some functions moving into classes.
9021         (simplify_stmt_for_jump_threading): Adjust and move to...
9022         (jump_threader_simplifier::simplify): ...here.
9023         (dom_opt_dom_walker::before_dom_children): Adjust for
9024         m_evrp_range_analyzer.
9025         (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack.
9026         (test_for_singularity): Place in dom_opt_dom_walker class.
9027         (dom_opt_dom_walker::optimize_stmt): The argument
9028         evrp_range_analyzer is now a class field.
9029         * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry.
9030         (thread_jumps::thread_through_all_blocks): New.
9031         (thread_jumps::convert_and_register_current_path): Use m_registry.
9032         (pass_thread_jumps::execute): Adjust for thread_through_all_blocks
9033         being in the threader class.
9034         (pass_early_thread_jumps::execute): Same.
9035         * tree-ssa-threadedge.c (threadedge_initialize_values): Move...
9036         (jump_threader::jump_threader): ...here.
9037         (threadedge_finalize_values): Move...
9038         (jump_threader::~jump_threader): ...here.
9039         (jump_threader::remove_jump_threads_including): New.
9040         (jump_threader::thread_through_all_blocks): New.
9041         (record_temporary_equivalences_from_phis): Move...
9042         (jump_threader::record_temporary_equivalences_from_phis): ...here.
9043         (record_temporary_equivalences_from_stmts_at_dest): Move...
9044         (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
9045         Here...
9046         (simplify_control_stmt_condition_1): Move to jump_threader class.
9047         (simplify_control_stmt_condition): Move...
9048         (jump_threader::simplify_control_stmt_condition): ...here.
9049         (thread_around_empty_blocks): Move...
9050         (jump_threader::thread_around_empty_blocks): ...here.
9051         (thread_through_normal_block): Move...
9052         (jump_threader::thread_through_normal_block): ...here.
9053         (thread_across_edge): Move...
9054         (jump_threader::thread_across_edge): ...here.
9055         (thread_outgoing_edges): Move...
9056         (jump_threader::thread_outgoing_edges): ...here.
9057         * tree-ssa-threadedge.h: Move externally facing functings...
9058         (class jump_threader): ...here...
9059         (class jump_threader_simplifier): ...and here.
9060         * tree-ssa-threadupdate.c (struct redirection_data): Remove comment.
9061         (jump_thread_path_allocator::jump_thread_path_allocator): New.
9062         (jump_thread_path_allocator::~jump_thread_path_allocator): New.
9063         (jump_thread_path_allocator::allocate_thread_edge): New.
9064         (jump_thread_path_allocator::allocate_thread_path): New.
9065         (jump_thread_path_registry::jump_thread_path_registry): New.
9066         (jump_thread_path_registry::~jump_thread_path_registry): New.
9067         (jump_thread_path_registry::allocate_thread_edge): New.
9068         (jump_thread_path_registry::allocate_thread_path): New.
9069         (dump_jump_thread_path): Make extern.
9070         (debug (const vec<jump_thread_edge *> &path)): New.
9071         (struct removed_edges): Move to tree-ssa-threadupdate.h.
9072         (struct thread_stats_d): Remove.
9073         (remove_ctrl_stmt_and_useless_edges): Make static.
9074         (lookup_redirection_data): Move...
9075         (jump_thread_path_registry::lookup_redirection_data): ...here.
9076         (ssa_redirect_edges): Make static.
9077         (thread_block_1): Move...
9078         (jump_thread_path_registry::thread_block_1): ...here.
9079         (thread_block): Move...
9080         (jump_thread_path_registry::thread_block): ...here.
9081         (thread_through_loop_header):  Move...
9082         (jump_thread_path_registry::thread_through_loop_header): ...here.
9083         (mark_threaded_blocks): Move...
9084         (jump_thread_path_registry::mark_threaded_blocks): ...here.
9085         (debug_path): Move...
9086         (jump_thread_path_registry::debug_path): ...here.
9087         (debug_all_paths): Move...
9088         (jump_thread_path_registry::dump): ..here.
9089         (rewire_first_differing_edge): Move...
9090         (jump_thread_path_registry::rewire_first_differing_edge): ...here.
9091         (adjust_paths_after_duplication): Move...
9092         (jump_thread_path_registry::adjust_paths_after_duplication): ...here.
9093         (duplicate_thread_path): Move...
9094         (jump_thread_path_registry::duplicate_thread_path): ..here.
9095         (remove_jump_threads_including): Move...
9096         (jump_thread_path_registry::remove_jump_threads_including): ...here.
9097         (thread_through_all_blocks): Move to...
9098         (jump_thread_path_registry::thread_through_all_blocks): ...here.
9099         (delete_jump_thread_path): Remove.
9100         (register_jump_thread): Move...
9101         (jump_thread_path_registry::register_jump_thread): ...here.
9102         * tree-ssa-threadupdate.h: Move externally facing functions...
9103         (class jump_thread_path_allocator): ...here...
9104         (class jump_thread_path_registry): ...and here.
9105         (thread_through_all_blocks): Remove.
9106         (struct removed_edges): New.
9107         (register_jump_thread): Remove.
9108         (remove_jump_threads_including): Remove.
9109         (delete_jump_thread_path): Remove.
9110         (remove_ctrl_stmt_and_useless_edges): Remove.
9111         (free_dom_edge_info): New prototype.
9112         * tree-vrp.c: Remove x_vr_values hack.
9113         (class vrp_jump_threader_simplifier): New.
9114         (vrp_jump_threader_simplifier::simplify): New.
9115         (vrp_jump_threader::vrp_jump_threader): Adjust method signature.
9116         Remove m_dummy_cond.
9117         Instantiate m_simplifier and m_threader.
9118         (vrp_jump_threader::thread_through_all_blocks): New.
9119         (vrp_jump_threader::simplify_stmt): Remove.
9120         (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond.
9121         Remove x_vr_values hack.
9122         (execute_vrp): Adjust for thread_through_all_blocks being in a
9123         class.
9124
9125 2021-04-30  Christophe Lyon  <christophe.lyon@linaro.org>
9126
9127         * genflags.c (gen_insn): Print failed expansion string.
9128
9129 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
9130
9131         * expr.c (alignment_for_piecewise_move): Call mode_for_size
9132         without limit to MAX_FIXED_MODE_SIZE.
9133
9134 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
9135
9136         PR middle-end/90773
9137         * builtins.c (builtin_memset_gen_str): Don't use return from
9138         simplify_gen_subreg.
9139
9140 2021-04-30  Uroš Bizjak  <ubizjak@gmail.com>
9141
9142         PR target/98060
9143         * config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern.
9144         (*addsi3_carry_zext_0r): Ditto.
9145         (*sub<mode>3_carry_0): Ditto.
9146         (*subsi3_carry_zext_0r): Ditto.
9147         * config/i386/predicates.md (ix86_carry_flag_unset_operator):
9148         New predicate.
9149         * config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>:
9150         Also consider ix86_carry_flag_unset_operator to calculate
9151         the cost of adc/sbb insn.
9152
9153 2021-04-30  Roman Zhuykov  <zhroma@ispras.ru>
9154
9155         PR rtl-optimization/100225
9156         PR rtl-optimization/84878
9157         * modulo-sched.c (sms_schedule): Use note_stores to skip loops
9158         where we have an instruction which touches (writes) any hard
9159         register from df->regular_block_artificial_uses set.
9160         Allow not-single-set instruction only right before basic block
9161         tail.
9162
9163 2021-04-30  Geng Qi  <gengqi@linux.alibaba.com>
9164
9165         * config/riscv/riscv.opt (march=,mabi=): Negative itself.
9166
9167 2021-04-30  LevyHsu  <admin@levyhsu.com>
9168
9169         * config/riscv/riscv.c (riscv_min_arithmetic_precision): New.
9170         * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New.
9171         * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New.
9172         (subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New.
9173
9174 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
9175
9176         * config.gcc: Merged x86 and x86_64 cpu_type-setting cases.
9177
9178 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
9179
9180         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to...
9181         (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this.  Enclose in do/while(0).
9182         * config/i386/i386.c: Adjust.
9183         * config/i386/i386.md: Adjust.
9184         * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop.
9185         * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9186         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9187         * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9188         * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9189         * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9190         * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9191         * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9192         * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9193         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9194         (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
9195
9196 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
9197
9198         * config/i386/i386-expand.c (ix86_expand_int_compare):
9199         Swap operands of GTU and LEU comparison to emit carry flag comparison.
9200         * config/i386/i386.md (*add<mode>3_carry_0): Change insn
9201         predicate to allow more combine opportunities with memory operands.
9202         (*sub<mode>3_carry_0): Ditto.
9203
9204 2021-04-29  Richard Sandiford  <richard.sandiford@arm.com>
9205
9206         PR rtl-optimization/100303
9207         * rtl-ssa/accesses.cc (function_info::make_use_available): Take a
9208         boolean that indicates whether the use will only be used in
9209         debug instructions.  Treat it in the same way that existing
9210         cross-EBB debug references would be handled if so.
9211         (function_info::make_uses_available): Likewise.
9212         * rtl-ssa/functions.h (function_info::make_uses_available): Update
9213         prototype accordingly.
9214         (function_info::make_uses_available): Likewise.
9215         * fwprop.c (try_fwprop_subst): Update call accordingly.
9216
9217 2021-04-29  Jeff Law  <jlaw@tachyum.com>
9218
9219         * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside
9220         of RTX_CODE guard.
9221
9222 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
9223             Richard Biener  <rguenther@suse.de>
9224
9225         PR target/100312
9226         * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD)
9227         (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256)
9228         (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD)
9229         (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256)
9230         (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS
9231         to PURE_ARGS category.
9232         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
9233         Handle PURE_ARGS category.
9234         * config/i386/i386-expand.c (ix86_expand_builtin): Ditto.
9235
9236 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9237
9238         * configure.ac: Check for the presence of sys/locking.h header and
9239         for whether _LK_LOCK is supported by _locking.
9240         * configure: Regenerate.
9241         * config.in: Likewise.
9242         * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK.
9243         * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING.
9244         * system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H.
9245
9246 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
9247
9248         * config/i386/predicates.md (fcmov_comparison_operator):
9249         Do not check for trivial FP comparison operator.
9250         <case GEU, case LTU>: Allow CCGZmode.
9251         <case GTU, case LEU>: Do not allow CCCmode.
9252         (ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode.
9253         (ix86_carry_flag_operator): Match only LTU and UNLT code.
9254         Do not check for trivial FP comparison operator.  Allow CCGZmode.
9255
9256 2021-04-29  Tom de Vries  <tdevries@suse.de>
9257
9258         * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of
9259         fd->loop.step by either step or orig_step.
9260
9261 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9262
9263         * config/sparc/sparc.c (gen_load_pcrel_sym): Delete.
9264         (load_got_register): Do the PIC dance here.
9265         (sparc_legitimize_tls_address): Simplify.
9266         (sparc_emit_probe_stack_range): Likewise.
9267         (sparc32_initialize_trampoline): Likewise.
9268         (sparc64_initialize_trampoline): Likewise.
9269         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker.
9270         (probe_stack_range<P:mode>): Likewise.
9271         (flush<P:mode>): Likewise.
9272         (tgd_hi22<P:mode>): Likewise.
9273         (tgd_lo10<P:mode>): Likewise.
9274         (tgd_add<P:mode>): Likewise.
9275         (tgd_call<P:mode>): Likewise.
9276         (tldm_hi22<P:mode>): Likewise.
9277         (tldm_lo10<P:mode>): Likewise.
9278         (tldm_add<P:mode>): Likewise.
9279         (tldm_call<P:mode>): Likewise.
9280         (tldo_hix22<P:mode>): Likewise.
9281         (tldo_lox10<P:mode>): Likewise.
9282         (tldo_add<P:mode>): Likewise.
9283         (tie_hi22<P:mode>): Likewise.
9284         (tie_lo10<P:mode>): Likewise.
9285         (tie_add<P:mode>): Likewise.
9286         (tle_hix22<P:mode>): Likewise.
9287         (tle_lox10<P:mode>): Likewise.
9288         (stack_protect_setsi): Rename to...
9289         (stack_protect_set32): ...this.
9290         (stack_protect_setdi): Rename to...
9291         (stack_protect_set64): ...this.
9292         (stack_protect_set): Adjust calls to above.
9293         (stack_protect_testsi): Rename to...
9294         (stack_protect_test32): ...this.
9295         (stack_protect_testdi): Rename to...
9296         (stack_protect_test64): ...this.
9297         (stack_protect_test): Adjust calls to above.
9298
9299 2021-04-29  H.J. Lu  <hjl.tools@gmail.com>
9300
9301         PR middle-end/90773
9302         * builtins.c (builtin_memcpy_read_str): Add a dummy argument.
9303         (builtin_strncpy_read_str): Likewise.
9304         (builtin_memset_read_str): Add an argument for the previous RTL
9305         information and generate the new RTL from the previous RTL info.
9306         (builtin_memset_gen_str): Likewise.
9307         * builtins.h (builtin_strncpy_read_str): Update the prototype.
9308         (builtin_memset_read_str): Likewise.
9309         * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p()
9310         returns true, round up size and alignment to the widest integer
9311         mode for maximum size.
9312         (pieces_addr::adjust): Add a pointer to by_pieces_prev argument
9313         and pass it to m_constfn.
9314         (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces.
9315         (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
9316         initialize m_push.  Initialize m_overlap_op_by_pieces with
9317         targetm.overlap_op_by_pieces_p ().
9318         (op_by_pieces_d::run): Pass the previous RTL information to
9319         pieces_addr::adjust and generate overlapping operations if
9320         m_overlap_op_by_pieces is true.
9321         (PUSHG_P): New.
9322         (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d
9323         change.
9324         (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d
9325         change.
9326         (can_store_by_pieces): Use by_pieces_constfn on constfun.
9327         (store_by_pieces): Use by_pieces_constfn on constfun.  Updated
9328         for op_by_pieces_d change.
9329         (clear_by_pieces_1): Add a dummy argument.
9330         (clear_by_pieces): Updated for op_by_pieces_d change.
9331         (compare_by_pieces_d::compare_by_pieces_d): Likewise.
9332         (string_cst_read_str): Add a dummy argument.
9333         * expr.h (by_pieces_constfn): Add a dummy argument.
9334         (by_pieces_prev): New.
9335         * target.def (overlap_op_by_pieces_p): New target hook.
9336         * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New.
9337         * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P.
9338         * doc/tm.texi: Regenerated.
9339
9340 2021-04-29  Richard Biener  <rguenther@suse.de>
9341
9342         PR tree-optimization/100253
9343         * tree-vect-stmts.c (vectorizable_load): Do not assume
9344         element alignment when DR_MISALIGNMENT is -1.
9345         (vectorizable_store): Likewise.
9346
9347 2021-04-29  Jakub Jelinek  <jakub@redhat.com>
9348
9349         PR target/100302
9350         * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
9351         absu_hwi instead of abs_hwi.
9352
9353 2021-04-29  Richard Biener  <rguenther@suse.de>
9354
9355         PR middle-end/38474
9356         * tree-ssa-structalias.c (add_graph_edge): Avoid direct
9357         forwarding when indirect forwarding through ESCAPED
9358         alread happens.
9359
9360 2021-04-29  Tom de Vries  <tdevries@suse.de>
9361
9362         PR target/100232
9363         * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC)
9364         (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED)
9365         (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY)
9366         (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to.
9367
9368 2021-04-29  Richard Biener  <rguenther@suse.de>
9369
9370         PR tree-optimization/99912
9371         * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New.
9372         (dse_dom_walker::todo): Likewise.
9373         (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the
9374         caller.
9375         (dse_dom_walker::before_dom_children): Remove trivially
9376         dead SSA defs and schedule CFG cleanup if we removed all
9377         PHIs in a block.
9378         (pass_dse::execute): Get TODO as computed by the DOM walker
9379         and return it.  Wipe dominator info earlier.
9380
9381 2021-04-29  Richard Biener  <rguenther@suse.de>
9382
9383         PR ipa/100308
9384         * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children):
9385         Track blocks to cleanup EH in new m_need_eh_cleanup.
9386         (ipcp_modif_dom_walker::cleanup_eh): New.
9387         (ipcp_transform_function): Release dominator info before
9388         doing EH cleanup.
9389
9390 2021-04-29  Martin Sebor  <msebor@redhat.com>
9391
9392         PR middle-end/100250
9393         * attribs.c (attr_access::array_as_string): Avoid dereferencing
9394         a pointer when it's null.
9395
9396 2021-04-29  Martin Sebor  <msebor@redhat.com>
9397
9398         * Makefile.in (OBJS): Add ipa-free-lang-data.o.
9399         * ipa-free-lang-data.cc: New file.
9400         * tree.c: Move pass free_lang_data to file above.
9401          (build_array_type_1): Declare extern.
9402         * tree.h (build_array_type_1): Declare.
9403
9404 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9405
9406         * config/aarch64/aarch64-simd-builtins.def: Modify comment to
9407         make consistent with updated RTL pattern.
9408         * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>):
9409         Implement using ss_truncate and us_truncate rather than
9410         unspecs.
9411         * config/aarch64/iterators.md: Remove redundant unspecs and
9412         iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.
9413
9414 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9415
9416         * config/aarch64/arm_acle.h (__attribute__): Make intrinsic
9417         attributes consistent with those defined in arm_neon.h.
9418
9419 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9420
9421         * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic
9422         attributes consistent with those defined in arm_neon.h.
9423
9424 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9425
9426         * config/aarch64/aarch64-simd-builtins.def: Add
9427         float_trunc_rodd builtin generator macros.
9428         * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df):
9429         Define.
9430         (aarch64_float_trunc_rodd_lo_v2sf): Define.
9431         (aarch64_float_trunc_rodd_hi_v4sf_le): Define.
9432         (aarch64_float_trunc_rodd_hi_v4sf_be): Define.
9433         (aarch64_float_trunc_rodd_hi_v4sf): Define.
9434         * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin
9435         instead of inline asm.
9436         (vcvtx_high_f32_f64): Likewise.
9437         (vcvtxd_f32_f64): Likewise.
9438         * config/aarch64/iterators.md: Add FCVTXN unspec.
9439
9440 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9441
9442         * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin
9443         generator macros.
9444         * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>):
9445         Define.
9446         * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin
9447         instead of inline asm.
9448         (vqtbx1_u8): Likewise.
9449         (vqtbx1_p8): Likewise.
9450         (vqtbx1q_s8): Likewise.
9451         (vqtbx1q_u8): Likewise.
9452         (vqtbx1q_p8): Likewise.
9453         (vtbx2_s8): Likewise.
9454         (vtbx2_u8): Likewise.
9455         (vtbx2_p8): Likewise.
9456
9457 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9458
9459         * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin
9460         generator macros.
9461         * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin
9462         instead of inline asm.
9463         (vqtbl1_s8): Likewise.
9464         (vqtbl1_u8): Likewise.
9465         (vqtbl1q_p8): Likewise.
9466         (vqtbl1q_s8): Likewise.
9467         (vqtbl1q_u8): Likewise.
9468         (vtbl1_s8): Likewise.
9469         (vtbl1_u8): Likewise.
9470         (vtbl1_p8): Likewise.
9471         (vtbl2_s8): Likewise.
9472         (vtbl2_u8): Likewise.
9473         (vtbl2_p8): Likewise.
9474
9475 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9476
9477         * config/aarch64/aarch64-simd-builtins.def: Add polynomial
9478         ssri_n buitin generator macro.
9479         * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin
9480         instead of inline asm.
9481         (vsri_n_p16): Likewise.
9482         (vsri_n_p64): Likewise.
9483         (vsriq_n_p8): Likewise.
9484         (vsriq_n_p16): Likewise.
9485         (vsriq_n_p64): Likewise.
9486
9487 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9488
9489         * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode
9490         iterator for polynomial ssli_n builtin generator macro.
9491         * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin
9492         instead of inline asm.
9493         (vsli_n_p16): Likewise.
9494         (vsliq_n_p8): Likewise.
9495         (vsliq_n_p16): Likewise.
9496         * config/aarch64/iterators.md: Define VALLP mode iterator.
9497
9498 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9499
9500         * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L
9501         iterator to generate [su]adalp RTL builtins.
9502         * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in
9503         [su]adalp RTL pattern.
9504         * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin
9505         instead of inline asm.
9506         (vpadal_u32): Likewise.
9507
9508 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9509
9510         * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp
9511         builtin generator macros.
9512         * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>):
9513         Define.
9514         * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin
9515         instead of inline asm.
9516         (vpaddl_s16): Likewise.
9517         (vpaddl_s32): Likewise.
9518         (vpaddl_u8): Likewise.
9519         (vpaddl_u16): Likewise.
9520         (vpaddl_u32): Likewise.
9521         (vpaddlq_s8): Likewise.
9522         (vpaddlq_s16): Likewise.
9523         (vpaddlq_s32): Likewise.
9524         (vpaddlq_u8): Likewise.
9525         (vpaddlq_u16): Likewise.
9526         (vpaddlq_u32): Liwewise.
9527         * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with
9528         appropriate attributes.
9529
9530 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9531
9532         * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator
9533         for aarch64_addp<mode> builtin macro generator.
9534         * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in
9535         aarch64_addp<mode> RTL pattern.
9536         * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin
9537         instead of inline asm.
9538         (vpaddq_s16): Likewise.
9539         (vpaddq_s32): Likewise.
9540         (vpaddq_s64): Likewise.
9541         (vpaddq_u8): Likewise.
9542         (vpaddq_u16): Likewise.
9543         (vpaddq_u32): Likewise.
9544         (vpaddq_u64): Likewise.
9545
9546 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
9547
9548         * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n
9549         builtin generator macros.
9550         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>):
9551         Define.
9552         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin
9553         instead of inline asm.
9554         (vqdmulh_n_s32): Likewise.
9555         (vqdmulhq_n_s16): Likewise.
9556         (vqdmulhq_n_s32): Likewise.
9557         (vqrdmulh_n_s16): Likewise.
9558         (vqrdmulh_n_s32): Likewise.
9559         (vqrdmulhq_n_s16): Likewise.
9560         (vqrdmulhq_n_s32): Likewise.
9561
9562 2021-04-28  Tobias Burnus  <tobias@codesourcery.com>
9563
9564         * doc/install.texi (--enable-offload-defaulted): Document.
9565
9566 2021-04-28  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
9567
9568         * config/avr/avr-dimode.md: Turn existing patterns into
9569         define_insn_and_split style patterns where the splitter
9570         adds a clobber of the condition code register.  Drop "cc"
9571         attribute.  Add new patterns to match output of
9572         the splitters.
9573         * config/avr/avr-fixed.md: Likewise.
9574         * config/avr/avr.c (cc_reg_rtx): New.
9575         (avr_parallel_insn_from_insns): Adjust insn count
9576         for removal of set of cc0.
9577         (avr_is_casesi_sequence): Likewise.
9578         (avr_casei_sequence_check_operands): Likewise.
9579         (avr_optimize_casesi): Likewise. Also insert
9580         new insns after jump_insn.
9581         (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust
9582         for removal of set of cc0.
9583         (avr_init_expanders): Initialize cc_reg_rtx.
9584         (avr_regno_reg_class): Handle REG_CC.
9585         (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE.
9586         (avr_notice_update_cc): Remove function.
9587         (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE.
9588         (compare_condition): Adjust for PARALLEL with
9589         REG_CC clobber.
9590         (out_shift_with_cnt): Likewise.
9591         (ashlhi3_out): Likewise.
9592         (ashrhi3_out): Likewise.
9593         (lshrhi3_out): Likewise.
9594         (avr_class_max_nregs): Return single reg for REG_CC.
9595         (avr_compare_pattern): Check for REG_CC instead
9596         of cc0_rtx.
9597         (avr_reorg_remove_redundant_compare): Likewise.
9598         (avr_reorg):Adjust for PARALLEL with REG_CC clobber.
9599         (avr_hard_regno_nregs): Return single reg for REG_CC.
9600         (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC.
9601         (avr_md_asm_adjust): Clobber REG_CC.
9602         (TARGET_HARD_REGNO_NREGS): Define.
9603         (TARGET_CLASS_MAX_NREGS): Define.
9604         (TARGET_MD_ASM_ADJUST): Define.
9605         * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust
9606         for REG_CC.
9607         (enum reg_class): Add CC_REG class.
9608         (NOTICE_UPDATE_CC): Remove.
9609         (CC_OVERFLOW_UNUSABLE): Remove.
9610         (CC_NO_CARRY): Remove.
9611         * config/avr/avr.md: Turn existing patterns into
9612         define_insn_and_split style patterns where the splitter
9613         adds a clobber of the condition code register.  Drop "cc"
9614         attribute.  Add new patterns to match output of
9615         the splitters.
9616         (sez): Remove unused pattern.
9617
9618 2021-04-28  Richard Earnshaw  <rearnsha@arm.com>
9619
9620         PR target/100311
9621         * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
9622         used in HImode.
9623
9624 2021-04-28  Richard Sandiford  <richard.sandiford@arm.com>
9625
9626         PR target/100305
9627         * config/aarch64/constraints.md (Utq): Require the address to
9628         be valid for both the element mode and for V2DImode.
9629
9630 2021-04-28  Jakub Jelinek  <jakub@redhat.com>
9631             Tobias Burnus  <tobias@codesourcery.com>
9632
9633         * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
9634         * gcc.c (process_command): New variable.
9635         (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED,
9636         set it if -foffload is defaulted.
9637         * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
9638         (compile_offload_image): If OFFLOAD_DEFAULTED and
9639         OFFLOAD_TARGET_DEFAULT is in the environment, don't fail
9640         if corresponding mkoffload can't be found.
9641         (compile_images_for_offload_targets): Likewise.  Free and clear
9642         offload_names if no valid offload is found.
9643         * config.in: Regenerate.
9644         * configure: Regenerate.
9645
9646 2021-04-28  Richard Biener  <rguenther@suse.de>
9647
9648         PR tree-optimization/100292
9649         * tree-vect-generic.c (expand_vector_condition): Do not fold
9650         the comparisons.
9651
9652 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
9653
9654         * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
9655         * config/rs6000/aix64.opt (m64): New.
9656         (m32): New.
9657
9658 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
9659
9660         * config/vax/vax.c (print_operand_address, vax_address_cost_1)
9661         (index_term_p): Handle ASHIFT too.
9662
9663 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
9664
9665         * config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3.
9666         (sync_lock_test_and_set<mode>): Adjust accordingly.
9667         (sync_lock_release<mode>): Likewise.
9668
9669 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
9670
9671         * config/vax/vax-protos.h (adjacent_operands_p): Remove
9672         prototype.
9673         * config/vax/vax.c (adjacent_operands_p): Remove.
9674
9675 2021-04-27  Maciej W. Rozycki  <macro@linux-mips.org>
9676
9677         * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall
9678         through to the non-conditional execution case if getting the
9679         condition for conditional execution has failed.
9680
9681 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
9682
9683         PR middle-end/100284
9684         * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test.
9685         * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather
9686         than asserting on it.
9687
9688 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
9689
9690         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect
9691         with TARGET_AIX_OS.
9692
9693 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
9694
9695         PR target/94177
9696         * calls.c (precompute_register_parameters): Additionally test
9697         targetm.precompute_tls_p to pre-compute argument.
9698         * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define.
9699         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New.
9700         * target.def (precompute_tls_p): New.
9701         * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation.
9702         * doc/tm.texi: Regenerated.
9703
9704 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
9705
9706         PR target/100200
9707         * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL
9708         back to HOST_WIDE_INT.
9709
9710 2021-04-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9711
9712         PR target/100106
9713         * simplify-rtx.c (simplify_context::simplify_subreg): Check the
9714         memory alignment for the outer mode.
9715
9716 2021-04-27  H.J. Lu  <hjl.tools@gmail.com>
9717
9718         PR middle-end/90773
9719         * expr.c (op_by_pieces_d::get_usable_mode): New member function.
9720         (op_by_pieces_d::run): Cange a while loop to a do-while loop.
9721
9722 2021-04-27  Alex Coplan  <alex.coplan@arm.com>
9723
9724         PR target/99977
9725         * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen
9726         with negative immediates: ensure we expand cbranchsi4_scratch
9727         correctly and ensure we satisfy its constraints.
9728         * config/arm/sync.md
9729         (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't
9730         attempt to tie two output operands together with constraints;
9731         collapse two alternatives.
9732         (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
9733         * config/arm/thumb1.md (cbranchsi4_neg_late): New.
9734
9735 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
9736
9737         PR target/100200
9738         * config/aarch64/predicates.md (aarch64_sub_immediate,
9739         aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL.
9740         * config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise.
9741         * config/aarch64/aarch64.c (aarch64_print_operand,
9742         aarch64_split_atomic_op, aarch64_expand_subvti): Likewise.
9743
9744 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
9745
9746         PR tree-optimization/100239
9747         * tree-vect-generic.c (lower_vec_perm): Don't accept constant
9748         permutations with all indices from the first zero element as vec_shl.
9749
9750 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
9751
9752         PR rtl-optimization/100254
9753         * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
9754         last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.
9755
9756 2021-04-27  Richard Biener  <rguenther@suse.de>
9757
9758         PR tree-optimization/99912
9759         * passes.def: Add comment about new TODO_remove_unused_locals.
9760         * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals
9761         at start.
9762
9763 2021-04-27  Richard Biener  <rguenther@suse.de>
9764
9765         PR tree-optimization/99912
9766         * passes.def (pass_all_optimizations): Add pass_dse before
9767         the first pass_dce, move the first pass_dse before the
9768         pass_dce following pass_pre.
9769
9770 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
9771
9772         PR tree-optimization/95527
9773         * generic-match-head.c: Include tm.h.
9774         * gimple-match-head.c: Include tm.h.
9775         * match.pd (CLZ == INTEGER_CST): Don't use
9776         #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO
9777         if clz == CFN_CLZ.  Add missing val declaration.
9778         (CTZ cmp CST): New simplifications.
9779
9780 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
9781
9782         PR tree-optimization/96696
9783         * expr.c (expand_expr_divmod): New function.
9784         (expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and
9785         divisions.  Formatting fixes.
9786         <case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is
9787         cheaper.
9788
9789 2021-04-27  Martin Jambor  <mjambor@suse.cz>
9790
9791         PR ipa/99951
9792         * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
9793         If removing a call statement LHS SSA name, release it.
9794
9795 2021-04-27  Richard Earnshaw  <rearnsha@arm.com>
9796
9797         PR target/100236
9798         * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM
9799         is valid before including it in the mask.
9800
9801 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
9802
9803         PR target/100270
9804         * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle
9805         SVE attributes.
9806
9807 2021-04-27  Richard Biener  <rguenther@suse.de>
9808
9809         PR tree-optimization/100051
9810         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add
9811         disambiguator based on access size vs. decl size.
9812
9813 2021-04-27  Richard Biener  <rguenther@suse.de>
9814
9815         PR tree-optimization/100278
9816         * tree-ssa-pre.c (compute_avail): Give up when we cannot
9817         adjust TBAA beacuse of mismatching bases.
9818
9819 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
9820
9821         PR target/99405
9822         * config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1):
9823         For any_rotate define_insn_split and following splitters, use
9824         SWI iterator instead of SWI48.
9825
9826 2021-04-27  Richard Biener  <rguenther@suse.de>
9827
9828         PR tree-optimization/99776
9829         * match.pd (bit_field_ref (ctor)): Relax element extract
9830         type compatibility checks.
9831
9832 2021-04-27  Cui,Lili  <lili.cui@intel.com>
9833
9834         * common/config/i386/i386-common.c (processor_names):
9835         Sync processor_names with processor_type.
9836         * config/i386/i386-options.c (processor_cost_table):
9837         Sync processor_cost_table with processor_type.
9838
9839 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
9840
9841         * value-range.cc (irange::irange_set_1bit_anti_range): Add assert.
9842         (irange::set): Call irange_set_1bit_anti_range for handling all
9843         1-bit ranges.  Fall through on ~[MIN,MAX].
9844
9845 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
9846
9847         * value-range.cc (irange::legacy_num_pairs): Remove.
9848         (irange::invert): Change gcc_assert to gcc_checking_assert.
9849         * value-range.h (irange::num_pairs): Adjust for a cached
9850         num_pairs().  Also, rename all gcc_assert's to
9851         gcc_checking_assert's.
9852
9853 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
9854
9855         * value-range.cc (irange::operator=): Set m_kind.
9856         (irange::copy_to_legacy): Handle varying and undefined sources
9857         as a legacy copy since they can be easily copied.
9858         (irange::irange_set): Set m_kind.
9859         (irange::irange_set_anti_range): Same.
9860         (irange::set): Rename normalize_min_max to normalize_kind.
9861         (irange::verify_range): Adjust for multi-ranges having the
9862         m_kind field set.
9863         (irange::irange_union): Set m_kind.
9864         (irange::irange_intersect): Same.
9865         (irange::invert): Same.
9866         * value-range.h (irange::kind): Always return m_kind.
9867         (irange::varying_p): Rename to...
9868         (irange::varying_comptaible_p): ...this.
9869         (irange::undefined_p): Only look at m_kind.
9870         (irange::irange): Always set VR_UNDEFINED if applicable.
9871         (irange::set_undefined): Always set VR_UNDEFINED.
9872         (irange::set_varying): Always set m_kind to VR_VARYING.
9873         (irange::normalize_min_max): Rename to...
9874         (irange::normalize_kind): ...this.
9875
9876 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
9877
9878         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
9879         Adjust for constant_p including varying_p.
9880         * tree-vrp.c (vrp_prop::finalize): Same.
9881         (determine_value_range): Same.
9882         * vr-values.c (vr_values::range_of_expr): Same.
9883         * value-range.cc (irange::symbolic_p): Do not check varying_p.
9884         (irange::constant_p): Same.
9885
9886 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
9887
9888         * value-range.cc (irange::legacy_lower_bound): Replace
9889           !undefined_p check with num_ranges > 0.
9890         (irange::legacy_upper_bound): Same.
9891         * value-range.h (irange::type): Same.
9892         (irange::lower_bound): Same.
9893         (irange::upper_bound): Same.
9894
9895 2021-04-26  Richard Biener  <rguenther@suse.de>
9896
9897         PR tree-optimization/99956
9898         * gimple-loop-interchange.cc (compute_access_stride):
9899         Try instantiating the access in a shallower loop nest
9900         if instantiating failed.
9901         (compute_access_strides): Pass adjustable loop_nest
9902         to compute_access_stride.
9903
9904 2021-04-26  Christophe Lyon  <christophe.lyon@linaro.org>
9905
9906         * doc/sourcebuild.texi (arm_cmse_hw): Document.
9907
9908 2021-04-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9909
9910         * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF.
9911
9912 2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
9913             Nathan Sidwell  <nathan@codesourcery.com>
9914             Tom de Vries  <vries@codesourcery.com>
9915             Julian Brown  <julian@codesourcery.com>
9916             Kwok Cheung Yeung  <kcy@codesourcery.com>
9917
9918         * omp-offload.c (oacc_validate_dims): Implement
9919         '-Wopenacc-parallelism'.
9920         * doc/invoke.texi (-Wopenacc-parallelism): Document.
9921
9922 2021-04-26  Richard Biener  <rguenther@suse.de>
9923
9924         * tree-cfg.h (gimplify_build1): Remove.
9925         (gimplify_build2): Likewise.
9926         (gimplify_build3): Likewise.
9927         * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c.
9928         (gimplify_build2): Likewise.
9929         (gimplify_build3): Likewise.
9930         * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c.
9931         Modernize.
9932         (gimplify_build2): Likewise.
9933         (gimplify_build3): Likewise.
9934         (tree_vec_extract): Use resimplify with following SSA edges.
9935         (expand_vector_parallel): Avoid passing NULL size/bitpos
9936         to tree_vec_extract.
9937         * expr.c (store_constructor): Deal with zero-element CTORs.
9938         * match.pd (bit_field_ref <vector CTOR>): Make sure to
9939         produce vector constants when possible.
9940
9941 2021-04-26  Richard Biener  <rguenther@suse.de>
9942
9943         * tree-complex.c: Include gimple-fold.h.
9944         (expand_complex_addition): Use gimple_build.
9945         (expand_complex_multiplication_components): Likewise.
9946         (expand_complex_multiplication): Likewise.
9947         (expand_complex_div_straight): Likewise.
9948         (expand_complex_div_wide): Likewise.
9949         (expand_complex_division): Likewise.
9950         (expand_complex_conjugate): Likewise.
9951         (expand_complex_comparison): Likewise.
9952
9953 2021-04-26  Richard Biener  <rguenther@suse.de>
9954
9955         * tree-ssa-phiopt.c (two_value_replacement): Remove use
9956         of legacy gimplify_buildN API.
9957
9958 2021-04-26  Richard Biener  <rguenther@suse.de>
9959
9960         PR tree-optimization/99473
9961         * tree-ssa-phiopt.c (cond_store_replacement): Handle all
9962         stores.
9963
9964 2021-04-26  Richard Biener  <rguenther@suse.de>
9965
9966         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin):
9967         Use replace_call_with_value.
9968
9969 2021-04-26  Richard Biener  <rguenther@suse.de>
9970
9971         * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove.
9972         (update_gimple_call): Likewise.
9973         (update_call_from_tree): Likewise.
9974         * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove.
9975         (valid_gimple_call_p): Likewise.
9976         (move_ssa_defining_stmt_for_defs): Likewise.
9977         (finish_update_gimple_call): Likewise.
9978         (update_gimple_call): Likewise.
9979         (update_call_from_tree): Likewise.
9980         (propagate_tree_value_into_stmt): Use replace_call_with_value.
9981         * gimple-fold.h (update_gimple_call): Declare.
9982         * gimple-fold.c (valid_gimple_rhs_p): Move here from
9983         tree-ssa-propagate.c.
9984         (update_gimple_call): Likewise.
9985         (valid_gimple_call_p): Likewise.
9986         (finish_update_gimple_call): Likewise, and simplify.
9987         (gimplify_and_update_call_from_tree): Implement
9988         update_call_from_tree functionality, avoid excessive
9989         push/pop_gimplify_context.
9990         (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree.
9991         (gimple_fold_call): Likewise.
9992         * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise.
9993         * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise.
9994         (pass_fold_builtins::execute): Likewise.
9995         (optimize_stack_restore): Use replace_call_with_value.
9996         * tree-cfg.c (fold_loop_internal_call): Likewise.
9997         * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use
9998         only gimplify_and_update_call_from_tree.
9999         * tree-ssa-strlen.c (handle_builtin_strlen): Likewise.
10000         (handle_builtin_strchr): Likewise.
10001         * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h.
10002
10003 2021-04-26  Jakub Jelinek  <jakub@redhat.com>
10004
10005         PR debug/100255
10006         * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
10007         vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
10008         register keywords.
10009
10010 2021-04-25  liuhongt  <hongtao.liu@intel.com>
10011
10012         PR target/98911
10013         * config/i386/i386-builtin.def (BDESC): Change the icode of
10014         the following builtins to CODE_FOR_nothing.
10015         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold
10016         IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128,
10017         IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ,
10018         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
10019         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
10020         IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128,
10021         IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ,
10022         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
10023         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256.
10024         * config/i386/sse.md (avx2_eq<mode>3): Deleted.
10025         (sse2_eq<mode>3): Ditto.
10026         (sse4_1_eqv2di3): Ditto.
10027         (sse2_gt<mode>3): Rename to ..
10028         (*sse2_gt<mode>3): .. this.
10029
10030 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
10031
10032         Revert:
10033         2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
10034
10035         PR target/100152
10036         * config/darwin.c (darwin_binds_local_p): Assume that any
10037         public symbol might be interposed for PIC code. Update function
10038         header comment to reflect current Darwin capability.
10039
10040 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
10041
10042         PR target/100152
10043         * config/darwin.c (darwin_binds_local_p): Assume that any
10044         public symbol might be interposed for PIC code. Update function
10045         header comment to reflect current Darwin capability.
10046
10047 2021-04-24  Richard Sandiford  <richard.sandiford@arm.com>
10048
10049         * doc/sourcebuild.texi: Document no-opts and any-opts target
10050         selectors.
10051
10052 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
10053
10054         * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.
10055
10056 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
10057
10058         * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.
10059
10060 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
10061
10062         PR target/100041
10063         * config/i386/i386-options.c (ix86_option_override_internal):
10064         Error out when -m96bit-long-double is used with 64bit targets.
10065         * config/i386/i386.md (*pushxf_rounded): Remove pattern.
10066
10067 2021-04-23  Martin Liska  <mliska@suse.cz>
10068
10069         * lto-wrapper.c: Remove FIXME about usage of
10070         hardware_concurrency. The function is not on par with
10071         what we have now.
10072
10073 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
10074
10075         PR target/100182
10076         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
10077         Copy operand 3 to operand 4.  Use sse_reg_operand
10078         as operand 3 predicate.
10079         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
10080         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
10081         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
10082         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
10083         Copy operand 1 to operand 0.
10084         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
10085         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
10086         (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.
10087
10088 2021-04-23  Alex Coplan  <alex.coplan@arm.com>
10089
10090         PR rtl-optimization/100230
10091         * early-remat.c (early_remat::sort_candidates): Use delete[]
10092         instead of delete for array allocated with new[].
10093
10094 2021-04-23  Richard Biener  <rguenther@suse.de>
10095
10096         * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing.
10097         (capture_info::capture_info): Likewise.
10098         (capture_info::walk_match): Likewise.
10099         (expr::gen_transform): Likewise.
10100         (dt_simplify::gen_1): Likewise.
10101         * gimple-match-head.c (maybe_resimplify_conditional_op):
10102         Remove VEC_COND_EXPR special-casing.
10103         (gimple_simplify): Likewise.
10104         * gimple.c (gimple_could_trap_p_1): Adjust.
10105         * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR
10106         to participate in PRE.
10107
10108 2021-04-23  Richard Biener  <rguenther@suse.de>
10109
10110         * cfganal.c (connect_infinite_loops_to_exit): First call
10111         add_noreturn_fake_exit_edges.
10112         * ipa-sra.c (process_scan_results): Do not call the now redundant
10113         add_noreturn_fake_exit_edges.
10114         * predict.c (tree_estimate_probability): Likewise.
10115         (rebuild_frequencies): Likewise.
10116         * store-motion.c (one_store_motion_pass): Likewise.
10117
10118 2021-04-23  Richard Biener  <rguenther@suse.de>
10119
10120         PR tree-optimization/100222
10121         * predict.c (pass_profile::execute): Remove redundant call to
10122         mark_irreducible_loops.
10123         (report_predictor_hitrates): Likewise.
10124
10125 2021-04-23  Richard Biener  <rguenther@suse.de>
10126
10127         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
10128         valid_gimple_rhs_p by instead gimplifying to one.
10129
10130 2021-04-23  Richard Biener  <rguenther@suse.de>
10131
10132         PR tree-optimization/99971
10133         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
10134         Always use TBAA for loads.
10135
10136 2021-04-23  liuhongt  <hongtao.liu@intel.com>
10137
10138         PR target/100093
10139         * config/i386/i386-options.c (ix86_option_override_internal):
10140         Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags
10141         when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled
10142         by target attribute.
10143
10144 2021-04-23  David Edelsohn  <dje.gcc@gmail.com>
10145
10146         * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to
10147         DWARF2_DEBUG.
10148         * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same.
10149
10150 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
10151
10152         * config.gcc (powerpc-ibm-aix6.*): Remove.
10153         * config/rs6000/aix61.h: Delete.
10154
10155 2021-04-22  Martin Liska  <mliska@suse.cz>
10156
10157         PR testsuite/100159
10158         PR testsuite/100192
10159         * builtins.c (expand_builtin): Fix typos and missing comments.
10160         * dwarf2out.c (gen_subprogram_die): Likewise.
10161         (gen_struct_or_union_type_die): Likewise.
10162
10163 2021-04-22  Uroš Bizjak  <ubizjak@gmail.com>
10164
10165         PR target/100119
10166         * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse):
10167         Remove the sign with FE_DOWNWARD, where x - x = -0.0.
10168
10169 2021-04-21  Iain Sandoe  <iain@sandoe.co.uk>
10170
10171         * config/i386/darwin.h (TARGET_64BIT): Remove definition
10172         based on TARGET_ISA_64BIT.
10173         (TARGET_64BIT_P): Remove definition based on
10174         TARGET_ISA_64BIT_P().
10175
10176 2021-04-21  Martin Liska  <mliska@suse.cz>
10177
10178         Revert:
10179         2021-04-21  Martin Liska  <mliska@suse.cz>
10180
10181         * lto-wrapper.c (cpuset_popcount): Remove.
10182         (init_num_threads): Remove and use hardware_concurrency.
10183
10184 2021-04-21  Martin Liska  <mliska@suse.cz>
10185
10186         PR jit/98615
10187         * main.c (main): Call toplev::finalize in CHECKING_P mode.
10188         * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL
10189         when incremental LTO linking happens.
10190
10191 2021-04-21  Martin Liska  <mliska@suse.cz>
10192
10193         * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the
10194         makeserver cannot be detected, then use -flto=N fallback.
10195
10196 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
10197
10198         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling,
10199         default to yes for aarch64-linux-gnu.
10200         * configure: Regenerate.
10201
10202 2021-04-21  Martin Liska  <mliska@suse.cz>
10203
10204         * lto-wrapper.c (cpuset_popcount): Remove.
10205         (init_num_threads): Remove and use hardware_concurrency.
10206
10207 2021-04-21  Martin Liska  <mliska@suse.cz>
10208
10209         * config/i386/i386.c: Remove superfluous || TARGET_MACHO
10210         which remains to be '(... || 0)' and clang complains about it.
10211         * dwarf2out.c (AT_vms_delta): Declare conditionally.
10212         (add_AT_vms_delta): Likewise.
10213         * tree.c (fld_simplified_type): Use rather more common pattern
10214         for disabling of something (#if 0).
10215         (get_tree_code_name): Likewise.
10216         (verify_type_variant): Likewise.
10217
10218 2021-04-21  Martin Liska  <mliska@suse.cz>
10219
10220         * config/i386/i386-expand.c (decide_alignment): Use newly named
10221         macro TARGET_CPU_P.
10222         * config/i386/i386.c (ix86_decompose_address): Likewise.
10223         (ix86_address_cost): Likewise.
10224         (ix86_lea_outperforms): Likewise.
10225         (ix86_avoid_lea_for_addr): Likewise.
10226         (ix86_add_stmt_cost): Likewise.
10227         * config/i386/i386.h (TARGET_*): Remove.
10228         (TARGET_CPU_P): New macro.
10229         * config/i386/i386.md: Use newly named macro TARGET_CPU_P.
10230         * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise.
10231         (swap_top_of_ready_list): Likewise.
10232         (ix86_atom_sched_reorder): Likewise.
10233         * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise.
10234         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise.
10235
10236 2021-04-21  Martin Liska  <mliska@suse.cz>
10237
10238         * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P):
10239         Define.
10240         (SET_TARGET_NO_SAHF): Likewise.
10241         (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise.
10242         (SET_TARGET_PREFETCH_SSE): Likewise.
10243         (TARGET_EXPLICIT_NO_TUNE_P): Likewise.
10244         (SET_TARGET_NO_TUNE): Likewise.
10245         (TARGET_EXPLICIT_NO_80387_P): Likewise.
10246         (SET_TARGET_NO_80387): Likewise.
10247         (DEF_PTA): New.
10248         * config/i386/i386.h (TARGET_*): Remove.
10249         * opth-gen.awk: Generate new used macros.
10250
10251 2021-04-21  Martin Liska  <mliska@suse.cz>
10252
10253         * config/i386/i386.h (PTA_*): Remove.
10254         (enum pta_flag): New.
10255         (DEF_PTA): Generate PTA_* values from i386-isa.def.
10256         * config/i386/i386-isa.def: New file.
10257
10258 2021-04-21  Alex Coplan  <alex.coplan@arm.com>
10259
10260         PR target/99988
10261         * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
10262         (rest_of_insert_bti): Avoid inserting duplicate bti j insns for
10263         jump table targets.
10264
10265 2021-04-21  H.J. Lu  <hjl.tools@gmail.com>
10266
10267         * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and
10268         x86_64-*-* targets.
10269         * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET):
10270         New.
10271         (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise.
10272         (ix86_handle_option): Handle -mmwait.
10273         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
10274         Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on
10275         __builtin_ia32_monitor and __builtin_ia32_mwait.
10276         * config/i386/i386-options.c (isa2_opts): Add -mmwait.
10277         (ix86_valid_target_attribute_inner_p): Likewise.
10278         (ix86_option_override_internal): Enable mwait/monitor
10279         instructions for -msse3.
10280         * config/i386/i386.h (TARGET_MWAIT): New.
10281         (TARGET_MWAIT_P): Likewise.
10282         * config/i386/i386.opt: Add -mmwait.
10283         * config/i386/mwaitintrin.h: New file.
10284         * config/i386/pmmintrin.h: Include <mwaitintrin.h>.
10285         * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with
10286         TARGET_MWAIT.
10287         (@sse3_monitor_<mode>): Likewise.
10288         * config/i386/x86gprintrin.h: Include <mwaitintrin.h>.
10289         * doc/extend.texi: Document mwait target attribute.
10290         * doc/invoke.texi: Document -mmwait.
10291
10292 2021-04-21  Martin Liska  <mliska@suse.cz>
10293
10294         * config/i386/i386-options.c (DEF_ENUM): Remove it.
10295         * config/i386/i386-opts.h (DEF_ENUM): Likewise.
10296         * config/i386/stringop.def (DEF_ENUM): Likewise.
10297
10298 2021-04-21  Martin Liska  <mliska@suse.cz>
10299
10300         * tree-cfg.c (gimple_verify_flow_info): Use qD instead
10301         of print_generic_expr.
10302
10303 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
10304
10305         PR rtl-optimization/100148
10306         * cprop.c (constprop_register): Use next_nondebug_insn instead of
10307         NEXT_INSN.
10308
10309 2021-04-21  Martin Liska  <mliska@suse.cz>
10310
10311         PR ipa/98815
10312         * cgraphunit.c (cgraph_node::analyze): Remove duplicate
10313         free_dominance_info calls.
10314
10315 2021-04-21  Richard Biener  <rguenther@suse.de>
10316
10317         * gimple-fold.c (maybe_fold_reference): Remove is_lhs
10318         parameter (and assume it to be false).
10319         (fold_gimple_assign): Adjust, remove all callers of
10320         maybe_fold_reference calling it with is_lhs true.
10321         (gimple_fold_call): Likewise.
10322         (fold_stmt_1): Likewise.
10323
10324 2021-04-21  Richard Biener  <rguenther@suse.de>
10325
10326         * fold-const.c (pedantic_non_lvalue_loc): Remove.
10327         (fold_binary_loc): Adjust.
10328         (fold_ternary_loc): Likewise.
10329
10330 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
10331
10332         PR middle-end/100130
10333         * varasm.c (get_block_for_decl): Make sure that any use of the
10334         retain attribute matches the section's retain flag.
10335         (switch_to_section): Check for retain mismatches even when
10336         changing sections, but do not warn if the given decl is the
10337         section's named.decl.
10338         (output_object_block): Pass the first decl in the block (if any)
10339         to switch_to_section.
10340
10341 2021-04-20  H.J. Lu  <hjl.tools@gmail.com>
10342
10343         * config/i386/i386-c.c (ix86_target_macros_internal): Define
10344         __CRC32__ for -mcrc32.
10345         * config/i386/i386-options.c (ix86_option_override_internal):
10346         Enable crc32 instruction for -msse4.2.
10347         * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2
10348         check.
10349         (sse4_2_crc32di): Likewise.
10350         * config/i386/ia32intrin.h: Use crc32 target option for CRC32
10351         intrinsics.
10352
10353 2021-04-20  Segher Boessenkool  <segher@kernel.crashing.org>
10354
10355         PR target/100108
10356         * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
10357         OPTION_MASK_ISEL.
10358
10359 2021-04-20  Martin Liska  <mliska@suse.cz>
10360
10361         * doc/invoke.texi: Fix typo.
10362         * params.opt: Likewise.
10363
10364 2021-04-20  Martin Liska  <mliska@suse.cz>
10365
10366         * doc/invoke.texi: Document new param.
10367
10368 2021-04-19  Andrew MacLeod  <amacleod@redhat.com>
10369
10370         PR tree-optimization/100081
10371         * gimple-range-cache.h (ranger_cache): Inherit from gori_compute
10372         rather than gori_compute_cache.
10373         * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
10374         (range_def_chain::m_logical_depth): New member.
10375         (range_def_chain::range_def_chain): Initialize m_logical_depth.
10376         (range_def_chain::get_def_chain): Don't build defchains through more
10377         than LOGICAL_LIMIT logical expressions.
10378         * params.opt (param_ranger_logical_depth): New.
10379
10380 2021-04-19  Richard Earnshaw  <rearnsha@arm.com>
10381
10382         PR target/100067
10383         * config/arm/arm.c (arm_configure_build_target): Do not strip
10384         extended FPU/SIMD feature bits from the target ISA when -mfpu
10385         is specified (partial revert of r11-8168).
10386
10387 2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>
10388
10389         * params.opt (-param=openacc-kernels=): Add.
10390         * omp-oacc-kernels-decompose.cc
10391         (pass_omp_oacc_kernels_decompose::gate): Use it.
10392         * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
10393         (--param): ... here, 'openacc-kernels'.
10394
10395 2021-04-19  Martin Liska  <mliska@suse.cz>
10396
10397         PR c/100143
10398         * gengtype.c (finish_root_table): Align function arguments
10399         in between declaration and definition.
10400
10401 2021-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10402
10403         * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
10404         frames larger than the SEH maximum frame size.
10405
10406 2021-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
10407
10408         PR rtl-optimization/99927
10409         * combine.c (distribute_notes) [REG_UNUSED]: If the register already
10410         is dead, just drop it.
10411
10412 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
10413
10414         PR d/99914
10415         * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
10416         * doc/tm.texi: Regenerate.
10417         * doc/tm.texi.in (D language and ABI): Add @hook for
10418         TARGET_D_TEMPLATES_ALWAYS_COMDAT.
10419
10420 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
10421
10422         * config/darwin-d.c (darwin_d_handle_target_object_format): New
10423         function.
10424         (darwin_d_register_target_info): New function.
10425         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10426         * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
10427         function.
10428         (dragonfly_d_register_target_info): New function.
10429         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10430         * config/freebsd-d.c (freebsd_d_handle_target_object_format): New
10431         function.
10432         (freebsd_d_register_target_info): New function.
10433         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10434         * config/glibc-d.c (glibc_d_handle_target_object_format): New
10435         function.
10436         (glibc_d_register_target_info): New function.
10437         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10438         * config/i386/i386-d.c (ix86_d_handle_target_object_format): New
10439         function.
10440         (ix86_d_register_target_info): Add ix86_d_handle_target_object_format
10441         as handler for objectFormat key.
10442         * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
10443         function.
10444         (winnt_d_register_target_info): New function.
10445         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10446         * config/netbsd-d.c (netbsd_d_handle_target_object_format): New
10447         function.
10448         (netbsd_d_register_target_info): New function.
10449         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10450         * config/openbsd-d.c (openbsd_d_handle_target_object_format): New
10451         function.
10452         (openbsd_d_register_target_info): New function.
10453         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10454         * config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
10455         (pa_d_register_target_info): Add pa_d_handle_target_object_format as
10456         handler for objectFormat key.
10457         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
10458         function.
10459         (rs6000_d_register_target_info): Add
10460         rs6000_d_handle_target_object_format as handler for objectFormat key.
10461         * config/sol2-d.c (solaris_d_handle_target_object_format): New
10462         function.
10463         (solaris_d_register_target_info): New function.
10464         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10465
10466 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
10467
10468         PR target/91710
10469         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
10470         abi_break argument from bool * to unsigned *, store there the pre-GCC 9
10471         alignment.
10472         (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
10473         (aarch64_function_arg_regno_p): Likewise.  Only emit -Wpsabi note if
10474         the old and new alignment after applying MIN/MAX to it is different.
10475
10476 2021-04-16  Tamar Christina  <tamar.christina@arm.com>
10477
10478         PR target/100048
10479         * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
10480         * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
10481         TRN optab.
10482         * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
10483
10484 2021-04-16  Bill Schmidt  <wschmidt@linux.ibm.com>
10485
10486         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
10487         this section and its subsections.
10488
10489 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
10490
10491         PR target/100075
10492         * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
10493         define_insn patterns.
10494
10495 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
10496
10497         PR rtl-optimization/98689
10498         * reg-notes.def (UNTYPED_CALL): New note.
10499         * combine.c (distribute_notes): Handle it.
10500         * emit-rtl.c (try_split): Likewise.
10501         * rtlanal.c (rtx_properties::try_to_add_insn): Likewise.  Assume
10502         that calls with the note implicitly set all return value registers.
10503         * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL
10504         to untyped_calls.
10505
10506 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
10507
10508         PR rtl-optimization/99596
10509         * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global
10510         register accesses for const calls.  Assume that pure functions
10511         can only read from global registers.  Ignore cases in which
10512         the stack pointer has been marked global.
10513
10514 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
10515
10516         PR target/99767
10517         * tree-vect-loop.c (vect_transform_loop): Don't remove just
10518         dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
10519         them by their last argument.
10520
10521 2021-04-15  Martin Liska  <mliska@suse.cz>
10522
10523         * doc/invoke.texi: Other params don't use it, remove it.
10524
10525 2021-04-15  Richard Biener  <rguenther@suse.de>
10526
10527         * gimple-builder.h: Add deprecation note.
10528
10529 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
10530
10531         PR c++/98852
10532         * attribs.h (restrict_type_identity_attributes_to): Declare.
10533         * attribs.c (restrict_type_identity_attributes_to): New function.
10534
10535 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
10536
10537         PR c/98852
10538         * attribs.h (affects_type_identity_attributes): Declare.
10539         * attribs.c (remove_attributes_matching): New function.
10540         (affects_type_identity_attributes): Likewise.
10541
10542 2021-04-15  Jakub Jelinek  <jakub@redhat.com>
10543
10544         PR target/100056
10545         * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3):
10546         Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with
10547         ZERO_EXTEND, SIGN_EXTEND or AND.
10548
10549 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
10550
10551         PR rtl-optimization/99929
10552         * rtl.h (same_vector_encodings_p): New function.
10553         * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
10554         * cselib.c (rtx_equal_for_cselib_1): Likewise.
10555         * jump.c (rtx_renumbered_equal_p): Likewise.
10556         * lra-constraints.c (operands_match_p): Likewise.
10557         * reload.c (operands_match_p): Likewise.
10558         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
10559
10560 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
10561
10562         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
10563         more information about variable-length CONST_VECTORs.
10564
10565 2021-04-14  Vladimir N. Makarov  <vmakarov@redhat.com>
10566
10567         PR rtl-optimization/100066
10568         * lra-constraints.c (split_reg): Check paradoxical_subreg_p for
10569         ordered modes when choosing splitting mode for hard reg.
10570
10571 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
10572
10573         PR target/99246
10574         * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
10575         New function.
10576         (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
10577
10578 2021-04-14  Andreas Krebbel  <krebbel@linux.ibm.com>
10579
10580         * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros
10581         for mask operand types.
10582         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
10583         (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate
10584         operand.
10585         (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
10586         immediate operand.
10587         * config/s390/s390.c (s390_const_operand_ok): Check the new
10588         operand types and generate a list of valid values.
10589
10590 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
10591
10592         * doc/tm.texi: Regenerate.
10593         * doc/tm.texi.in (D language and ABI): Add @hook for
10594         TARGET_D_REGISTER_OS_TARGET_INFO.
10595
10596 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
10597
10598         * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
10599         function.
10600         (aarch64_d_register_target_info): New function.
10601         * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
10602         Declare.
10603         * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
10604         Define.
10605         * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function.
10606         (arm_d_register_target_info): New function.
10607         * config/arm/arm-protos.h (arm_d_register_target_info): Declare.
10608         * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10609         * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function.
10610         (ix86_d_register_target_info): New function.
10611         * config/i386/i386-protos.h (ix86_d_register_target_info): Declare.
10612         * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10613         * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function.
10614         (mips_d_register_target_info): New function.
10615         * config/mips/mips-protos.h (mips_d_register_target_info): Declare.
10616         * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10617         * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function.
10618         (pa_d_register_target_info): New function.
10619         * config/pa/pa-protos.h (pa_d_register_target_info): Declare.
10620         * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10621         * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New
10622         function.
10623         (riscv_d_register_target_info): New function.
10624         * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare.
10625         * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10626         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New
10627         function.
10628         (rs6000_d_register_target_info): New function.
10629         * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
10630         Declare.
10631         * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10632         * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function.
10633         (s390_d_register_target_info): New function.
10634         * config/s390/s390-protos.h (s390_d_register_target_info): Declare.
10635         * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10636         * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New
10637         function.
10638         (sparc_d_register_target_info): New function.
10639         * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare.
10640         * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10641         * doc/tm.texi: Regenerate.
10642         * doc/tm.texi.in (D language and ABI): Add @hook for
10643         TARGET_D_REGISTER_CPU_TARGET_INFO.
10644
10645 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
10646
10647         * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function.
10648         * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare.
10649         * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define.
10650         * doc/tm.texi: Regenerate.
10651         * doc/tm.texi.in (D language and ABI): Add @hook for
10652         TARGET_D_HAS_STDCALL_CONVENTION.
10653
10654 2021-04-14  Richard Biener  <rguenther@suse.de>
10655
10656         * tree-cfg.c (verify_gimple_assign_ternary): Verify that
10657         VEC_COND_EXPRs have a gimple_val condition.
10658         * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR
10659         can no longer have a GENERIC condition.
10660
10661 2021-04-14  Richard Earnshaw  <rearnsha@arm.com>
10662
10663         PR target/100067
10664         * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits
10665         from the isa_delta when -mfpu has been used.
10666         (arm_options_perform_arch_sanity_checks): It's the architecture that
10667         lacks an FPU not the processor.
10668
10669 2021-04-13  Richard Biener  <rguenther@suse.de>
10670
10671         PR tree-optimization/100053
10672         * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
10673         not use optimistic dominance queries for backedges to validate
10674         predicated values.
10675         (dominated_by_p_w_unex): Add parameter to ignore executable
10676         state on backedges.
10677         (rpo_elim::eliminate_avail): Adjust.
10678
10679 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
10680
10681         PR target/100028
10682         * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
10683         *aarch64_bfxilsi_extrdi): New define_insn patterns.
10684
10685 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
10686
10687         PR target/99648
10688         * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P
10689         outermode, return NULL if the result doesn't encode back to the
10690         original byte sequence.
10691         (simplify_gen_subreg): Don't create SUBREGs from constants to
10692         MODE_COMPOSITE_P outermode.
10693
10694 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
10695
10696         PR rtl-optimization/99905
10697         * combine.c (expand_compound_operation): If pos + len > modewidth,
10698         perform the right shift by pos in inner_mode and then convert to mode,
10699         instead of trying to simplify a shift of rtx with inner_mode by pos
10700         as if it was a shift in mode.
10701
10702 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
10703
10704         PR debug/99830
10705         * combine.c (simplify_and_const_int_1): Don't optimize varop
10706         away if it has side-effects.
10707
10708 2021-04-12  Martin Liska  <mliska@suse.cz>
10709
10710         * doc/extend.texi: Escape @smallexample content.
10711
10712 2021-04-12  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
10713
10714         * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
10715           alternative in order to load a DFP zero.
10716
10717 2021-04-12  Martin Liska  <mliska@suse.cz>
10718
10719         * doc/extend.texi: Be more precise in documentation
10720         of symver attribute.
10721
10722 2021-04-12  Martin Liska  <mliska@suse.cz>
10723
10724         PR sanitizer/99877
10725         * gimplify.c (gimplify_expr): Right now, we unpoison all
10726         variables before a goto <dest>. We should not do it if we are
10727         in a omp context.
10728
10729 2021-04-12  Cui,Lili  <lili.cui@intel.com>
10730
10731         * common/config/i386/cpuinfo.h (get_intel_cpu): Handle
10732         rocketlake.
10733         * common/config/i386/i386-common.c (processor_names): Add
10734         rocketlake.
10735         (processor_alias_table): Add rocketlake.
10736         * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add
10737         INTEL_COREI7_ROCKETLAKE.
10738         * config.gcc: Add -march=rocketlake.
10739         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
10740         rocketlake.
10741         * config/i386/i386-options.c (m_ROCKETLAKE)  : Define.
10742         (processor_cost_table): Add rocketlake cost.
10743         * config/i386/i386.h (ix86_size_cost) : Define
10744         TARGET_ROCKETLAKE.
10745         (processor_type) : Add PROCESSOR_ROCKETLAKE.
10746         (PTA_ROCKETLAKE): Ditto.
10747         * doc/extend.texi: Add rocketlake.
10748         * doc/invoke.texi: Add rocketlake.
10749
10750 2021-04-12  Cui,Lili  <lili.cui@intel.com>
10751
10752         * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list.
10753         * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE.
10754         * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model.
10755         * doc/invoke.texi: Change alderlake ISA list.
10756
10757 2021-04-11  Hafiz Abid Qadeer  <abidh@codesourcery.com>
10758
10759         PR middle-end/98088
10760         * omp-expand.c (expand_oacc_collapse_init): Update condition in
10761         a gcc_assert.
10762
10763 2021-04-10  H.J. Lu  <hjl.tools@gmail.com>
10764
10765         PR target/99744
10766         * config/i386/serializeintrin.h (_serialize): Defined as macro.
10767
10768 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
10769
10770         PR lto/99849
10771         * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
10772         just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
10773
10774 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
10775
10776         PR middle-end/99989
10777         * gimple-ssa-warn-alloca.c
10778         (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to
10779         0 with integer precision unconditionally.
10780
10781 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
10782
10783         PR rtl-optimization/98601
10784         * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
10785         not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
10786         unaligned_mems handle VOIDmode like BLKmode.
10787
10788 2021-04-10  Jan Hubicka  <hubicka@ucw.cz>
10789
10790         PR lto/99857
10791         * tree.c (free_lang_data_in_decl): Do not release body of
10792         declare_variant_alt.
10793
10794 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
10795
10796         * config/aarch64/aarch64.c (aarch64_option_restore): If the
10797         architecture was specified explicitly and the tuning wasn't,
10798         tune for the architecture rather than the configured default CPU.
10799
10800 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
10801
10802         * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
10803         as the temporary register.
10804
10805 2021-04-09  Martin Liska  <mliska@suse.cz>
10806
10807         * doc/extend.texi: Move non-target attributes on the top level.
10808
10809 2021-04-09  Martin Liska  <mliska@suse.cz>
10810
10811         * doc/invoke.texi: Document minimum and maximum value of the
10812         argument for both supported compression algorithms.
10813
10814 2021-04-08  David Edelsohn  <dje.gcc@gmail.com>
10815
10816         * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select
10817         TLS BSS before TLS data.
10818         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm.
10819
10820 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
10821
10822         * doc/sourcebuild.texi (stdint_types_mbig_endian): Document.
10823
10824 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
10825
10826         * match.pd: Extend vec_cond folds to handle shifts.
10827
10828 2021-04-08  Maciej W. Rozycki  <macro@orcam.me.uk>
10829
10830         * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
10831         peephole.
10832
10833 2021-04-08  Alex Coplan  <alex.coplan@arm.com>
10834
10835         PR target/99647
10836         * config/arm/iterators.md (MVE_vecs): New.
10837         (V_elem): Also handle V2DF.
10838         * config/arm/mve.md (*mve_mov<mode>): Rename to ...
10839         (*mve_vdup<mode>): ... this. Remove second alternative since
10840         vec_duplicate of const_int is not canonical RTL, and we don't
10841         want to match symbol_refs.
10842         (*mve_vec_duplicate<mode>): Delete (pattern is redundant).
10843
10844 2021-04-08  Xionghu Luo  <luoxhu@linux.ibm.com>
10845
10846         * fold-const.c (fold_single_bit_test): Fix typo.
10847         * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
10848         instead.
10849
10850 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
10851
10852         PR tree-optimization/97513
10853         * tree-vect-slp.c (vect_add_slp_permutation): New function,
10854         split out from...
10855         (vectorizable_slp_permutation): ...here.  Detect cases in which
10856         all VEC_PERM_EXPRs are guaranteed to have the same stepped
10857         permute vector and only generate one permute vector for that case.
10858         Extend that case to handle variable-length vectors.
10859
10860 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
10861
10862         PR tree-optimization/99873
10863         * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function.
10864         (vect_build_slp_instance): Don't split store groups that could
10865         use IFN_STORE_LANES.
10866
10867 2021-04-07  Jakub Jelinek  <jakub@redhat.com>
10868
10869         PR target/99872
10870         * varasm.c (output_constant_pool_contents): Don't strip name encoding
10871         from XSTR (desc->sym, 0) or from label before passing those to
10872         ASM_OUTPUT_DEF.
10873
10874 2021-04-07  Richard Biener  <rguenther@suse.de>
10875
10876         PR tree-optimization/99954
10877         * tree-loop-distribution.c: Include tree-affine.h.
10878         (generate_memcpy_builtin): Try using tree-affine to prove
10879         non-overlap.
10880         (loop_distribution::classify_builtin_ldst): Always classify
10881         as PKIND_MEMMOVE.
10882
10883 2021-04-07  Richard Biener  <rguenther@suse.de>
10884
10885         PR tree-optimization/99947
10886         * tree-vect-loop.c (vectorizable_induction): Pre-allocate
10887         steps vector to avoid pushing elements from the reallocated
10888         vector.
10889
10890 2021-04-07  Richard Biener  <rguenther@suse.de>
10891
10892         * tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
10893         * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
10894         printing...
10895         * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
10896         function.
10897         (debug_vn_reference_ops): New.
10898
10899 2021-04-07  Bin Cheng  <bin.cheng@linux.alibaba.com>
10900
10901         PR tree-optimization/98736
10902         * tree-loop-distribution.c
10903         * (loop_distribution::bb_top_order_init):
10904         Compute RPO with programing order preserved by calling function
10905         rev_post_order_and_mark_dfs_back_seme.
10906
10907 2021-04-06  Vladimir N. Makarov  <vmakarov@redhat.com>
10908
10909         PR target/99781
10910         * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
10911         * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
10912         functions.
10913         (process_bb_lives): Don't update biggest mode of hard reg for
10914         implicit in multi-register group.  Use the new functions for
10915         updating dead_set and unused_set by register notes.
10916
10917 2021-04-06  Xianmiao Qu  <xianmiao_qu@c-sky.com>
10918
10919         * config/csky/csky_pipeline_ck802.md : Use insn reservation name
10920         instead of *.
10921
10922 2021-04-06  H.J. Lu  <hjl.tools@gmail.com>
10923
10924         * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
10925         (skylake_memset): Likewise.
10926         (skylake_cost): Change CLEAR_RATIO to 17.
10927         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
10928         Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
10929         m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
10930
10931 2021-04-06  Richard Biener  <rguenther@suse.de>
10932
10933         PR tree-optimization/99880
10934         * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
10935         set vectorized defs of relevant PHIs.
10936
10937 2021-04-06  Richard Biener  <rguenther@suse.de>
10938
10939         PR tree-optimization/99924
10940         * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
10941         nodes w/o scalar stmts as visited.
10942
10943 2021-04-06  Alex Coplan  <alex.coplan@arm.com>
10944
10945         PR target/99748
10946         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
10947         PCS for [su]fix_optab.
10948
10949 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
10950
10951         * config/darwin.c (machopic_legitimize_pic_address): Check
10952         that the current pic register is one of the hard reg set
10953         before setting liveness.
10954
10955 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
10956
10957         * config/darwin.c (machopic_legitimize_pic_address): Fix
10958         whitespace, remove unused code.
10959
10960 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
10961
10962         PR tree-optimization/99882
10963         * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
10964         pointer type.
10965
10966 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
10967
10968         PR rtl-optimization/99863
10969         * dse.c (replace_read): Drop regs_live argument.  Instead of
10970         regs_live, use store_insn->fixed_regs_live if non-NULL,
10971         otherwise punt if insns sequence clobbers or sets any hard
10972         registers.
10973
10974 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
10975
10976         PR testsuite/98125
10977         * targhooks.h (default_print_patchable_function_entry_1): Declare.
10978         * targhooks.c (default_print_patchable_function_entry_1): New function,
10979         copied from default_print_patchable_function_entry with an added flags
10980         argument.
10981         (default_print_patchable_function_entry): Rewritten into a small
10982         wrapper around default_print_patchable_function_entry_1.
10983         * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
10984         Redefine.
10985         (rs6000_print_patchable_function_entry): New function.
10986
10987 2021-04-02  Eric Botcazou  <ebotcazou@adacore.com>
10988
10989         * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
10990
10991 2021-04-01  Jason Merrill  <jason@redhat.com>
10992
10993         PR c++/98481
10994         * common.opt: Document v15 and v16.
10995
10996 2021-04-01  Richard Biener  <rguenther@suse.de>
10997
10998         PR tree-optimization/99863
10999         * gimplify.c (gimplify_init_constructor): Recompute vector
11000         constructor flags.
11001
11002 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
11003
11004         * doc/extend.texi (symver attribute): Fix up syntax errors
11005         in the examples.
11006
11007 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
11008
11009         PR tree-optimization/96573
11010         * gimple-ssa-store-merging.c (init_symbolic_number): Handle
11011         also pointer types.
11012
11013 2021-04-01  Richard Biener  <rguenther@suse.de>
11014
11015         PR tree-optimization/99856
11016         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
11017         precision to vector element precision.
11018
11019 2021-04-01  Martin Jambor  <mjambor@suse.cz>
11020
11021         PR tree-optimization/97009
11022         * tree-sra.c (access_or_its_child_written): New function.
11023         (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
11024         test.
11025
11026 2021-03-31  Jan Hubicka  <hubicka@ucw.cz>
11027
11028         PR ipa/98265
11029         * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
11030
11031 2021-03-31  Pat Haugen  <pthaugen@linux.ibm.com>
11032
11033         PR target/99133
11034         * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
11035         xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
11036         xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
11037         * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
11038         mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
11039         mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
11040         Likewise.
11041         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
11042         * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
11043         (define_attr "prefixed"): Update initializer.
11044
11045 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
11046
11047         PR debug/99490
11048         * dwarf2out.c (debug_ranges_dwo_section): New variable.
11049         (DW_RANGES_IDX_SKELETON): Define.
11050         (struct dw_ranges): Add begin_entry and end_entry members.
11051         (DEBUG_DWO_RNGLISTS_SECTION): Define.
11052         (add_ranges_num): Adjust r initializer for addition of *_entry
11053         members.
11054         (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
11055         set idx to DW_RANGES_IDX_SKELETON.
11056         (use_distinct_base_address_for_range): New function.
11057         (index_rnglists): Don't set r->idx if it is equal to
11058         DW_RANGES_IDX_SKELETON.  Initialize r->begin_entry and
11059         r->end_entry for -gsplit-dwarf if those will be needed by
11060         output_rnglists.
11061         (output_rnglists): Add DWO argument.  If true, switch to
11062         debug_ranges_dwo_section rather than debug_ranges_section.
11063         Adjust l1/l2 label indexes.  Only output the offset table when
11064         dwo is true and don't include in there the skeleton range
11065         entry if present.  For -gsplit-dwarf, skip ranges that belong
11066         to the other rnglists section.  Change return type from void
11067         to bool and return true if there are any range entries for
11068         the other section.  For dwarf_split_debug_info use
11069         DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
11070         entries instead of DW_RLE_start_end, DW_RLE_start_length and
11071         DW_RLE_base_address.  Use use_distinct_base_address_for_range.
11072         (init_sections_and_labels): Initialize debug_ranges_dwo_section
11073         if -gsplit-dwarf and DWARF >= 5.  Adjust ranges_section_label
11074         and range_base_label indexes.
11075         (dwarf2out_finish): Call index_rnglists earlier before finalizing
11076         .debug_addr.  Never emit DW_AT_rnglists_base attribute.  For
11077         -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
11078         with different dwo arguments.
11079         (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
11080
11081 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
11082
11083         PR tree-optimization/98268
11084         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
11085         recompute_tree_invariant_for_addr_expr after successfully
11086         folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
11087
11088 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
11089
11090         PR tree-optimization/99726
11091         * tree-data-ref.c (create_intersect_range_checks_index): Bail
11092         out if there is more than one access function SCEV for the loop
11093         being versioned.
11094
11095 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
11096
11097         PR rtl-optimization/97141
11098         PR rtl-optimization/98726
11099         * emit-rtl.c (valid_for_const_vector_p): Return true for
11100         CONST_POLY_INT_P.
11101         * rtx-vector-builder.h (rtx_vector_builder::step): Return a
11102         poly_wide_int instead of a wide_int.
11103         (rtx_vector_builder::apply_set): Take a poly_wide_int instead
11104         of a wide_int.
11105         * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
11106         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
11107         false for CONST_VECTORs that cannot be forced to memory.
11108         * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
11109         is too complex to force to memory, build it up from individual
11110         elements instead.
11111
11112 2021-03-31  Jan Hubicka  <jh@suse.cz>
11113
11114         PR lto/99447
11115         * cgraph.c (cgraph_node::release_body): Fix overactive check.
11116
11117 2021-03-31  Christophe Lyon  <christophe.lyon@linaro.org>
11118
11119         PR target/99786
11120         * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
11121         for V4HI and V2SI.
11122
11123 2021-03-31  H.J. Lu  <hjl.tools@gmail.com>
11124
11125         * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
11126         For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
11127         to SImode.
11128         (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
11129         "rep movsb/stosb" only for known sizes.
11130         * config/i386/i386-options.c (processor_cost_table): Use Ice
11131         Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
11132         Rapids and Alder Lake.
11133         * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
11134         * config/i386/x86-tune-costs.h (icelake_memcpy): New.
11135         (icelake_memset): Likewise.
11136         (icelake_cost): Likewise.
11137         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
11138         New.
11139
11140 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
11141
11142         PR target/98119
11143         * config/aarch64/aarch64.c
11144         (aarch64_vectorize_preferred_vector_alignment): Query the size
11145         of the provided SVE vector; do not assume that all SVE vectors
11146         have the same size.
11147
11148 2021-03-31  Jan Hubicka  <jh@suse.cz>
11149
11150         PR lto/99447
11151         * cgraph.c (cgraph_node::release_body): Remove all callers and
11152         references.
11153         * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
11154         * cgraphunit.c (cgraph_node::expand): And here.
11155
11156 2021-03-31  Martin Liska  <mliska@suse.cz>
11157
11158         * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
11159         and one negated condition.
11160
11161 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
11162             Richard Sandiford  <richard.sandiford@arm.com>
11163
11164         PR target/99813
11165         * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
11166         constraints on operands[2] and similarly 0 and rk constraints
11167         on operands[1] corresponding to that.
11168
11169 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
11170
11171         PR bootstrap/98860
11172         * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
11173         linker doesn't support DWARF sections new in DWARF5.
11174         * config/i386/i386-options.c (ix86_option_override_internal): Default
11175         to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
11176         targets.
11177         * config.in: Regenerated.
11178         * configure: Regenerated.
11179
11180 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11181
11182         PR target/99820
11183         * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
11184         available issue_info before using it.
11185
11186 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11187
11188         PR target/99822
11189         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
11190         in operand 1.
11191
11192 2021-03-30  Xionghu Luo  <luoxhu@linux.ibm.com>
11193
11194         PR target/99718
11195         * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
11196         (altivec_lvsl_reg_<mode>): ... this.
11197         (altivec_lvsr_reg): Change to ...
11198         (altivec_lvsr_reg_<mode>): ... this.
11199         * config/rs6000/predicates.md (vec_set_index_operand): New.
11200         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11201         Enable 32bit variable vec_insert for all TARGET_VSX.
11202         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
11203         Enable 32bit variable vec_insert for p9 and above.
11204         (rs6000_expand_vector_set_var_p8): Rename to ...
11205         (rs6000_expand_vector_set_var_p7): ... this.
11206         (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
11207         position.
11208         * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
11209         * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
11210         gen_altivec_lvsr_reg_di.
11211
11212 2021-03-30  H.J. Lu  <hjl.tools@gmail.com>
11213
11214         PR target/99744
11215         * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
11216         (__rdtscp): Likewise.
11217
11218 2021-03-30  Tamar Christina  <tamar.christina@arm.com>
11219
11220         PR tree-optimization/99825
11221         * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
11222         Reject non-mult 2 lanes.
11223
11224 2021-03-30  Richard Earnshaw  <rearnsha@arm.com>
11225
11226         PR target/99773
11227         * config/arm/arm.c (arm_file_start): Fix emission of
11228         Tag_ABI_VFP_args attribute.
11229
11230 2021-03-30  Richard Biener  <rguenther@suse.de>
11231
11232         PR tree-optimization/99824
11233         * stor-layout.c (set_min_and_max_values_for_integral_type):
11234         Assert the precision is within the bounds of
11235         WIDE_INT_MAX_PRECISION.
11236         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
11237         the outermost component ref only to lower the access size
11238         and initialize that from the access type.
11239
11240 2021-03-30  Richard Sandiford  <richard.sandiford@arm.com>
11241
11242         PR target/98136
11243         * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
11244         CONST_INTs to aarch64_expand_mov_immediate when called after RA.
11245
11246 2021-03-30  Mihailo Stojanovic  <mihailo.stojanovic@typhoon-hil.com>
11247
11248         * config/aarch64/aarch64.md
11249         (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
11250         attribute to disambiguate between SIMD and FP variants of the
11251         instruction.
11252
11253 2021-03-29  Jan Hubicka  <hubicka@ucw.cz>
11254
11255         * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
11256         (analyze_ssa_name_flags): Fix typo in comment.
11257
11258 2021-03-29  Alex Coplan  <alex.coplan@arm.com>
11259
11260         PR target/99216
11261         * config/aarch64/aarch64-sve-builtins.cc
11262         (function_builder::add_function): Add placeholder_p argument, use
11263         placeholder decls if this is set.
11264         (function_builder::add_unique_function): Instead of conditionally adding
11265         direct overloads, unconditionally add either a direct overload or a
11266         placeholder.
11267         (function_builder::add_overloaded_function): Set placeholder_p if we're
11268         using C++ overloads. Use the obstack for string storage instead
11269         of relying on the tree nodes.
11270         (function_builder::add_overloaded_functions): Don't return early for
11271         m_direct_overloads: we need to add placeholders.
11272         * config/aarch64/aarch64-sve-builtins.h
11273         (function_builder::add_function): Add placeholder_p argument.
11274
11275 2021-03-29  Richard Biener  <rguenther@suse.de>
11276
11277         PR tree-optimization/99807
11278         * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
11279         assert below VEC_PERM handling.
11280
11281 2021-03-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11282
11283         PR target/99037
11284         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
11285         aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
11286         matching const_int 0.
11287         (move_lo_quad_internal_be_<mode>): Likewise.
11288         (move_lo_quad_<mode>): Update for the above.
11289         * config/aarch64/iterators.md (VQ_2E): Delete.
11290
11291 2021-03-29  Jakub Jelinek  <jakub@redhat.com>
11292
11293         PR tree-optimization/99777
11294         * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
11295         types other than scalar integral types.
11296
11297 2021-03-28  David Edelsohn  <dje.gcc@gmail.com>
11298
11299         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
11300         XCOFF TLS reloc decorations.
11301
11302 2021-03-28  Gerald Pfeifer  <gerald@pfeifer.com>
11303
11304         * doc/analyzer.texi (Analyzer Internals): Update link to
11305         "A Memory Model for Static Analysis of C Programs".
11306
11307 2021-03-26  David Edelsohn  <dje.gcc@gmail.com>
11308
11309         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
11310         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
11311         Declare.
11312         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
11313         (rs6000_special_round_type_align): Recursively check innermost first
11314         field.
11315
11316 2021-03-26  Jakub Jelinek  <jakub@redhat.com>
11317
11318         PR debug/99334
11319         * dwarf2out.h (struct dw_fde_node): Add rule18 member.
11320         * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
11321         assignment with drap_reg active, queue reg save for hfp with offset 0
11322         and flush queued reg saves.  When handling a push with rule18,
11323         defer queueing reg save for hfp and just assert the offset is 0.
11324         (scan_trace): Assert that fde->rule18 is false.
11325
11326 2021-03-26  Vladimir Makarov  <vmakarov@redhat.com>
11327
11328         PR target/99766
11329         * ira-costs.c (record_reg_classes): Put case with
11330         CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
11331         * ira.c (ira_setup_alts): Ditto.
11332         * lra-constraints.c (process_alt_operands): Ditto.
11333         * recog.c (asm_operand_ok): Ditto.
11334         * reload.c (find_reloads): Ditto.
11335
11336 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11337
11338         * config/aarch64/aarch64-protos.h
11339         (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
11340         (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
11341         * config/aarch64/aarch64.c (generic_addrcost_table): Update
11342         accordingly, using the same costs as for post_modify.
11343         (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
11344         (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
11345         (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
11346         (a64fx_addrcost_table): Likewise.
11347         (neoversev1_addrcost_table): New.
11348         (neoversev1_tunings): Use neoversev1_addrcost_table.
11349         (aarch64_address_cost): Use the new post_modify costs for CImode
11350         and XImode.
11351
11352 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11353
11354         * config/aarch64/aarch64.opt
11355         (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
11356         * doc/invoke.texi: Document it.
11357         * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
11358         (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
11359         (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
11360         (aarch64_vec_issue_info): New structures.
11361         (cpu_vector_cost): Write comments above the variables rather
11362         than to the side.
11363         (cpu_vector_cost::issue_info): New member variable.
11364         * config/aarch64/aarch64.c: Include gimple-pretty-print.h
11365         and tree-ssa-loop-niter.h.
11366         (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
11367         (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
11368         (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
11369         (thunderx3t110_vector_cost): Initialize issue_info to null.
11370         (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
11371         (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
11372         (neoversev1_vector_cost): Use them.
11373         (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
11374         (aarch64_vector_costs::saw_sve_only_op): New member variable.
11375         (aarch64_vector_costs::num_vector_iterations): Likewise.
11376         (aarch64_vector_costs::scalar_ops): Likewise.
11377         (aarch64_vector_costs::advsimd_ops): Likewise.
11378         (aarch64_vector_costs::sve_ops): Likewise.
11379         (aarch64_vector_costs::seen_loads): Likewise.
11380         (aarch64_simd_vec_costs_for_flags): New function.
11381         (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
11382         Count the number of predicate operations required by SVE WHILE
11383         instructions.
11384         (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
11385         (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
11386         (aarch64_count_ops): Likewise.
11387         (aarch64_add_stmt_cost): Record whether see an SVE operation
11388         that cannot currently be implementing using Advanced SIMD.
11389         Record issue information about the scalar, Advanced SIMD
11390         and (where relevant) SVE versions of a loop.
11391         (aarch64_vec_op_count::dump): New function.
11392         (aarch64_sve_op_count::dump): Likewise.
11393         (aarch64_estimate_min_cycles_per_iter): Likewise.
11394         (aarch64_adjust_body_cost): If issue information is available,
11395         try to compare the issue rates of the various loop implementations
11396         and increase or decrease the vector body cost accordingly.
11397
11398 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11399
11400         * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
11401         Assume a zero cost for induction phis.
11402
11403 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11404
11405         * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
11406         function.
11407         (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
11408         vector comparisons.
11409
11410 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11411
11412         * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
11413         New function.
11414         (aarch64_add_stmt_cost): Call it.
11415
11416 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11417
11418         * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
11419         New tuning parameter.
11420         * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
11421         (aarch64_estimated_sve_vq): New function.
11422         (aarch64_vector_costs::analyzed_vinfo): New member variable.
11423         (aarch64_vector_costs::is_loop): Likewise.
11424         (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
11425         (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
11426         (aarch64_record_potential_advsimd_unrolling): New function.
11427         (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
11428         (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
11429         aarch64_analyze_bb_vinfo on the first use of a costs structure.
11430         Detect whether we're vectorizing a loop for SVE that might be
11431         completely unrolled if it used Advanced SIMD instead.
11432         (aarch64_adjust_body_cost_for_latency): New function.
11433         (aarch64_finish_cost): Call it.
11434
11435 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11436
11437         * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
11438         (aarch64_init_cost): New function.
11439         (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
11440         the default unsigned[3].
11441         (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
11442         (TARGET_VECTORIZE_INIT_COST): Override.
11443         (TARGET_VECTORIZE_FINISH_COST): Likewise.
11444         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
11445
11446 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11447
11448         * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
11449         (neoversev1_sve_vector_cost): New cost structures.
11450         (neoversev1_vector_cost): Likewise.
11451         (neoversev1_tunings): Use them.  Enable use_new_vector_costs.
11452
11453 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11454
11455         * config/aarch64/aarch64-protos.h
11456         (sve_vec_cost::scatter_store_elt_cost): New member variable.
11457         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
11458         accordingly, taking the cost from the cost of a scalar_store.
11459         (a64fx_sve_vector_cost): Likewise.
11460         (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
11461
11462 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11463
11464         * config/aarch64/aarch64-protos.h
11465         (simd_vec_cost::store_elt_extra_cost): New member variable.
11466         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
11467         accordingly, using the vec_to_scalar cost for the new field.
11468         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
11469         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
11470         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
11471         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
11472         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
11473         (thunderx3t110_advsimd_vector_cost): Likewise.
11474         (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
11475
11476 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11477
11478         * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
11479         (simd_vec_cost::ld3_st3_permute_cost): New member variables.
11480         (simd_vec_cost::ld4_st4_permute_cost): Likewise.
11481         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
11482         accordingly, using zero for the new costs.
11483         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
11484         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
11485         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
11486         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
11487         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
11488         (thunderx3t110_advsimd_vector_cost): Likewise.
11489         (aarch64_ld234_st234_vectors): New function.
11490         (aarch64_adjust_stmt_cost): Likewise.
11491         (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
11492         the new vector costs.
11493
11494 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11495
11496         * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
11497         derived class of simd_vec_cost.  Add information about CLAST[AB]
11498         and FADDA instructions.
11499         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
11500         accordingly, using the vec_to_scalar costs for the new fields.
11501         (a64fx_sve_vector_cost): Likewise.
11502         (aarch64_reduc_type): New function.
11503         (aarch64_sve_in_loop_reduction_latency): Likewise.
11504         (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
11505         Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
11506         that occur in the loop body.
11507         (aarch64_add_stmt_cost): Update call accordingly.
11508
11509 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
11510
11511         * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
11512         New tuning flag.
11513         * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
11514         above the fields rather than to the right.
11515         (simd_vec_cost::reduc_i8_cost): New member variable.
11516         (simd_vec_cost::reduc_i16_cost): Likewise.
11517         (simd_vec_cost::reduc_i32_cost): Likewise.
11518         (simd_vec_cost::reduc_i64_cost): Likewise.
11519         (simd_vec_cost::reduc_f16_cost): Likewise.
11520         (simd_vec_cost::reduc_f32_cost): Likewise.
11521         (simd_vec_cost::reduc_f64_cost): Likewise.
11522         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
11523         accordingly, using the vec_to_scalar_cost for the new fields.
11524         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
11525         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
11526         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
11527         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
11528         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
11529         (thunderx3t110_advsimd_vector_cost): Likewise.
11530         (aarch64_use_new_vector_costs_p): New function.
11531         (aarch64_simd_vec_costs): New function, split out from...
11532         (aarch64_builtin_vectorization_cost): ...here.
11533         (aarch64_is_reduction): New function.
11534         (aarch64_detect_vector_stmt_subtype): Likewise.
11535         (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
11536         using the new vector costs.
11537
11538 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11539
11540         PR ipa/99466
11541         * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
11542         TLS declarations as public.
11543
11544 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11545
11546         * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
11547         * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
11548         * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
11549         * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
11550         * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
11551         * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
11552         * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
11553         * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
11554         * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
11555
11556 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11557
11558         PR d/91595
11559         * config.gcc (*-*-cygwin*): Add winnt-d.o
11560         (*-*-mingw*): Likewise.
11561         * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
11562         * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
11563         * config/i386/t-cygming: Add winnt-d.o.
11564         * config/i386/winnt-d.c: New file.
11565
11566 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11567
11568         * config/freebsd-d.c: Include memmodel.h.
11569
11570 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11571
11572         PR d/99691
11573         * config.gcc (*-*-openbsd*): Add openbsd-d.o.
11574         * config/t-openbsd: Add openbsd-d.o.
11575         * config/openbsd-d.c: New file.
11576
11577 2021-03-25  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
11578
11579         PR tree-optimization/96974
11580         * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
11581         with graceful exit.
11582
11583 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
11584
11585         Revert:
11586         2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
11587
11588         PR target/98209
11589         PR target/99744
11590         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
11591         always_inline in system headers.
11592
11593 2021-03-25  Kewen Lin  <linkw@linux.ibm.com>
11594
11595         * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
11596
11597 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
11598
11599         PR c++/99565
11600         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
11601         * fold-const.c (operand_compare::operand_equal_p): Don't compare
11602         field offsets if OEP_ADDRESS_OF_SAME_FIELD.
11603
11604 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
11605
11606         PR target/98209
11607         PR target/99744
11608         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
11609         always_inline in system headers.
11610
11611 2021-03-25  Richard Biener  <rguenther@suse.de>
11612
11613         PR tree-optimization/99746
11614         * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
11615         the scalar stmt as patterned.  Instead set up required things
11616         manually.
11617
11618 2021-03-25  Xionghu Luo  <luoxhu@linux.ibm.com>
11619
11620         * config/rs6000/rs6000.c (power8_costs): Change l2 cache
11621         from 256 to 512.
11622
11623 2021-03-24  Martin Liska  <mliska@suse.cz>
11624
11625         PR target/99753
11626         * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
11627         error.
11628         * config/i386/i386-options.c (ix86_option_override_internal):
11629         Add run-time assert.
11630
11631 2021-03-24  Martin Jambor  <mjambor@suse.cz>
11632
11633         PR ipa/99122
11634         * ipa-cp.c (initialize_node_lattices): Mark as bottom all
11635         parameters with unknown type.
11636         (ipacp_value_safe_for_type): New function.
11637         (propagate_vals_across_arith_jfunc): Verify that the constant type
11638         can be used for a type of the formal parameter.
11639         (propagate_vals_across_ancestor): Likewise.
11640         (propagate_scalar_across_jump_function): Likewise.  Pass the type
11641         also to propagate_vals_across_ancestor.
11642
11643 2021-03-24  Christophe Lyon  <christophe.lyon@linaro.org>
11644
11645         PR target/99727
11646         * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
11647         constraint.
11648         (movmisalign<mode>_mve_load): Likewise.
11649
11650 2021-03-24  Jakub Jelinek  <jakub@redhat.com>
11651
11652         PR target/99724
11653         * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
11654         movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
11655
11656 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
11657
11658         * doc/sourcebuild.texi (sysconf): New effective target.
11659
11660 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
11661
11662         * config/i386/predicates.md (reg_or_const_vec_operand): New.
11663         * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
11664         the now *-prefixed insn_and_split, turn the splitter const vec
11665         into an input for the insn, making it an ignored immediate for
11666         non-split cases, and loaded into the scratch register
11667         otherwise.
11668
11669 2021-03-23  Vladimir N. Makarov  <vmakarov@redhat.com>
11670
11671         PR target/99581
11672         * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
11673         Use define_relaxed_memory_constraint for them.
11674
11675 2021-03-23  Iain Sandoe  <iain@sandoe.co.uk>
11676
11677         PR target/99733
11678         * config/host-darwin.c (darwin_gt_pch_use_address): Add a
11679         colon to the diagnostic message.
11680
11681 2021-03-23  Ilya Leoshkevich  <iii@linux.ibm.com>
11682
11683         * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
11684         set_info's uses.
11685         (try_fwprop_subst_note): Use set_info instead of insn_info.
11686         (try_fwprop_subst_pattern): Likewise.
11687         (try_fwprop_subst_notes): Likewise.
11688         (try_fwprop_subst): Likewise.
11689         (forward_propagate_subreg): Likewise.
11690         (forward_propagate_and_simplify): Likewise.
11691         (forward_propagate_into): Likewise.
11692         * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
11693         method.
11694         (set_info::single_nondebug_insn_use): Likewise.
11695         (set_info::single_phi_use): Likewise.
11696         * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
11697         method.
11698         (set_info::single_nondebug_insn_use): Likewise.
11699         (set_info::single_phi_use): Likewise.
11700
11701 2021-03-23  Christophe Lyon  <christophe.lyon@linaro.org>
11702
11703         * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
11704
11705 2021-03-23  Jakub Jelinek  <jakub@redhat.com>
11706
11707         PR target/99540
11708         * config/aarch64/aarch64.c (aarch64_add_offset): Tell
11709         expand_mult to perform an unsigned rather than a signed
11710         multiplication.
11711
11712 2021-03-23  H.J. Lu  <hjl.tools@gmail.com>
11713
11714         PR target/99704
11715         * config/i386/cpuid.h (__cpuid): Add __volatile__.
11716         (__cpuid_count): Likewise.
11717
11718 2021-03-23  Richard Biener  <rguenther@suse.de>
11719
11720         PR tree-optimization/99721
11721         * tree-vect-slp.c (vect_slp_analyze_node_operations):
11722         Make sure we can schedule the node.
11723
11724 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
11725
11726         * config/riscv/riscv.c (riscv_subword): Take endianness into
11727         account when calculating the byte offset.
11728
11729 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
11730
11731         * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
11732         * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
11733         (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
11734         (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
11735         (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
11736         new predicate "subreg_lowpart_operator"
11737
11738 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
11739
11740         * config/riscv/riscv.c (riscv_swap_instruction): New function
11741         to byteswap an SImode rtx containing an instruction.
11742         (riscv_trampoline_init): Byteswap the generated instructions
11743         when needed.
11744
11745 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
11746
11747         * common/config/riscv/riscv-common.c
11748         (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
11749         * config.gcc (riscv32be-*, riscv64be-*): Set
11750         TARGET_BIG_ENDIAN_DEFAULT to 1.
11751         * config/riscv/elf.h (LINK_SPEC): Change -melf* value
11752         depending on default endianness.
11753         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
11754         * config/riscv/linux.h (LINK_SPEC): Likewise.
11755         * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
11756         default endianness.
11757         * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
11758
11759 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
11760
11761         * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
11762         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
11763         * config/riscv/linux.h (LINK_SPEC): Likewise.
11764         * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
11765         -mlittle-endian.
11766         (BYTES_BIG_ENDIAN): Handle big endian.
11767         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
11768         * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
11769         options.
11770         * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
11771
11772 2021-03-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
11773
11774         * regcprop.c (find_oldest_value_reg): Ask target whether
11775           different mode is fine for replacement register.
11776
11777 2021-03-23  Aldy Hernandez  <aldyh@redhat.com>
11778
11779         PR tree-optimization/99296
11780         * value-range.cc (irange::irange_set_1bit_anti_range): New.
11781         (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
11782         * value-range.h (irange::irange_set_1bit_anti_range): New.
11783
11784 2021-03-22  Vladimir N. Makarov  <vmakarov@redhat.com>
11785
11786         PR target/99581
11787         * config/aarch64/constraints.md (UtQ): Use
11788         define_relaxed_memory_constraint for it.
11789         * doc/md.texi (define_relaxed_memory_constraint): Describe it.
11790         * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
11791         * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
11792         (have_relaxed_memory_constraints): New static var.
11793         (relaxed_memory_start, relaxed_memory_end): Ditto.
11794         (add_constraint): Add arg is_relaxed_memory.  Check name for
11795         relaxed memory.  Set up is_relaxed_memory in constraint_data and
11796         have_relaxed_memory_constraints.  Adjust calls.
11797         (choose_enum_order): Process relaxed memory.
11798         (write_tm_preds_h): Ditto.
11799         (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
11800         * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
11801         * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
11802         * ira-lives.c (single_reg_class): Use
11803         insn_extra_relaxed_memory_constraint.
11804         * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
11805         * lra-constraints.c (valid_address_p): Use
11806         insn_extra_relaxed_memory_constraint instead of other memory
11807         constraints.
11808         (process_alt_operands): Process CT_RELAXED_MEMORY.
11809         (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
11810         * recog.c (asm_operand_ok, preprocess_constraints): Process
11811         CT_RELAXED_MEMORY.
11812         * reload.c (find_reloads): Ditto.
11813         * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
11814         * stmt.c (parse_input_constraint): Use
11815         insn_extra_relaxed_memory_constraint.
11816
11817 2021-03-22  Segher Boessenkool  <segher@kernel.crashing.org>
11818
11819         PR target/97926
11820         * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
11821         there are no NaNs.
11822
11823 2021-03-22  Alex Coplan  <alex.coplan@arm.com>
11824
11825         PR target/97252
11826         * config/arm/arm-protos.h (neon_make_constant): Add generate
11827         argument to guard emitting insns, default to true.
11828         * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
11829         CONST_VECTORs which neon_make_constant can't handle.
11830         (neon_vdup_constant): Add generate argument, avoid emitting
11831         insns if it's not set.
11832         (neon_make_constant): Plumb new generate argument through.
11833         * config/arm/constraints.md (Ui): New. Use it...
11834         * config/arm/mve.md (*mve_mov<mode>): ... here.
11835         * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
11836         synthesize constants.
11837
11838 2021-03-22  Richard Biener  <rguenther@suse.de>
11839
11840         * debug.h: Add deprecation warning.
11841
11842 2021-03-22  Richard Biener  <rguenther@suse.de>
11843
11844         PR tree-optimization/99694
11845         * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
11846         PHI result.
11847
11848 2021-03-22  Kito Cheng  <kito.cheng@sifive.com>
11849
11850         PR target/99702
11851         * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
11852         after type checking.
11853
11854 2021-03-22  Jakub Jelinek  <jakub@redhat.com>
11855
11856         PR debug/99562
11857         PR debug/66728
11858         * dwarf2out.c (get_full_len): Use get_precision rather than
11859         min_precision.
11860         (add_const_value_attribute): Make sure add_AT_wide argument has
11861         precision prec rather than some very wide one.
11862
11863 2021-03-22  Kewen Lin  <linkw@linux.ibm.com>
11864
11865         * config/rs6000/rs6000.md (*rotldi3_insert_sf,
11866         *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
11867         floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
11868         floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
11869         *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
11870         fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
11871         *round32<mode>2_fprs, *roundu32<mode>2_fprs,
11872         *fix_trunc<mode>si2_internal): Fix empty split condition.
11873         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
11874         vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
11875         *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
11876         *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
11877
11878 2021-03-22  Xionghu Luo  <luoxhu@linux.ibm.com>
11879
11880         PR target/98914
11881         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
11882         Convert idx to DImode.
11883         (rs6000_expand_vector_set_var_p8): Likewise.
11884
11885 2021-03-21  Jakub Jelinek  <jakub@redhat.com>
11886
11887         PR debug/99388
11888         * dwarf2out.c (insert_float): Change return type from void to
11889         unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
11890         (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
11891         Adjust callers.
11892
11893 2021-03-20  H.J. Lu  <hjl.tools@gmail.com>
11894
11895         PR target/99679
11896         * config/i386/i386.c (construct_container): Check cfun != NULL
11897         before accessing silent_p.
11898
11899 2021-03-20  Ahamed Husni  <ahamedhusni73@gmail.com>
11900
11901         * asan.c: Fix typos in comments.
11902
11903 2021-03-20  Vladimir N. Makarov  <vmakarov@redhat.com>
11904
11905         PR rtl-optimization/99680
11906         * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
11907         (process_address_1): Check empty constraint before using
11908         CONSTRAINT_LEN.
11909
11910 2021-03-19  Pat Haugen  <pthaugen@linux.ibm.com>
11911
11912         * config/rs6000/rs6000.c (power10_cost): New.
11913         (rs6000_option_override_internal): Set Power10 costs.
11914         (rs6000_issue_rate): Set Power10 issue rate.
11915         * config/rs6000/power10.md: Rewrite for Power10.
11916
11917 2021-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
11918
11919         PR target/99663
11920         * lra-constraints.c (process_address_1): Don't use unknown
11921         constraint for address constraint.
11922
11923 2021-03-19  Iain Sandoe  <iain@sandoe.co.uk>
11924
11925         PR target/99661
11926         * config.gcc (powerpc-*-darwin8): Delete the reference to
11927         the now removed darwin8.h.
11928
11929 2021-03-19  Olivier Hainque  <hainque@adacore.com>
11930
11931         PR target/99660
11932         * config/vxworksae.h (VX_CPU_PREFIX): Define.
11933
11934 2021-03-19  John David Anglin  <danglin@gcc.gnu.org>
11935
11936         * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
11937
11938 2021-03-19  Tamar Christina  <tamar.christina@arm.com>
11939
11940         PR tree-optimization/99656
11941         * tree-vect-slp-patterns.c (linear_loads_p,
11942         complex_add_pattern::matches, is_eq_or_top,
11943         vect_validate_multiplication, complex_mul_pattern::matches,
11944         complex_fms_pattern::matches): Remove complex_perm_kinds_t.
11945         * tree-vectorizer.h: (complex_load_perm_t): Removed.
11946         (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
11947         complex_load_perm_t.
11948
11949 2021-03-19  H.J. Lu  <hjl.tools@gmail.com>
11950
11951         PR target/99652
11952         * config/i386/i386-options.c (ix86_init_machine_status): Set
11953         silent_p to true.
11954         * config/i386/i386.c (init_cumulative_args): Set silent_p to
11955         false.
11956         (construct_container): Return early for return and argument
11957         errors if silent_p is true.
11958         * config/i386/i386.h (machine_function): Add silent_p.
11959
11960 2021-03-19  Jakub Jelinek  <jakub@redhat.com>
11961
11962         PR target/99593
11963         * config/arm/constraints.md (Ds): New constraint.
11964         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
11965         constraint instead of w,Dm.
11966
11967 2021-03-19  Andrew Stubbs  <ams@codesourcery.com>
11968
11969         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
11970         in error message.
11971
11972 2021-03-19  Eric Botcazou  <ebotcazou@adacore.com>
11973
11974         PR middle-end/99641
11975         * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
11976         array type, do the computation of the current position in sizetype.
11977
11978 2021-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
11979
11980         PR target/99422
11981         * lra-constraints.c (process_address_1): Use lookup_constraint
11982         only for a single constraint.
11983
11984 2021-03-18  Martin Sebor  <msebor@redhat.com>
11985
11986         PR middle-end/99502
11987         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
11988         (inbounds_memaccess_p): ...to this.  Check the ending offset of
11989         the accessed member.
11990
11991 2021-03-18  Andrew Stubbs  <ams@codesourcery.com>
11992
11993         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
11994           %> quote markers to error messages.
11995         (gcn_goacc_validate_dims): Likewise.
11996         (gcn_conditional_register_usage): Remove exclaimation mark from error
11997         message.
11998         (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
11999
12000 2021-03-18  Jan Hubicka  <hubicka@ucw.cz>
12001
12002         * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
12003         integer divides1.
12004
12005 2021-03-18  Sinan Lin  <sinan@isrc.iscas.ac.cn>
12006             Kito Cheng  <kito.cheng@sifive.com>
12007
12008         * config/riscv/riscv.c (riscv_block_move_straight): Change type
12009         to unsigned HOST_WIDE_INT for parameter and local variable with
12010         HOST_WIDE_INT type.
12011         (riscv_adjust_block_mem): Ditto.
12012         (riscv_block_move_loop): Ditto.
12013         (riscv_expand_block_move): Ditto.
12014
12015 2021-03-18  Nick Clifton  <nickc@redhat.com>
12016
12017         * config/v850/v850.c (construct_restore_jr): Increase static
12018          buffer size.
12019         (construct_save_jarl): Likewise.
12020         * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
12021
12022 2021-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12023
12024         * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
12025         (aarch64_override_options_internal): Use it.
12026         (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
12027         tune_flags.
12028
12029 2021-03-17  Sandra Loosemore  <sandra@codesourcery.com>
12030
12031         * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
12032         error message format issues.
12033         (nios2_option_override): Likewise.
12034         (nios2_expand_fpu_builtin): Likewise.
12035         (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
12036         truncation warning.
12037         (nios2_expand_custom_builtin): More error message format fixes.
12038         (nios2_expand_rdwrctl_builtin): Likewise.
12039         (nios2_expand_rdprs_builtin): Likewise.
12040         (nios2_expand_eni_builtin): Likewise.
12041         (nios2_expand_builtin): Likewise.
12042         (nios2_register_custom_code): Likewise.
12043         (nios2_valid_target_attribute_rec): Likewise.
12044         (nios2_add_insn_asm): Fix uninitialized variable warning.
12045
12046 2021-03-17  Jan Hubicka  <jh@suse.cz>
12047
12048         * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
12049         of gather to match reality.
12050         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
12051
12052 2021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12053
12054         * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
12055         to compare against CC_REG rather than NE.
12056
12057 2021-03-17  H.J. Lu  <hjl.tools@gmail.com>
12058
12059         PR target/99504
12060         * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
12061         inline assembly statements.
12062         (ix86_print_operand): Update 'P' handling for -fno-plt.
12063
12064 2021-03-17  Tamar Christina  <tamar.christina@arm.com>
12065
12066         PR target/99542
12067         * config/aarch64/aarch64.c
12068         (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
12069
12070 2021-03-16  Segher Boessenkool  <segher@kernel.crashing.org>
12071
12072         PR target/98092
12073         * config/rs6000/predicates.md (branch_comparison_operator): Allow
12074         ordered and unordered for CCFPmode, if flag_finite_math_only.
12075
12076 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
12077
12078         PR target/99600
12079         * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
12080         rather than ASHIFT.
12081         * config/i386/i386.md (mult by 1248 into ashift): New splitter.
12082
12083 2021-03-16  Martin Liska  <mliska@suse.cz>
12084
12085         PR target/99592
12086         * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
12087         cl_optimization_compare function.
12088
12089 2021-03-16  Ilya Leoshkevich  <iii@linux.ibm.com>
12090
12091         * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
12092         as "v".
12093
12094 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
12095
12096         PR target/99563
12097         * config/i386/i386.h (struct machine_function): Add
12098         has_explicit_vzeroupper bitfield.
12099         * config/i386/i386-expand.c (ix86_expand_builtin): Set
12100         cfun->machine->has_explicit_vzeroupper when expanding
12101         IX86_BUILTIN_VZEROUPPER.
12102         * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
12103         Do the mode switching only when TARGET_VZEROUPPER, expensive
12104         optimizations turned on and not optimizing for size.
12105         (pass_insert_vzeroupper::gate): Enable even when
12106         cfun->machine->has_explicit_vzeroupper is set.
12107
12108 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
12109
12110         PR target/99542
12111         * config/aarch64/aarch64.c
12112         (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
12113         definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
12114         instead of DECL_ARGUMENTS.  Ignore types for uniform arguments.
12115
12116 2021-03-15  Richard Biener  <rguenther@suse.de>
12117
12118         PR tree-optimization/98834
12119         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
12120         subsetting by truncating the access size.
12121
12122 2021-03-15  Jan Hubicka  <hubicka@ucw.cz>
12123
12124         * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
12125         * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
12126         of znver2_cost.
12127
12128 2021-03-15  Martin Liska  <mliska@suse.cz>
12129
12130         * spellcheck.c: Add missing comma in initialization.
12131
12132 2021-03-14  Uroš Bizjak  <ubizjak@gmail.com>
12133
12134         * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
12135         alternative 2 and alternative 1 with alternative 3 using
12136         YW register constraint.
12137         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
12138         using YW register constraint.
12139         (*vec_extractv16qi_zext): Ditto.
12140         (*vec_extractv4si): Merge alternatives 4 and 5
12141         using Yw register constraint.
12142         (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
12143
12144 2021-03-13  Martin Sebor  <msebor@redhat.com>
12145
12146         PR tree-optimization/99489
12147         * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
12148         is not a call statement.
12149
12150 2021-03-13  Jakub Jelinek  <jakub@redhat.com>
12151
12152         PR tree-optimization/99544
12153         * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
12154         if for vector types multiplication can't be done in type's mode.
12155
12156 2021-03-12  Eric Botcazou  <ebotcazou@adacore.com>
12157
12158         PR target/99422
12159         * config/sparc/constraints.md (w): Rename to...
12160         (W): ... this and ditch previous implementation.
12161         * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
12162         (*movdf_insn_sp64): Likewise.
12163         (*mov<VM64:mode>_insn_sp64): Likewise.
12164         * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
12165         w with W.
12166         (atomic_compare_and_swap_leon3_1): Likewise.
12167         (*atomic_compare_and_swapdi_v8plus): Likewise.
12168         * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
12169         architecture and add missing address validity check during LRA.
12170
12171 2021-03-12  Tobias Burnus  <tobias@codesourcery.com>
12172
12173         PR fortran/98858
12174         * gimplify.c (omp_add_variable): Handle NULL_TREE as size
12175         occuring for assumed-size arrays in use_device_{ptr,addr}.
12176
12177 2021-03-12  Jakub Jelinek  <jakub@redhat.com>
12178
12179         PR target/99321
12180         * config/i386/constraints.md (YW): New internal constraint.
12181         * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
12182         (*<sse2_avx2>_<insn><mode>3<mask_name>,
12183         *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
12184         *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
12185         constraints.
12186         (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
12187         (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
12188         avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
12189         into one, use Yw instead of former x,v.
12190         (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
12191         the last alternative.
12192         (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
12193         <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
12194         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
12195         <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
12196         into one, use <v_Yw> instead of former x,v.
12197         (avx2_interleave_highv32qi<mask_name>,
12198         vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
12199         constraints.  Add && <mask_avx512bw_condition> to condition.
12200         (avx2_interleave_lowv32qi<mask_name>,
12201         vec_interleave_lowv16qi<mask_name>,
12202         avx2_interleave_highv16hi<mask_name>,
12203         vec_interleave_highv8hi<mask_name>,
12204         avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
12205         avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
12206         avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
12207         avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
12208         *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
12209         Yw instead of v in constraints.
12210         * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
12211         (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
12212         instead of Yv in constraints.
12213         (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
12214         *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
12215         *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
12216         mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
12217         *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
12218         constraints.
12219         (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
12220         *mmx_pextrb_zext): Use YW instead of Yv in constraints.
12221         (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
12222         (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
12223         two, one with just x, another isa avx512vl with v.
12224
12225 2021-03-12  Martin Liska  <mliska@suse.cz>
12226
12227         * doc/invoke.texi: Add missing param documentation.
12228
12229 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
12230
12231         PR analyzer/96374
12232         * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
12233         analyzer/trimmed-graph.o.
12234         * doc/analyzer.texi (Analyzer Paths): Rewrite description of
12235         feasibility checking to reflect new implementation.
12236         * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
12237         option.
12238         * shortest-paths.h (shortest_paths::get_shortest_distance): New.
12239
12240 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
12241
12242         * digraph.cc (selftest::test_shortest_paths): Update
12243         shortest_paths init for new param.  Add test of
12244         SPS_TO_GIVEN_TARGET.
12245         * shortest-paths.h (enum shortest_path_sense): New.
12246         (shortest_paths::shortest_paths): Add "sense" param.
12247         Update for renamings.  Generalize to use "sense" param.
12248         (shortest_paths::get_shortest_path): Rename param.
12249         (shortest_paths::m_sense): New field.
12250         (shortest_paths::m_prev): Rename...
12251         (shortest_paths::m_best_edge): ...to this.
12252         (shortest_paths::get_shortest_path): Update for renamings.
12253         Conditionalize flipping of path on sense of traversal.
12254
12255 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
12256
12257         * digraph.cc (selftest::test_shortest_paths): Add test coverage
12258         for paths from B and C.
12259         * shortest-paths.h (shortest_paths::shortest_paths): Handle
12260         unreachable nodes, rather than asserting.
12261
12262 2021-03-11  David Edelsohn  <dje.gcc@gmail.com>
12263
12264         PR target/99094
12265         * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
12266         xcoff_tbss_section_name.
12267         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
12268         * xcoffout.c (xcoff_tbss_section_name): Delete.
12269         * xcoffout.h (xcoff_tbss_section_name): Delete.
12270
12271 2021-03-11  Richard Biener  <rguenther@suse.de>
12272
12273         PR tree-optimization/99523
12274         * tree-cfg.c (dump_function_to_file): Dump SSA names
12275         w/o identifier to the decls section as well, not only those
12276         without a VAR_DECL.
12277
12278 2021-03-11  Jakub Jelinek  <jakub@redhat.com>
12279
12280         PR ipa/99517
12281         * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
12282         function calls with lhs fail if the lhs don't have compatible types.
12283
12284 2021-03-11  Hans-Peter Nilsson  <hp@axis.com>
12285
12286         * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
12287         Change FRAME_POINTER_REGNUM to correspond to a new faked
12288         register faked_fp, part of GENNONACR_REGS like faked_ap.
12289         (CRIS_FAKED_REGS_CONTENTS): New helper macro.
12290         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
12291         (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
12292         (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
12293         * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
12294         register.
12295         (CRIS_REAL_FP_REGNUM): New constant.
12296         * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
12297         for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
12298         (cris_initial_elimination_offset): Handle elimination changes
12299         to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
12300         and add one from FRAME_POINTER_REGNUM to
12301         HARD_FRAME_POINTER_REGNUM.
12302         (cris_expand_prologue, cris_expand_epilogue): Emit code for
12303         hard_frame_pointer_rtx instead of frame_pointer_rtx.
12304
12305 2021-03-10  David Edelsohn  <dje.gcc@gmail.com>
12306
12307         PR target/99492
12308         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
12309         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
12310
12311 2021-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
12312
12313         PR target/99422
12314         * lra-constraints.c (process_address_1): Don't check unknown
12315         constraint, use X for empty constraint.
12316
12317 2021-03-10  Alex Coplan  <alex.coplan@arm.com>
12318
12319         * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
12320         Fix typo in comment describing "is_ha" argument.
12321
12322 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
12323
12324         * doc/sourcebuild.texi: Document LRA target selector.
12325
12326 2021-03-10  David Malcolm  <dmalcolm@redhat.com>
12327
12328         * doc/ux.texi: Add subsection contrasting interactive versus
12329         batch usage of GCC.
12330
12331 2021-03-10  Joel Hutton  <joel.hutton@arm.com>
12332
12333         PR target/99102
12334         * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
12335         check condition.
12336         (vectorizable_load): Fix gather load mask check condition.
12337
12338 2021-03-10  Richard Biener  <rguenther@suse.de>
12339
12340         PR tree-optimization/99510
12341         * tree.c (check_aligned_type): Check that the candidate
12342         has TYPE_USER_ALIGN set instead of matching with the
12343         original type.
12344
12345 2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
12346
12347         * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
12348         float and vector integer modes only if the mode is not larger.
12349
12350 2021-03-10  Hans-Peter Nilsson  <hp@axis.com>
12351
12352         * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
12353
12354 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
12355
12356         * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
12357         constraints > 9.
12358         * ira-lives.c (single_reg_class): Ditto.
12359
12360 2021-03-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12361
12362         * config.gcc (aarch64-*-rtems*): Include general rtems.h after
12363         the architecture-specific rtems.h.
12364         (aarch64-*-rtems*): Likewise.
12365         (arm*-*-rtems*): Likewise.
12366         (epiphany-*-rtems*): Likewise.
12367         (riscv*-*-rtems*): Likewise.
12368
12369 2021-03-09  Jakub Jelinek  <jakub@redhat.com>
12370
12371         PR tree-optimization/99305
12372         * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
12373         before integer_all_onesp instead of vice versa.
12374
12375 2021-03-09  Richard Earnshaw  <rearnsha@arm.com>
12376
12377         * common/config/arm/arm-common.c (arm_config_default): Change type
12378         of 'i' to unsigned.
12379
12380 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
12381
12382         PR target/99454
12383         * lra-constraints.c (process_address_1): Process constraint 'g'
12384         separately and digital constraints containing more one digit.
12385
12386 2021-03-09  Nick Clifton  <nickc@redhat.com>
12387
12388         * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
12389         (DWARF"_DEBUGGING_INFO): Define.
12390
12391 2021-03-09  Eric Botcazou  <ebotcazou@adacore.com>
12392
12393         PR c++/90448
12394         * calls.c (initialize_argument_information): When the argument
12395         is passed by reference, do not make a copy in a thunk only if
12396         the argument is already in memory.  Remove redundant test for
12397         the case of callee copy.
12398
12399 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
12400
12401         PR target/99454
12402         * lra-constraints.c (process_address_1): Process 0..9 constraints
12403         in process_address_1.
12404
12405 2021-03-09  Andreas Krebbel  <krebbel@linux.ibm.com>
12406
12407         * config/s390/s390.c (struct s390_processor processor_table):
12408         Binutils name string must not be empty.
12409
12410 2021-03-09  Claudiu Zissulescu  <claziss@synopsys.com>
12411
12412         * config/arc/arc.c (arc_attr_type): Remove function.
12413
12414 2021-03-09  Martin Liska  <mliska@suse.cz>
12415
12416         PR target/99464
12417         * config/i386/i386-options.c (ix86_option_override_internal):
12418         Set isa_flags for OPTS argument and not for the global
12419         global_options.
12420
12421 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
12422
12423         * config/rs6000/predicates.md (ds_form_mem_operand): Check
12424         in correct code.
12425
12426 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
12427
12428         PR target/99070
12429         * config/rs6000/predicates.md (ds_form_mem_operand) New
12430         predicate.
12431         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
12432         ds_form_mem_operand in ld/lwa patterns.
12433         * config/rs6000/fusion.md: Regenerate file.
12434
12435 2021-03-08  Martin Sebor  <msebor@redhat.com>
12436
12437         PR middle-end/98266
12438         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
12439         (array_bounds_checker::check_array_bounds): Call it.
12440
12441 2021-03-08  Martin Sebor  <msebor@redhat.com>
12442
12443         PR middle-end/97631
12444         * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
12445         (handle_builtin_stxncpy_strncat): Rename locals.  Determine
12446         destination size from allocation calls.  Issue a more appropriate
12447         kind of warning.
12448         (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
12449         (handle_builtin_memset): Same.
12450
12451 2021-03-08  Peter Bergner  <bergner@linux.ibm.com>
12452
12453         PR target/98959
12454         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
12455         to ensure we do not have an Altivec style address.
12456         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
12457         an Altivec style address.
12458         (*vsx_le_perm_store_<mode>): Likewise.
12459         (splitters after *vsx_le_perm_store_<mode>): Likewise.
12460         (vsx_load_<mode>): Disable special expander if passed an Altivec
12461         style address.
12462         (vsx_store_<mode>): Likewise.
12463
12464 2021-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12465
12466         PR target/99437
12467         * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
12468         (aarch64_simd_shift_imm_vec_hi): Likewise.
12469         (aarch64_simd_shift_imm_vec_si): Likewise.
12470         (aarch64_simd_shift_imm_vec_di): Likewise.
12471         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
12472         predicate from above.
12473         (aarch64_shrn<mode>_insn_be): Likewise.
12474         (aarch64_rshrn<mode>_insn_le): Likewise.
12475         (aarch64_rshrn<mode>_insn_be): Likewise.
12476         (aarch64_shrn2<mode>_insn_le): Likewise.
12477         (aarch64_shrn2<mode>_insn_be): Likewise.
12478         (aarch64_rshrn2<mode>_insn_le): Likewise.
12479         (aarch64_rshrn2<mode>_insn_be): Likewise.
12480
12481 2021-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
12482
12483         PR target/99422
12484         * lra-constraints.c (skip_contraint_modifiers): New function.
12485         (process_address_1): Use it before lookup_constraint call.
12486
12487 2021-03-08  Martin Liska  <mliska@suse.cz>
12488
12489         PR target/99463
12490         * config/i386/i386-options.c (ix86_option_override_internal):
12491         Enable UINTR and HRESET for -march that supports it.
12492
12493 2021-03-08  Ilya Leoshkevich  <iii@linux.ibm.com>
12494
12495         * config/s390/s390.c (f_constraint_p): New function.
12496         (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
12497         (TARGET_MD_ASM_ADJUST): Likewise.
12498
12499 2021-03-08  Tobias Burnus  <tobias@codesourcery.com>
12500
12501         PR fortran/97927
12502         * tree-nested.c (convert_local_reference_stmt): Avoid calling
12503         lookup_field_for_decl for Fortran module (= namespace context).
12504
12505 2021-03-08  Andreas Krebbel  <krebbel@linux.ibm.com>
12506
12507         * config/s390/s390.c (s390_expand_vec_compare): Implement <0
12508         comparison with arithmetic right shift.
12509         (s390_expand_vcond): No need for a force_reg anymore.
12510         s390_vec_compare will do it.
12511         * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
12512         immediate operands.
12513
12514 2021-03-07  Jakub Jelinek  <jakub@redhat.com>
12515
12516         PR target/99321
12517         * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
12518         but TARGET_AVX512BW or TARGET_AVX512VL is not set.  Adjust description
12519         and comment.
12520         * config/i386/sse.md (v_Yw): New define_mode_attr.
12521         (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
12522         *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
12523         in constraints.
12524         * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
12525         xYw in constraints.
12526
12527 2021-03-06  Julian Brown  <julian@codesourcery.com>
12528
12529         * tree-pretty-print.c (dump_generic_node): Emit non-generic
12530         address space info for aggregates.
12531
12532 2021-03-06  Hans-Peter Nilsson  <hp@axis.com>
12533
12534         * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
12535
12536 2021-03-05  Jakub Jelinek  <jakub@redhat.com>
12537
12538         PR middle-end/99322
12539         * tree-cfg.c (bb_to_omp_idx): New variable.
12540         (execute_build_cfg): Release the bb_to_omp_idx vector after
12541         cleanup_tree_cfg returns.
12542         (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
12543         for bb_to_omp_idx being a vec<int> instead of pointer to array
12544         of ints.
12545         (make_edges): Remove bb_to_omp_idx local variable, don't pass
12546         it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
12547         vec<int> instead of pointer to array of ints and don't free/release
12548         it at the end.
12549         (remove_bb): When removing a bb and placing forced label somewhere
12550         else, ensure it is put into the same OpenMP region during cfg
12551         pass if possible or to entry successor as fallback.  Unregister
12552         bb from bb_to_omp_idx.
12553
12554 2021-03-05  Vladimir N. Makarov  <vmakarov@redhat.com>
12555
12556         PR target/99378
12557         * lra-constraints.c (process_address_1): Skip decomposing address
12558         for asm insn operand with unknown constraint.
12559
12560 2021-03-05  Martin Jambor  <mjambor@suse.cz>
12561
12562         PR ipa/98078
12563         * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
12564         corresponding speculative edges if we are about to resolve
12565         sepculation.  Make edge direct (and so resolve speculations) before
12566         removing it from call_site_hash.
12567         (cgraph_edge::make_direct): Relax the initial assert to allow calling
12568         the function on speculative direct edges.
12569
12570 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
12571
12572         PR rtl-optimization/99376
12573         * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
12574         of low-order zero bits is too large, set the result to 0 directly.
12575
12576 2021-03-04  Jakub Jelinek  <jakub@redhat.com>
12577
12578         PR middle-end/93235
12579         * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
12580         SUBREG and a SUBREG to op_mode can't be created.
12581
12582 2021-03-04  Alex Coplan  <alex.coplan@arm.com>
12583
12584         PR target/99381
12585         * config/aarch64/aarch64-sve-builtins.cc
12586         (function_resolver::require_vector_type): Handle error_mark_node.
12587
12588 2021-03-04  Ilya Leoshkevich  <iii@linux.ibm.com>
12589
12590         * cfgexpand.c (expand_asm_loc): Pass new parameter.
12591         (expand_asm_stmt): Likewise.
12592         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
12593         parameter.
12594         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
12595         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
12596         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
12597         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
12598         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
12599         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
12600         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
12601         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
12602         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
12603         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
12604         * doc/tm.texi (md_asm_adjust): Likewise.
12605         * target.def (md_asm_adjust): Likewise.
12606
12607 2021-03-04  Richard Biener  <rguenther@suse.de>
12608
12609         PR middle-end/97855
12610         * tree-pretty-print.c: Poison pp_printf.
12611         (dump_decl_name): Avoid use of pp_printf.
12612         (dump_block_node): Likewise.
12613         (dump_generic_node): Likewise.
12614
12615 2021-03-04  Martin Sebor  <msebor@redhat.com>
12616
12617         PR middle-end/96963
12618         PR middle-end/94655
12619         * builtins.c (handle_array_ref): New helper.
12620         (handle_mem_ref): New helper.
12621         (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
12622         into new helper functions.  Correct a workaround for vectorized
12623         assignments.
12624
12625 2021-03-03  Pat Haugen  <pthaugen@linux.ibm.com>
12626
12627         * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
12628         floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
12629         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
12630         *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
12631         attribute for Power10.
12632         * config/rs6000/mma.md (*movoo): Likewise.
12633         * config/rs6000/rs6000.md (define_attr "size"): Add 256.
12634         (define_mode_attr bits): Add DD/TD modes.
12635         * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
12636         store_conditionalpti): Update size attribute for Power10.
12637
12638 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12639
12640         PR bootstrap/92002
12641         * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
12642         -Wuninitialized, -Wmaybe-uninitialized.
12643         (wide-int.o-warn): Likewise.
12644
12645 2021-03-03  Richard Earnshaw  <rearnsha@arm.com>
12646
12647         * common/config/arm/arm-common.c: Include configargs.h.
12648         (arm_config_default): New function.
12649         (arm_target_mode): Renamed from arm_target_thumb_only.  Handle
12650         processors that do not support Thumb.  Take into account the
12651         --with-mode configuration setting for selecting the default.
12652         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
12653         (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
12654
12655 2021-03-03  Martin Liska  <mliska@suse.cz>
12656
12657         PR gcov-profile/97461
12658         * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
12659
12660 2021-03-03  Eric Botcazou  <ebotcazou@adacore.com>
12661
12662         PR target/99234
12663         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
12664         point back the hard frame pointer to its default location when the
12665         frame is larger than SEH_MAX_FRAME_SIZE.
12666
12667 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
12668
12669         PR target/99321
12670         * config/i386/predicates.md (logic_operator): New define_predicate.
12671         * config/i386/i386.md (mov + mem using comm arith peephole2):
12672         Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
12673         and the inner mode is [QH]Imode.
12674
12675 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
12676
12677         PR debug/99090
12678         * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
12679         (new_loc_list): Clear end_entry.
12680         (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
12681         if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx.  Fix comment
12682         typo.
12683         (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
12684         initialize also end_entry.
12685
12686 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
12687
12688         PR target/99085
12689         * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
12690         partitions, if in non-layout mode after reorder_blocks also move
12691         affected blocks to ensure a single partition transition.
12692
12693 2021-03-03  Jason Merrill  <jason@redhat.com>
12694
12695         PR c++/96078
12696         * cgraphunit.c (process_function_and_variable_attributes): Don't
12697         warn about flatten on an alias if the target also has it.
12698         * cgraph.h (symtab_node::get_alias_target_tree): New.
12699
12700 2021-03-02  David Edelsohn  <dje.gcc@gmail.com>
12701
12702         * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
12703         period to symbol name.
12704         (tls_get_addr_internal<mode>): Same.
12705
12706 2021-03-02  David Malcolm  <dmalcolm@redhat.com>
12707
12708         PR c/99323
12709         * diagnostic-show-locus.c
12710         (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
12711         column 0.
12712
12713 2021-03-02  Martin Sebor  <msebor@redhat.com>
12714
12715         PR middle-end/99276
12716         * builtins.c (warn_for_access): Remove stray warning text.
12717
12718 2021-03-02  Martin Sebor  <msebor@redhat.com>
12719
12720         PR middle-end/99295
12721         * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
12722         property.
12723
12724 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
12725
12726         PR debug/99319
12727         * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
12728         -gdwarf-5 -gstrict-dwarf.  For -gsplit-dwarf -gdwarf-5 use
12729         DW_MACRO_*_strx instead of DW_MACRO_*_strp.  Handle
12730         DW_MACRO_define_strx and DW_MACRO_undef_strx.
12731         (save_macinfo_strings): Use DW_MACRO_*_str* even with
12732         -gdwarf-5 -gstrict-dwarf.  Handle DW_MACRO_define_strx and
12733         DW_MACRO_undef_strx.
12734
12735 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
12736
12737         * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
12738         builtin signature.
12739         (BT_FN_V8HI_V8HI_UINT): Likewise.
12740         (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
12741         * config/s390/s390-builtins.def (B_NNPA): New macro definition.
12742         (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
12743         New builtin definitions.
12744         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
12745         vector extension version.
12746         * config/s390/s390.c (s390_expand_builtin): Check if builtins are
12747         available with current -march level.
12748         * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
12749         (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
12750         (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
12751         * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
12752         (vec_extend_to_fp32_lo): Likewise.
12753         (vec_round_from_fp32): Likewise.
12754         (vec_convert_to_fp16): Likewise.
12755         (vec_convert_from_fp16): Likewise.
12756         * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
12757         (vclfnls_v8hi): Likewise.
12758         (vcrnfs_v8hi): Likewise.
12759         (vcfn_v8hi): Likewise.
12760         (vcnf_v8hi): Likewise.
12761
12762 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
12763
12764         * common/config/s390/s390-common.c (processor_flags_table): New entry.
12765         * config.gcc: Enable arch14 for --with-arch and --with-tune.
12766         * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
12767         arch14 for unknown CPU models.
12768         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
12769         * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
12770         (s390_get_sched_attrmask): Likewise.
12771         (s390_get_unit_mask): Likewise.
12772         * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
12773         (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
12774         (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
12775         (TARGET_NNPA_P): New macro definitions.
12776         * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
12777         * config/s390/s390.opt: Add PROCESSOR_ARCH14.
12778
12779 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
12780
12781         PR middle-end/95757
12782         * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
12783         condition.  Call register_edge_assert_for_1 for == 0, != 0, == 1 and
12784         != 1 comparisons if name is lhs of a comparison.
12785
12786 2021-03-01  Iain Sandoe  <iain@sandoe.co.uk>
12787
12788         PR target/44107
12789         PR target/48097
12790         * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
12791         * config/darwin.c (darwin_should_restore_cfa_state): New.
12792         * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
12793         * doc/tm.texi: Regenerated.
12794         * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
12795         * dwarf2cfi.c (connect_traces): If the target requests, restore
12796         the CFA expression after a DW_CFA_restore.
12797         * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
12798
12799 2021-03-01  Martin Liska  <mliska@suse.cz>
12800
12801         PR target/99313
12802         * optc-save-gen.awk: Add 4 more exceptions.
12803
12804 2021-03-01  Nathan Sidwell  <nathan@acm.org>
12805
12806         PR c++/99294
12807         * tree.h (TYPE_ALIGN_RAW): New accessor.
12808         (TYPE_ALIGN): Use it.
12809
12810 2021-03-01  Jan Hubicka  <jh@suse.cz>
12811
12812         PR ipa/98338
12813         * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
12814
12815 2021-03-01  Eric Botcazou  <ebotcazou@adacore.com>
12816
12817         PR target/99234
12818         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
12819         point the hard frame pointer to the SSE register save area instead
12820         of the general register save area.  Perform only minimal adjustment
12821         for small frames if it is initially not correctly aligned.
12822         (ix86_expand_prologue): Remove early saves for a SEH target.
12823         * config/i386/winnt.c (struct seh_frame_state): Document constraint.
12824
12825 2021-02-28  Jakub Jelinek  <jakub@redhat.com>
12826
12827         PR c/99304
12828         * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
12829         typo - referneced -> referenced.
12830         * tree.c (component_ref_size): Fix comment typo -
12831         refernce -> reference.
12832         * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
12833         traling -> trailing.
12834         (aliasing_component_refs_p): Fix comment typos -
12835         refernce -> reference and refernece -> reference and
12836         traling -> trailing.
12837         (nonoverlapping_refs_since_match_p): Fix comment typo -
12838         referneces -> references.
12839         * doc/invoke.texi (--param modref-max-bases): Fix a typo -
12840         referneces -> references.
12841
12842 2021-02-27  Iain Sandoe  <iain@sandoe.co.uk>
12843
12844         * config/host-darwin.c (darwin_gt_pch_use_address): Modify
12845         diagnostic message to avoid use of a contraction and format
12846         warning.
12847
12848 2021-02-27  Jakub Jelinek  <jakub@redhat.com>
12849
12850         PR other/99288
12851         * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
12852         HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
12853         * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
12854         HOST_WIDE_INT_PRINT_DEC in inform format string.  Fix comment
12855         typos.
12856
12857 2021-02-26  Richard Biener  <rguenther@suse.de>
12858
12859         PR middle-end/99281
12860         * expr.c (store_field): For calls with return-slot optimization
12861         and addressable return type expand the store directly.
12862
12863 2021-02-26  Richard Biener  <rguenther@suse.de>
12864
12865         PR c/99275
12866         * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
12867
12868 2021-02-26  Peter Bergner  <bergner@linux.ibm.com>
12869
12870         PR target/99279
12871         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
12872         with an "if" test.
12873
12874 2021-02-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
12875
12876         * config.gcc: Add rs6000-pcrel-opt.o.
12877         * config/rs6000/rs6000-pcrel-opt.c: New file.
12878         * config/rs6000/pcrel-opt.md: New file.
12879         * config/rs6000/predicates.md: Add d_form_memory predicate.
12880         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
12881         * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
12882         * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
12883         pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
12884         and make_pass_pcrel_opt().
12885         * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
12886         (rs6000_option_override_internal): Add pcrel-opt.
12887         (rs6000_delegitimize_address): Support pcrel-opt.
12888         (rs6000_opt_masks): Add pcrel-opt.
12889         (pcrel_opt_valid_mem_p): New function.
12890         (reg_to_non_prefixed): Make global.
12891         (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
12892         (output_pcrel_opt_reloc): New function.
12893         * config/rs6000/rs6000.md (loads_extern_addr): New attr.
12894         (pcrel_extern_addr): Set loads_extern_addr.
12895         Add include for pcrel-opt.md.
12896         * config/rs6000/rs6000.opt: Add -mpcrel-opt.
12897         * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
12898         pcrel-opt.md.
12899
12900 2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
12901
12902         PR target/98996
12903         * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
12904         If TARGET_64BIT and dest is SUBREG, we check the width, if it
12905         equal to SImode, we use SImode operation, just like what we are
12906         doing for REG one.
12907
12908 2021-02-26  Marek Polacek  <polacek@redhat.com>
12909
12910         * builtins.c (warn_for_access): Fix typos.
12911
12912 2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
12913
12914         * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
12915         mark in front of the immediate quantity.
12916         (<optab>_rolsi3_uxtw): Likewise.
12917
12918 2021-02-25  Richard Earnshaw  <rearnsha@arm.com>
12919
12920         PR target/99271
12921         * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
12922         (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
12923         (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
12924         address and disable when the FPCXT is not available.
12925         (nonsecure_call_value_reg_thumb2): Likewise.
12926
12927 2021-02-25  Nathan Sidwell  <nathan@acm.org>
12928
12929         PR c++/99166
12930         * doc/invoke.texi (flang-info-module-cmi): Renamed option.
12931
12932 2021-02-25  Tamar Christina  <tamar.christina@arm.com>
12933
12934         * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
12935
12936 2021-02-25  Richard Biener  <rguenther@suse.de>
12937
12938         PR tree-optimization/99253
12939         * tree-vect-loop.c (check_reduction_path): First compute
12940         code, then verify out-of-loop uses.
12941
12942 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
12943
12944         PR target/95798
12945         * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
12946
12947 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
12948
12949         PR tree-optimization/80635
12950         * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
12951         VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
12952         has mode precision.
12953
12954 2021-02-25  Richard Biener  <rguenther@suse.de>
12955
12956         * tree-vect-slp.c (optimize_load_redistribution_1): Delay
12957         load_map population.
12958         (vect_match_slp_patterns_2): Revert part of last change.
12959         (vect_analyze_slp): Do not interleave optimize_load_redistribution
12960         with pattern detection but do it afterwards.  Dump the
12961         whole SLP graph after pattern recognition and load
12962         redistribution optimization finished.
12963
12964 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
12965
12966         PR fortran/99226
12967         * omp-low.c (struct omp_context): Add teams_nested_p and
12968         nonteams_nested_p members.
12969         (scan_omp_target): Diagnose teams nested inside of target with other
12970         directives strictly nested inside of the same target.
12971         (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
12972         ctx->nonteams_nested_p as needed.
12973
12974 2021-02-24  Vladimir N. Makarov  <vmakarov@redhat.com>
12975
12976         PR inline-asm/99123
12977         * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
12978
12979 2021-02-24  Hans-Peter Nilsson  <hp@axis.com>
12980
12981         * config/cris/cris.c (cris_expand_prologue): Set
12982         current_function_static_stack_size, if flag_stack_usage_info.
12983
12984 2021-02-24  Pat Haugen  <pthaugen@linux.ibm.com>
12985
12986         * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
12987         (rs6000_final_prescan_insn): Adjust.
12988         (rs6000_asm_output_opcode): Likewise.
12989
12990 2021-02-24  Martin Sebor  <msebor@redhat.com>
12991
12992         PR middle-end/97172
12993         * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
12994         from function arguments.
12995
12996 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
12997
12998         PR tree-optimization/99220
12999         * tree-vect-slp.c (optimize_load_redistribution_1): Remove
13000         node from cache when it's about to be deleted.
13001
13002 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
13003
13004         PR tree-optimization/99225
13005         * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
13006         to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
13007         build_int_cst (..., 1).  Formatting fixes.
13008
13009 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
13010
13011         PR tree-optimization/99149
13012         * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
13013         buffer.
13014         (vect_slp_reset_pattern): Remove.
13015         (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
13016         (complex_mul_pattern::build, complex_fma_pattern::build,
13017         complex_fms_pattern::build): Fix ref counts.
13018         * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
13019         when node is being deleted.
13020         (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
13021         (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
13022         stores.
13023         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
13024
13025 2021-02-24  Matthias Klose  <doko@ubuntu.com>
13026
13027         Revert:
13028         2020-12-07  Matthias Klose  <doko@ubuntu.com>
13029
13030         * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
13031         and ENABLE_RTL_FLAG_CHECKING.
13032
13033 2021-02-24  Richard Biener  <rguenther@suse.de>
13034
13035         PR c/99224
13036         * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
13037
13038 2021-02-23  Peter Bergner  <bergner@linux.ibm.com>
13039
13040         * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
13041         (vsx_assemble_pair): ...to this.
13042         (*mma_assemble_pair): Rename from this...
13043         (*vsx_assemble_pair): ...to this.
13044         (mma_disassemble_pair): Rename from this...
13045         (vsx_disassemble_pair): ...to this.
13046         (*mma_disassemble_pair): Rename from this...
13047         (*vsx_disassemble_pair): ...to this.
13048         * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
13049         BU_COMPAT): New macros.
13050         (mma_assemble_pair): Rename from this...
13051         (vsx_assemble_pair): ...to this.
13052         (mma_disassemble_pair): Rename from this...
13053         (vsx_disassemble_pair): ...to this.
13054         (mma_assemble_pair): New compatibility built-in.
13055         (mma_disassemble_pair): Likewise.
13056         * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
13057         (RS6000_BUILTIN_COMPAT): Define.
13058         (bdesc_compat): New.
13059         (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
13060         (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
13061         and VSX_BUILTIN_ASSEMBLE_PAIR.
13062         (rs6000_init_builtins): Register compatibility built-ins.
13063         (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
13064         VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
13065         VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
13066         * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
13067         (__builtin_vsx_assemble_pair): ...to this.
13068         (__builtin_mma_disassemble_pair): Rename from this...
13069         (__builtin_vsx_disassemble_pair): ...to this.
13070
13071 2021-02-23  Martin Liska  <mliska@suse.cz>
13072
13073         PR sanitizer/99168
13074         * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
13075         with different alignment. That leads to an invalid red zone
13076         size allocated in runtime.
13077
13078 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
13079
13080         PR tree-optimization/99204
13081         * fold-const.c (fold_read_from_constant_string): Check that
13082         tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
13083
13084 2021-02-23  Segher Boessenkool  <segher@kernel.crashing.org>
13085             Kewen Lin  <linkw@gcc.gnu.org>
13086
13087         * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
13088         (rotl<mode>3_insert_3): ...this.
13089         (plus_ior_xor): New code_iterator.
13090         (define_split for GPR rl*imi): New splitter.
13091         * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
13092         for integer merging.
13093
13094 2021-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13095
13096         * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
13097         Define.
13098         * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
13099         into a register when the above is enabled.
13100         * config/aarch64/aarch64.c (neoversev1_tunings):
13101         AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
13102         (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
13103
13104 2021-02-22  Hans-Peter Nilsson  <hp@axis.com>
13105
13106         * config/cris/cris.c (cris_print_operand) <'T'>: Change
13107         valid operand from is now an addi mult-value to shift-value.
13108         * config/cris/cris.md (*addi): Change expression of scaled
13109         operand from mult to ashift.
13110         * config/cris/cris.md (*addi_reload): New insn_and_split.
13111
13112 2021-02-22  John David Anglin  <danglin@gcc.gnu.org>
13113
13114         PR target/85074
13115         * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
13116         hook_bool_const_tree_hwi_hwi_const_tree_true.
13117         (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
13118
13119 2021-02-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
13120
13121         PR rtl-optimization/98791
13122         * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
13123         for unordered modes.
13124
13125 2021-02-22  Martin Liska  <mliska@suse.cz>
13126
13127         * tree-inline.c (inline_forbidden_p): Set
13128         inline_forbidden_reason.
13129
13130 2021-02-22  Richard Biener  <rguenther@suse.de>
13131
13132         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
13133         costed subgraph.
13134
13135 2021-02-22  Richard Biener  <rguenther@suse.de>
13136
13137         PR tree-optimization/99165
13138         * gimple-ssa-store-merging.c (pass_store_merging::process_store):
13139         Accumulate changed to ret.
13140
13141 2021-02-21  Uros Bizjak  <ubizjak@gmail.com>
13142
13143         Revert:
13144         2020-12-09  Uroš Bizjak  <ubizjak@gmail.com>
13145
13146         * config/i386/i386.h (REG_ALLOC_ORDER): Remove
13147
13148 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
13149
13150         PR target/99134
13151         * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
13152         pattern.
13153         (trunctf<DFP_ALL:mode>2): Likewise.
13154         (trunctdtf2_vr): Likewise.
13155         (trunctdtf2): Likewise.
13156         (extend<DFP_ALL:mode>tf2_vr): Likewise.
13157         (extend<DFP_ALL:mode>tf2): Likewise.
13158         (extendtftd2_vr): Likewise.
13159         (extendtftd2): Likewise.
13160
13161 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
13162
13163         * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
13164         add memory alternative.
13165         (tf_to_fprx2): New pattern.
13166
13167 2021-02-19  Martin Sebor  <msebor@redhat.com>
13168
13169         PR c/97172
13170         * attribs.c (init_attr_rdwr_indices): Guard vblist use.
13171         (attr_access::free_lang_data): Remove a spurious test.
13172
13173 2021-02-19  Nathan Sidwell  <nathan@acm.org>
13174
13175         * doc/invoke.texi (flang-info-module-read): Document.
13176
13177 2021-02-19  Martin Liska  <mliska@suse.cz>
13178
13179         PR translation/99167
13180         * params.opt: Fix typo.
13181
13182 2021-02-19  Richard Biener  <rguenther@suse.de>
13183
13184         PR middle-end/99122
13185         * tree-inline.c (inline_forbidden_p): Do not inline functions
13186         with VLA arguments or return value.
13187
13188 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
13189
13190         PR target/98998
13191         * config/arm/arm.md (*stack_protect_combined_set_insn,
13192         *stack_protect_combined_test_insn): If force_const_mem result
13193         is not valid general operand, force its address into the destination
13194         register first.
13195
13196 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
13197
13198         PR ipa/99034
13199         * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
13200         pad or non-local label, put FORCED_LABELs from bb b after that label
13201         rather than before it.
13202
13203 2021-02-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
13204
13205         PR target/98657
13206         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
13207         expand_vector_broadcast' to emit the vec_duplicate operand.
13208
13209 2021-02-18  Vladimir N. Makarov  <vmakarov@redhat.com>
13210
13211         PR rtl-optimization/96264
13212         * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
13213         hard regs.
13214
13215 2021-02-18  H.J. Lu  <hjl.tools@gmail.com>
13216
13217         PR target/99113
13218         * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
13219         looking up the retain attribute.
13220         (resolve_unique_section): Likewise.
13221         (get_variable_section): Likewise.
13222         (switch_to_section): Likewise.  Warn when a symbol without the
13223         retain attribute and a symbol with the retain attribute are
13224         placed in the section with the same name, instead of the used
13225         attribute.
13226         * doc/extend.texi: Document the "retain" attribute.
13227
13228 2021-02-18  Nathan Sidwell  <nathan@acm.org>
13229
13230         PR c++/99023
13231         * doc/invoke.texi (flang-info-include-translate): Document header
13232         lookup behaviour.
13233
13234 2021-02-18  Richard Biener  <rguenther@suse.de>
13235
13236         PR middle-end/99122
13237         * ipa-fnsummary.c (analyze_function_body): Set
13238         CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
13239         * tree-inline.c (insert_init_debug_bind): Pass NULL for
13240         error_mark_node values.
13241         (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
13242         values.
13243         (setup_one_parameter): Delay force_value_to_type until when
13244         it's needed.
13245
13246 2021-02-18  Hans-Peter Nilsson  <hp@axis.com>
13247
13248         PR tree-optimization/99142
13249         * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
13250
13251 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
13252
13253         * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
13254         wide_int_bitmask::wide_int_bitmask (uint64_t),
13255         wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
13256         wide_int_bitmask::operator ~ () const,
13257         wide_int_bitmask::operator | (wide_int_bitmask) const,
13258         wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
13259         instead of inline.
13260         * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
13261         PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
13262         PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
13263         PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
13264         PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
13265         PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
13266         PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
13267         PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
13268         PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
13269         PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
13270         PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
13271         PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
13272         PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
13273         PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
13274         PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
13275         PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
13276         PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
13277         PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
13278         PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
13279         PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
13280         PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
13281         PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
13282         PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
13283         PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
13284
13285 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
13286
13287         PR middle-end/99109
13288         * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
13289         (build_printable_array_type): ... this.  Add nelts argument.  For
13290         overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead.  If
13291         nelts, call build_array_type_nelts.
13292         (array_bounds_checker::check_mem_ref): Use build_printable_array_type
13293         instead of build_zero_elt_array_type and build_array_type_nelts.
13294
13295 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
13296
13297         PR target/99104
13298         * config/i386/i386.c (distance_non_agu_define): Don't call
13299         extract_insn_cached here.
13300         (ix86_lea_outperforms): Save and restore recog_data around call
13301         to distance_non_agu_define and distance_agu_use.
13302         (ix86_ok_to_clobber_flags): Remove.
13303         (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
13304         (ix86_avoid_lea_for_addr): Likewise.  Adjust function comment.
13305         * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
13306         into define_insn.  Move the splitting to define_peephole2 and
13307         check there using peep2_regno_dead_p if FLAGS_REG is dead.
13308
13309 2021-02-17  Julian Brown  <julian@codesourcery.com>
13310
13311         * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
13312         for non-decls.
13313
13314 2021-02-17  Xi Ruoyao  <xry111@mengyan1223.wang>
13315
13316         PR target/98491
13317         * config/mips/mips.c (mips_symbol_insns): Do not use
13318         MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
13319
13320 2021-02-16  Vladimir N. Makarov  <vmakarov@redhat.com>
13321
13322         PR inline-asm/98096
13323         * stmt.c (resolve_operand_name_1): Take inout operands into account
13324         for access to labels by names.
13325         * doc/extend.texi: Describe counting operands for accessing labels.
13326
13327 2021-02-16  Richard Biener  <rguenther@suse.de>
13328
13329         PR tree-optimization/38474
13330         * tree-ssa-structalias.c (variable_info::address_taken): New.
13331         (new_var_info): Initialize address_taken.
13332         (process_constraint): Set address_taken.
13333         (solve_constraints): Use the new address_taken flag rather
13334         than is_reg_var for sorting variables.
13335         (dump_constraint): Dump the variable number if the name
13336         is just NULL.
13337
13338 2021-02-16  Jakub Jelinek  <jakub@redhat.com>
13339
13340         PR target/99100
13341         * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
13342         multiply by 4096 and for inbranch by 8192.
13343         * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
13344         return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
13345
13346 2021-02-15  Maya Rashish  <coypu@sdf.org>
13347
13348         * config/aarch64/aarch64.c (aarch64_init_builtins):
13349         Call SUBTARGET_INIT_BUILTINS.
13350
13351 2021-02-15  Peter Bergner  <bergner@linux.ibm.com>
13352
13353         PR rtl-optimization/98872
13354         * init-regs.c (initialize_uninitialized_regs): Skip initialization
13355         if CONST0_RTX is NULL.
13356
13357 2021-02-15  Richard Sandiford  <richard.sandiford@arm.com>
13358
13359         PR rtl-optimization/98863
13360         * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
13361         (function_info::build_info): Turn into a declaration, moving the
13362         definition to internals.h.
13363         (function_info::bb_walker): Declare.
13364         (function_info::create_reg_use): Likewise.
13365         (function_info::calculate_potential_phi_regs): Take a build_info
13366         parameter.
13367         (function_info::place_phis, function_info::create_ebbs): Declare.
13368         (function_info::calculate_ebb_live_in_for_debug): Likewise.
13369         (function_info::populate_backedge_phis): Delete.
13370         (function_info::start_block, function_info::end_block): Declare.
13371         (function_info::populate_phi_inputs): Delete.
13372         (function_info::m_potential_phi_regs): Move information to build_info.
13373         * rtl-ssa/internals.h: New file.
13374         (function_info::bb_phi_info): New class.
13375         (function_info::build_info): Moved from functions.h.
13376         Add a constructor and destructor.
13377         (function_info::build_info::ebb_use): Delete.
13378         (function_info::build_info::ebb_def): Likewise.
13379         (function_info::build_info::bb_live_out): Likewise.
13380         (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
13381         (function_info::build_info::potential_phi_regs): Likewise.
13382         (function_info::build_info::potential_phi_regs_for_debug): Likewise.
13383         (function_info::build_info::ebb_def_regs): Likewise.
13384         (function_info::build_info::bb_phis): Likewise.
13385         (function_info::build_info::bb_mem_live_out): Likewise.
13386         (function_info::build_info::bb_to_rpo): Likewise.
13387         (function_info::build_info::def_stack): Likewise.
13388         (function_info::build_info::old_def_stack_limit): Likewise.
13389         * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
13390         Remove the regno argument.  Push the previous definition onto the
13391         definition stack where necessary.
13392         * rtl-ssa/accesses.cc: Include internals.h.
13393         * rtl-ssa/changes.cc: Likewise.
13394         * rtl-ssa/blocks.cc: Likewise.
13395         (function_info::build_info::build_info): Define.
13396         (function_info::build_info::~build_info): Likewise.
13397         (function_info::bb_walker): New class.
13398         (function_info::bb_walker::bb_walker): Define.
13399         (function_info::add_live_out_use): Convert a logarithmic-complexity
13400         test into a linear one.  Allow the same definition to be passed
13401         multiple times.
13402         (function_info::calculate_potential_phi_regs): Moved from
13403         functions.cc.  Take a build_info parameter and store the
13404         information there instead.
13405         (function_info::place_phis): New function.
13406         (function_info::add_entry_block_defs): Update call to record_reg_def.
13407         (function_info::calculate_ebb_live_in_for_debug): New function.
13408         (function_info::add_phi_nodes): Use bb_phis to decide which
13409         registers need phi nodes and initialize ebb_def_regs accordingly.
13410         Do not add degenerate phis here.
13411         (function_info::add_artificial_accesses): Use create_reg_use.
13412         Assert that all definitions are listed in the DF LR sets.
13413         Update call to record_reg_def.
13414         (function_info::record_block_live_out): Record live-out register
13415         values in the phis of successor blocks.  Use the live-out set
13416         when processing the last block in an EBB, instead of always
13417         using the live-in sets of successor blocks.  AND the live sets
13418         with the set of registers that have been defined in the EBB,
13419         rather than with all potential phi registers.  Cope correctly
13420         with branches back to the start of the current EBB.
13421         (function_info::start_block): New function.
13422         (function_info::end_block): Likewise.
13423         (function_info::populate_phi_inputs): Likewise.
13424         (function_info::create_ebbs): Likewise.
13425         (function_info::process_all_blocks): Rewrite into a multi-phase
13426         process.
13427         * rtl-ssa/functions.cc: Include internals.h.
13428         (function_info::calculate_potential_phi_regs): Move to blocks.cc.
13429         (function_info::init_function_data): Remove caller.
13430         * rtl-ssa/insns.cc: Include internals.h
13431         (function_info::create_reg_use): New function.  Lazily any
13432         degenerate phis needed by the linear RPO view.
13433         (function_info::record_use): Use create_reg_use.  When processing
13434         debug uses, use potential_phi_regs and test it before checking
13435         whether the register is live on entry to the current EBB.  Lazily
13436         calculate ebb_live_in_for_debug.
13437         (function_info::record_call_clobbers): Update call to record_reg_def.
13438         (function_info::record_def): Likewise.
13439
13440 2021-02-15  Martin Liska  <mliska@suse.cz>
13441
13442         * toplev.c (init_asm_output): Free output of
13443         gen_command_line_string function.
13444         (process_options): Likewise.
13445
13446 2021-02-15  Martin Liska  <mliska@suse.cz>
13447
13448         * params.opt: Add 2 missing Param keywords.
13449
13450 2021-02-15  Eric Botcazou  <ebotcazou@adacore.com>
13451
13452         * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
13453
13454 2021-02-15  Jakub Jelinek  <jakub@redhat.com>
13455
13456         PR tree-optimization/99079
13457         * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
13458         useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
13459         require both type and TREE_TYPE (@1) to be integral types and either
13460         type having smaller or equal precision, or TREE_TYPE (@1) being
13461         unsigned type, or type being signed type.  If TREE_TYPE (@1)
13462         doesn't have wrapping overflow, perform the subtraction of one in
13463         unsigned type.
13464
13465 2021-02-14  Jan Hubicka  <hubicka@ucw.cz>
13466             Richard Biener  <rguether@suse.de>
13467
13468         PR ipa/97346
13469         * ipa-reference.c (ipa_init): Only conditinally initialize
13470         reference_vars_to_consider.
13471         (propagate): Conditionally deninitialize reference_vars_to_consider.
13472         (ipa_reference_write_optimization_summary): Sanity check that
13473         reference_vars_to_consider is not allocated.
13474
13475 2021-02-13  Levy Hsu  <admin@levyhsu.com>
13476
13477         PR target/97417
13478         * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
13479         extend parameter to get_si_mem_base_reg declaration.
13480         (get_si_mem_base_reg): Add extend parameter.  Set it.
13481         (analyze): Pass extend arg to get_si_mem_base_reg.
13482         (transform): Likewise.  Use it when rewriting mems.
13483         * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
13484         loads and emit sign/zero extending load followed by subreg move.
13485
13486 2021-02-13  Jim Wilson  <jimw@sifive.com>
13487
13488         PR target/97417
13489         * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
13490         exit when !reload_completed.  Only perform check for compressed reg
13491         if reload_completed.
13492         (riscv_rtx_costs): In MEM case, when optimizing for size and
13493         shorten memrefs, if not compressible, then increase cost.
13494
13495 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
13496
13497         PR rtl-optimization/98439
13498         * recog.c (pass_split_before_regstack::gate): Enable even when
13499         pass_split_before_sched2 is enabled if -fselective-scheduling2 is
13500         on.
13501
13502 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
13503
13504         PR target/96166
13505         * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
13506         swap of V2SImode elements in memory into DImode memory rotate by 32.
13507
13508 2021-02-12  Martin Sebor  <msebor@redhat.com>
13509
13510         * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
13511
13512 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
13513
13514         * rtl-ssa/accesses.cc (function_info::make_use_available): Use
13515         m_temp_obstack rather than m_obstack to allocate the temporary use.
13516
13517 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
13518
13519         * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
13520         as read-modify operations.
13521
13522 2021-02-12  Richard Biener  <rguenther@suse.de>
13523
13524         PR middle-end/38474
13525         * ipa-fnsummary.c (unmodified_parm_1): Only walk when
13526         fbi->aa_walk_budget is bigger than zero.  Update
13527         fbi->aa_walk_budget.
13528         (param_change_prob): Likewise.
13529         * ipa-prop.c (detect_type_change_from_memory_writes):
13530         Properly account walk_aliased_vdefs.
13531         (parm_preserved_before_stmt_p): Canonicalize updates.
13532         (parm_ref_data_preserved_p): Likewise.
13533         (parm_ref_data_pass_through_p): Likewise.
13534         (determine_known_aggregate_parts): Account own alias queries.
13535
13536 2021-02-12  Martin Liska  <mliska@suse.cz>
13537
13538         * opts-common.c (decode_cmdline_option): Release werror_arg.
13539         * opts.c (gen_producer_string): Release output of
13540         gen_command_line_string.
13541
13542 2021-02-12  Richard Biener  <rguenther@suse.de>
13543
13544         PR tree-optimization/38474
13545         * params.opt (-param=max-store-chains-to-track=): New param.
13546         (-param=max-stores-to-track=): Likewise.
13547         * doc/invoke.texi (max-store-chains-to-track): Document.
13548         (max-stores-to-track): Likewise.
13549         * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
13550         New.
13551         (pass_store_merging::m_n_stores): Likewise.
13552         (pass_store_merging::terminate_and_process_chain): Update
13553         m_n_stores and m_n_chains.
13554         (pass_store_merging::process_store): Likewise.   Terminate
13555         oldest chains if the number of stores or chains get too large.
13556         (imm_store_chain_info::terminate_and_process_chain): Dump
13557         chain length.
13558
13559 2021-02-11  Eric Botcazou  <ebotcazou@adacore.com>
13560
13561         * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
13562         the cold section, emit a nop before the directive if the previous
13563         active instruction can throw.
13564
13565 2021-02-11  Peter Bergner  <bergner@linux.ibm.com>
13566
13567         PR target/99041
13568         * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
13569         memory addresses that are legal for quad word accesses.
13570
13571 2021-02-11  Andrea Corallo  <andrea.corallo@arm.com>
13572
13573         PR target/98931
13574         * config/arm/thumb2.md (*doloop_end_internal): Generate
13575         alternative sequence to handle long range branches.
13576
13577 2021-02-11  Joel Hutton  <joel.hutton@arm.com>
13578
13579         PR tree-optimization/98772
13580         * optabs-tree.c (supportable_half_widening_operation): New function
13581         to check for supportable V8QI->V8HI widening patterns.
13582         * optabs-tree.h (supportable_half_widening_operation): New function.
13583         * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
13584         to create promotion stmts for V8QI->V8HI widening patterns.
13585         (vectorizable_conversion): Add case for V8QI->V8HI.
13586
13587 2021-02-11  Richard Biener  <rguenther@suse.de>
13588
13589         * sparseset.h (SPARSESET_ELT_BITS): Remove.
13590         (SPARSESET_ELT_TYPE): Use unsigned int.
13591         * fwprop.c: Do not include sparseset.h.
13592
13593 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
13594
13595         PR c++/99035
13596         * varasm.c (declare_weak): For -fsyntax-only, allow even
13597         TREE_ASM_WRITTEN function decls.
13598
13599 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
13600
13601         PR target/99025
13602         * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
13603         <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
13604         <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
13605         <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
13606         calling simplify_gen_subreg on it.
13607
13608 2021-02-10  Martin Liska  <mliska@suse.cz>
13609
13610         * config/nvptx/nvptx.c (nvptx_option_override): Use
13611         flag_patchable_function_entry instead of the removed
13612         function_entry_patch_area_size.
13613
13614 2021-02-10  Martin Liska  <mliska@suse.cz>
13615
13616         PR tree-optimization/99002
13617         PR tree-optimization/99026
13618         * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
13619         leak when adjacent cases are merged.
13620         * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
13621         release_clusters.
13622         (make_pass_lower_switch): Remove trailing whitespace.
13623         * tree-switch-conversion.h (release_clusters): New.
13624
13625 2021-02-10  Richard Biener  <rguenther@suse.de>
13626
13627         PR rtl-optimization/99054
13628         * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
13629         (fixup_partitions): Adjust.
13630         (rtl_verify_edges): Likewise.
13631
13632 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
13633
13634         PR middle-end/99007
13635         * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
13636         temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
13637         calls.
13638
13639 2021-02-10  Richard Biener  <rguenther@suse.de>
13640
13641         PR ipa/99029
13642         * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
13643         for callees.
13644
13645 2021-02-10  Richard Biener  <rguenther@suse.de>
13646
13647         PR tree-optimization/99024
13648         * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
13649         clear loop->aux if it is associated with the destroyed loop_vinfo.
13650
13651 2021-02-10  Martin Liska  <mliska@suse.cz>
13652
13653         PR tree-optimization/99002
13654         * gimple-if-to-switch.cc (find_conditions): Fix memory leak
13655         in the function.
13656
13657 2021-02-10  Martin Liska  <mliska@suse.cz>
13658
13659         PR ipa/99003
13660         * ipa-icf.c (sem_item::add_reference): Fix memory leak when
13661         a reference exists.
13662
13663 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
13664
13665         PR debug/98755
13666         * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
13667         at class scope for DWARF5+.
13668
13669 2021-02-09  Eric Botcazou  <ebotcazou@adacore.com>
13670
13671         PR rtl-optimization/96015
13672         * reorg.c (skip_consecutive_labels): Minor comment tweaks.
13673         (relax_delay_slots): When deleting a jump to the next active
13674         instruction over a barrier, first delete the barrier if the
13675         jump is the only way to reach the target label.
13676
13677 2021-02-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
13678
13679         * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
13680         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
13681         vector multiplies and vect.alu for SSRA.
13682         * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
13683         vect.mul cost field.
13684         * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
13685         * config/arm/arm.c: Likewise.
13686
13687 2021-02-09  Richard Biener  <rguenther@suse.de>
13688
13689         PR tree-optimization/98863
13690         * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
13691         * tree-ssa-sccvn.c (last_pushed_avail): New global.
13692         (rpo_elim::eliminate_push_avail): Chain pushed avails.
13693         (unwind_state::avail_top): Add.
13694         (do_unwind): Rewrite unwinding of avail entries.
13695         (do_rpo_vn): Initialize last_pushed_avail and
13696         avail_top of the undo state.
13697
13698 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
13699
13700         PR middle-end/99004
13701         * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
13702         const char * to char * and free those pointers after use.
13703
13704 2021-02-09  Richard Biener  <rguenther@suse.de>
13705
13706         PR tree-optimization/99017
13707         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
13708         zero vector cost entries.
13709
13710 2021-02-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
13711
13712         PR middle-end/98974
13713         * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
13714         parameter in vectorizable_condition.
13715
13716 2021-02-08  Richard Biener  <rguenther@suse.de>
13717
13718         PR lto/96591
13719         * tree.c (walk_tree_1): Walk VECTOR_CST elements.
13720
13721 2021-02-08  Martin Liska  <mliska@suse.cz>
13722
13723         PR lto/98971
13724         * cfgexpand.c (pass_expand::execute): Parse per-function option
13725         flag_patchable_function_entry and use it.
13726         * common.opt: Remove function_entry_patch_area_size and
13727         function_entry_patch_area_start global variables.
13728         * opts.c (parse_and_check_patch_area): New function.
13729         (common_handle_option): Use it.
13730         * opts.h (parse_and_check_patch_area): New function.
13731         * toplev.c (process_options): Parse and use
13732         function_entry_patch_area_size.
13733
13734 2021-02-08  Martin Sebor  <msebor@redhat.com>
13735
13736         * doc/extend.texi (attribute malloc): Correct typos.
13737
13738 2021-02-05  Nathan Sidwell  <nathan@acm.org>
13739
13740         PR driver/98943
13741         * gcc.c (driver::maybe_run_linker): Check for input file
13742         accessibility if not linking.
13743
13744 2021-02-05  Richard Biener  <rguenther@suse.de>
13745
13746         PR tree-optimization/98855
13747         * tree-vectorizer.h (add_stmt_cost): New overload.
13748         * tree-vect-slp.c (li_cost_vec_cmp): New.
13749         (vect_bb_slp_scalar_cost): Cost individual loop regions
13750         separately.  Account for the scalar instance root stmt.
13751
13752 2021-02-05  Tom de Vries  <tdevries@suse.de>
13753
13754         PR debug/98656
13755         * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
13756         argument.
13757         (bit_test_cluster::emit): Reuse location_t for newly created
13758         gswitch statement.
13759         (switch_decision_tree::try_switch_expansion): Preserve
13760         location_t.
13761         * tree-switch-conversion.h: Change function signatures.
13762
13763 2021-02-05  Jakub Jelinek  <jakub@redhat.com>
13764
13765         PR target/98957
13766         * config/i386/i386-options.c (m_NONE, m_ALL): Define.
13767         * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
13768         X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
13769         (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
13770
13771 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13772
13773         * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
13774         * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
13775         * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
13776         (vget_high_f16): Reimplement using new builtin.
13777         (vget_high_f32): Likewise.
13778         (vget_high_f64): Likewise.
13779         (vget_high_p8): Likewise.
13780         (vget_high_p16): Likewise.
13781         (vget_high_p64): Likewise.
13782         (vget_high_s8): Likewise.
13783         (vget_high_s16): Likewise.
13784         (vget_high_s32): Likewise.
13785         (vget_high_s64): Likewise.
13786         (vget_high_u8): Likewise.
13787         (vget_high_u16): Likewise.
13788         (vget_high_u32): Likewise.
13789         (vget_high_u64): Likewise.
13790
13791 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13792
13793         * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
13794         * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
13795         * config/aarch64/arm_neon.h (__GET_LOW): Delete.
13796         (vget_low_f16): Reimplement using new builtin.
13797         (vget_low_f32): Likewise.
13798         (vget_low_f64): Likewise.
13799         (vget_low_p8): Likewise.
13800         (vget_low_p16): Likewise.
13801         (vget_low_p64): Likewise.
13802         (vget_low_s8): Likewise.
13803         (vget_low_s16): Likewise.
13804         (vget_low_s32): Likewise.
13805         (vget_low_s64): Likewise.
13806         (vget_low_u8): Likewise.
13807         (vget_low_u16): Likewise.
13808         (vget_low_u32): Likewise.
13809         (vget_low_u64): Likewise.
13810
13811 2021-02-05  Kito Cheng  <kito.cheng@sifive.com>
13812
13813         * gcc.c (print_multilib_info): Check all required argument is provided
13814         by default arg.
13815
13816 2021-02-05  liuhongt  <hongtao.liu@intel.com>
13817
13818         PR target/98537
13819         * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
13820         generate integer mask comparison for 128/256-bits vector when
13821         op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
13822         delete redundant !maskcmp condition.
13823         (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
13824         here.
13825         (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
13826         condition directly to if (maskcmp), add extra check for
13827         cmpmode, it should be MODE_INT.
13828         (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
13829         parameters op_true/op_false.
13830         (ix86_use_mask_cmp_p): New.
13831
13832 2021-02-05  liuhongt  <hongtao.liu@intel.com>
13833
13834         PR target/98172
13835         * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
13836         Remove m_GENERIC from ~list.
13837         (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
13838
13839 2021-02-04  David Malcolm  <dmalcolm@redhat.com>
13840
13841         PR c/97932
13842         * diagnostic-show-locus.c (compatible_locations_p): Require
13843         locations in the same macro map to be either both from the
13844         macro definition, or both from the macro arguments.
13845
13846 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
13847
13848         * config/aarch64/aarch64-simd-builtins.def: Add
13849         [su]mull_hi_lane[q] builtin generator macros.
13850         * config/aarch64/aarch64-simd.md
13851         (aarch64_<su>mull_hi_lane<mode>_insn): Define.
13852         (aarch64_<su>mull_hi_lane<mode>): Define.
13853         (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
13854         (aarch64_<su>mull_hi_laneq<mode>): Define.
13855         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
13856         builtin instead of inline asm.
13857         (vmull_high_lane_s32): Likewise.
13858         (vmull_high_lane_u16): Likewise.
13859         (vmull_high_lane_u32): Likewise.
13860         (vmull_high_laneq_s16): Likewise.
13861         (vmull_high_laneq_s32): Likewise.
13862         (vmull_high_laneq_u16): Likewise.
13863         (vmull_high_laneq_u32): Liekwise.
13864
13865 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
13866
13867         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
13868         builtin generator macros.
13869         * config/aarch64/aarch64-simd.md
13870         (aarch64_<su>mull_hi_n<mode>_insn): Define.
13871         (aarch64_<su>mull_hi_n<mode>): Define.
13872         * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
13873         instead of inline asm.
13874         (vmull_high_n_s32): Likewise.
13875         (vmull_high_n_u16): Likewise.
13876         (vmull_high_n_u32): Likewise.
13877
13878 2021-02-04  Richard Biener  <rguenther@suse.de>
13879
13880         PR tree-optimization/98855
13881         * tree-vect-loop.c (vectorizable_phi): Do not cost
13882         single-argument PHIs.
13883         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
13884         * tree-vect-stmts.c (vectorizable_bswap): Also perform
13885         costing for SLP operation.
13886
13887 2021-02-04  Martin Liska  <mliska@suse.cz>
13888
13889         * doc/extend.texi: Mention -mprefer-vector-width in target
13890         attributes.
13891
13892 2021-02-03  Martin Sebor  <msebor@redhat.com>
13893
13894         PR tree-optimization/98937
13895         * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
13896         Flush pointer_query cache.
13897
13898 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
13899
13900         * config/rs6000/genfusion.pl (gen_2logical): Add missing
13901         fixes based on patch review.
13902         * config/rs6000/fusion.md: Regenerate file.
13903
13904 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
13905
13906         * config/rs6000/t-rs6000: Comment out auto generation of
13907         fusion.md for now.
13908
13909 2021-02-03  Andrew Stubbs  <ams@codesourcery.com>
13910
13911         * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
13912         * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
13913         (output_file_start): Add gfx908.
13914         * config/gcn/gcn.opt (gpu_type): Add gfx908.
13915         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
13916         (MULTILIB_DIRNAMES): Add gfx908.
13917         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
13918         (main): Recognize gfx908.
13919         * config/gcn/t-omp-device: Add gfx908.
13920
13921 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13922
13923         * config/aarch64/aarch64-simd-builtins.def: Add
13924         [su]mlsl_hi_lane[q] builtin macro generators.
13925         * config/aarch64/aarch64-simd.md
13926         (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
13927         (aarch64_<su>mlsl_hi_lane<mode>): Define.
13928         (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
13929         (aarch64_<su>mlsl_hi_laneq<mode>): Define.
13930         * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
13931         builtin instead of inline asm.
13932         (vmlsl_high_lane_s32): Likewise.
13933         (vmlsl_high_lane_u16): Likewise.
13934         (vmlsl_high_lane_u32): Likewise.
13935         (vmlsl_high_laneq_s16): Likewise.
13936         (vmlsl_high_laneq_s32): Likewise.
13937         (vmlsl_high_laneq_u16): Likewise.
13938         (vmlsl_high_laneq_u32): Likewise.
13939         (vmlal_high_laneq_u32): Likewise.
13940
13941 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13942
13943         * config/aarch64/aarch64-simd-builtins.def: Add
13944         [su]mlal_hi_lane[q] builtin generator macros.
13945         * config/aarch64/aarch64-simd.md
13946         (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
13947         (aarch64_<su>mlal_hi_lane<mode>): Define.
13948         (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
13949         (aarch64_<su>mlal_hi_laneq<mode>): Define.
13950         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
13951         builtin instead of inline asm.
13952         (vmlal_high_lane_s32): Likewise.
13953         (vmlal_high_lane_u16): Likewise.
13954         (vmlal_high_lane_u32): Likewise.
13955         (vmlal_high_laneq_s16): Likewise.
13956         (vmlal_high_laneq_s32): Likewise.
13957         (vmlal_high_laneq_u16): Likewise.
13958         (vmlal_high_laneq_u32): Likewise.
13959
13960 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13961
13962         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
13963         builtin generator macros.
13964         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
13965         Define.
13966         (aarch64_<su>mlsl_hi_n<mode>): Define.
13967         * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
13968         instead of inline asm.
13969         (vmlsl_high_n_s32): Likewise.
13970         (vmlsl_high_n_u16): Likewise.
13971         (vmlsl_high_n_u32): Likewise.
13972
13973 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13974
13975         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
13976         builtin generator macros.
13977         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
13978         Define.
13979         (aarch64_<su>mlal_hi_n<mode>): Define.
13980         * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
13981         instead of inline asm.
13982         (vmlal_high_n_s32): Likewise.
13983         (vmlal_high_n_u16): Likewise.
13984         (vmlal_high_n_u32): Likewise.
13985
13986 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13987
13988         * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
13989         generator macros.
13990         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
13991         Rename to...
13992         (aarch64_<su>mlal_hi<mode>_insn): This.
13993         (aarch64_<su>mlal_hi<mode>): Define.
13994         * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
13995         instead of inline asm.
13996         (vmlal_high_s16): Likewise.
13997         (vmlal_high_s32): Likewise.
13998         (vmlal_high_u8): Likewise.
13999         (vmlal_high_u16): Likewise.
14000         (vmlal_high_u32): Likewise.
14001
14002 2021-02-03  Ilya Leoshkevich  <iii@linux.ibm.com>
14003
14004         * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
14005         after calling alter_subreg() on a (mem).
14006
14007 2021-02-03  Martin Liska  <mliska@suse.cz>
14008
14009         PR lto/98912
14010         * lto-streamer-out.c (produce_lto_section): Fill up missing
14011         padding.
14012         * lto-streamer.h (struct lto_section): Add _padding field.
14013
14014 2021-02-03  Richard Biener  <rguenther@suse.de>
14015
14016         * lto-streamer.c (lto_get_section_name): Free temporary
14017         buffer.
14018         * tree-loop-distribution.c
14019         (loop_distribution::merge_dep_scc_partitions): Free edge data.
14020
14021 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
14022
14023         PR middle-end/97487
14024         * ifcvt.c (noce_can_force_operand): New function.
14025         (noce_emit_move_insn): Use it.
14026         (noce_try_sign_mask): Likewise.  Formatting fix.
14027
14028 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
14029
14030         PR middle-end/97971
14031         * lra-constraints.c (process_alt_operands): For inline asm, don't call
14032         fatal_insn, but instead return false.
14033
14034 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
14035
14036         PR tree-optimization/98287
14037         * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
14038         for V1DImode.
14039
14040 2021-02-03  Tamar Christina  <tamar.christina@arm.com>
14041
14042         PR tree-optimization/98928
14043         * tree-vect-loop.c (vect_analyze_loop_2): Change
14044         STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
14045         * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
14046         * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
14047         (class _stmt_vec_info): Add slp_vect_pattern_only_p.
14048
14049 2021-02-02  Richard Biener  <rguenther@suse.de>
14050
14051         * gimple-loop-interchange.cc (prepare_data_references):
14052         Release vectors.
14053         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
14054         * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
14055         * tree-vect-stmts.c (vectorizable_condition): Do not
14056         allocate vectors.
14057         (vectorizable_comparison): Likewise.
14058
14059 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14060
14061         * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
14062         * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
14063         * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
14064         (vrsqrteq_u32): Likewise.
14065
14066 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14067
14068         * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
14069         * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
14070         (aarch64_sqxtun2<mode>_be): Likewise.
14071         (aarch64_sqxtun2<mode>): Likewise.
14072         * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
14073         (vqmovun_high_s32): Likewise.
14074         (vqmovun_high_s64): Likewise.
14075         * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
14076
14077 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14078
14079         * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
14080         AUTO_FP flags.
14081         (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
14082
14083 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14084
14085         * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
14086         fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
14087         fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
14088         ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
14089         fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
14090         fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
14091         fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
14092         fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
14093
14094 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14095
14096         * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
14097         * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
14098         ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
14099
14100 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14101
14102         * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
14103         uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
14104
14105 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14106
14107         * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
14108         vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
14109         vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
14110         ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
14111         udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
14112         ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
14113         ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
14114         ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
14115         NONE builtin flags.
14116
14117 2021-02-02  Jakub Jelinek  <jakub@redhat.com>
14118
14119         PR tree-optimization/98848
14120         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
14121         STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
14122
14123 2021-02-02  Kito Cheng  <kito.cheng@sifive.com>
14124
14125         PR target/98743
14126         * expr.c: Check mode before calling store_expr.
14127
14128 2021-02-02  Christophe Lyon  <christophe.lyon@linaro.org>
14129
14130         * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
14131         (VORNQ): Remove.
14132         * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
14133         instruction using expression ior.
14134         (mve_vornq_u<mode>): New expander.
14135         (mve_vornq_f<mode>): Use ior code instead of unspec.
14136         * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
14137
14138 2021-02-02  Alexandre Oliva  <oliva@adacore.com>
14139
14140         * tree-nested.c (convert_nonlocal_reference_op): Move
14141         current_function_decl restore after re-gimplification.
14142         (convert_local_reference_op): Likewise.
14143
14144 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14145
14146         * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
14147         Define builtins.
14148         * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
14149         Define.
14150         (aarch64_rshrn<mode>_insn_be): Likewise.
14151         (aarch64_rshrn<mode>): Likewise.
14152         (aarch64_rshrn2<mode>_insn_le): Likewise.
14153         (aarch64_rshrn2<mode>_insn_be): Likewise.
14154         (aarch64_rshrn2<mode>): Likewise.
14155         * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
14156         * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
14157         using builtin.
14158         (vrshrn_high_n_s32): Likewise.
14159         (vrshrn_high_n_s64): Likewise.
14160         (vrshrn_high_n_u16): Likewise.
14161         (vrshrn_high_n_u32): Likewise.
14162         (vrshrn_high_n_u64): Likewise.
14163         (vrshrn_n_s16): Likewise.
14164         (vrshrn_n_s32): Likewise.
14165         (vrshrn_n_s64): Likewise.
14166         (vrshrn_n_u16): Likewise.
14167         (vrshrn_n_u32): Likewise.
14168         (vrshrn_n_u64): Likewise.
14169
14170 2021-02-01  Sergei Trofimovich  <siarheit@google.com>
14171
14172         PR tree-optimization/98499
14173         * ipa-modref.c (analyze_ssa_name_flags): treat RVO
14174         conservatively and assume all possible side-effects.
14175
14176 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14177
14178         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
14179         vec_unpacku_hi_): Define builtins.
14180         * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
14181         builtin.
14182         (vmovl_high_s16): Likewise.
14183         (vmovl_high_s32): Likewise.
14184         (vmovl_high_u8): Likewise.
14185         (vmovl_high_u16): Likewise.
14186         (vmovl_high_u32): Likewise.
14187
14188 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14189
14190         * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
14191         Define builtins.
14192         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
14193         pattern.
14194         * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
14195         UNSPEC_UABDL.
14196         * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
14197         builtin.
14198         (vabdl_s16): Likewise.
14199         (vabdl_s32): Likewise.
14200         (vabdl_u8): Likewise.
14201         (vabdl_u16): Likewise.
14202         (vabdl_u32): Likewise.
14203         * config/aarch64/iterators.md (ABDL): New int iterator.
14204         (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
14205
14206 2021-02-01  Martin Sebor  <msebor@redhat.com>
14207
14208         * tree.h (BLOCK_VARS): Add comment.
14209         (BLOCK_SUBBLOCKS): Same.
14210         (BLOCK_SUPERCONTEXT): Same.
14211         (BLOCK_ABSTRACT_ORIGIN): Same.
14212         (inlined_function_outer_scope_p): Same.
14213
14214 2021-02-01  Martin Sebor  <msebor@redhat.com>
14215
14216         PR middle-end/97172
14217         * attribs.c (attr_access::free_lang_data): Define new function.
14218         * attribs.h (attr_access::free_lang_data): Declare new function.
14219
14220 2021-02-01  Richard Biener  <rguenther@suse.de>
14221
14222         * vec.h (auto_vec::auto_vec): Add memory stat parameters
14223         and pass them on.
14224         * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
14225
14226 2021-02-01  Tamar Christina  <tamar.christina@arm.com>
14227
14228         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
14229         aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
14230
14231 2021-02-01  Richard Biener  <rguenther@suse.de>
14232
14233         PR rtl-optimization/98863
14234         * config/i386/i386-features.c (convert_scalars_to_vector):
14235         Set DF_RD_PRUNE_DEAD_DEFS.
14236
14237 2021-01-31  Eric Botcazou  <ebotcazou@adacore.com>
14238
14239         * system.h (SIZE_MAX): Define if not already defined.
14240
14241 2021-01-30  Aaron Sawdey  <acsawdey@linux.ibm.com>
14242
14243         * config/rs6000/genfusion.pl (gen_2logical): New function to
14244         generate patterns for logical-logical fusion.
14245         * config/rs6000/fusion.md: Regenerated patterns.
14246         * config/rs6000/rs6000-cpus.def: Add
14247         OPTION_MASK_P10_FUSION_2LOGICAL.
14248         * config/rs6000/rs6000.c (rs6000_option_override_internal):
14249         Enable logical-logical fusion for p10.
14250         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
14251
14252 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
14253
14254         * config/rs6000/rs6000.opt: Add periods to new AIX options.
14255
14256 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
14257
14258         * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
14259         (mabi=vec-default): New.
14260         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
14261         __EXTABI__ for AIX Vector extended ABI.
14262         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
14263         extabi info.
14264         (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
14265         are non-volatile.
14266         * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
14267
14268 2021-01-30  Jakub Jelinek  <jakub@redhat.com>
14269
14270         * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
14271         DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
14272
14273 2021-01-29  Vladimir N. Makarov  <vmakarov@redhat.com>
14274
14275         PR target/97701
14276         * lra-constraints.c (in_class_p): Don't narrow class only for REG
14277         or MEM.
14278
14279 2021-01-29  Will Schmidt  <will_schmidt@vnet.ibm.com>
14280
14281         * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
14282         clauses for CODE_FOR_vsx_xvcvuxddp_scale and
14283         CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
14284
14285 2021-01-29  Andrew MacLeod  <amacleod@redhat.com>
14286
14287         PR tree-optimization/98866
14288         * gimple-range-gori.h (gori_compute:set_range_invariant): New.
14289         * gimple-range-gori.cc (gori_map::set_range_invariant): New.
14290         (gori_map::m_maybe_invariant): Rename from all_outgoing.
14291         (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
14292         (gori_map::is_export_p): Ditto.
14293         (gori_map::calculate_gori): Ditto.
14294         (gori_compute::set_range_invariant): New.
14295         * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
14296         invariant for pointers evaluating to [1, +INF].
14297
14298 2021-01-29  Richard Biener  <rguenther@suse.de>
14299
14300         PR rtl-optimization/98863
14301         * config/i386/i386-features.c (remove_partial_avx_dependency):
14302         Do not perform DF analysis.
14303         (pass_data_remove_partial_avx_dependency): Remove
14304         TODO_df_finish.
14305
14306 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
14307
14308         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
14309         builtin generator macros.
14310         * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
14311         Define.
14312         * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
14313         instead of inline asm.
14314         (vmull_n_s32): Likewise.
14315         (vmull_n_u16): Likewise.
14316         (vmull_n_u32): Likewise.
14317
14318 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14319
14320         * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
14321         Define builtins.
14322         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
14323         Rename to...
14324         (aarch64_<sur>abdl2<mode>): ... This.
14325         (<sur>sadv16qi): Adjust use of above.
14326         * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
14327         builtin.
14328         (vabdl_high_s16): Likewise.
14329         (vabdl_high_s32): Likewise.
14330         (vabdl_high_u8): Likewise.
14331         (vabdl_high_u16): Likewise.
14332         (vabdl_high_u32): Likewise.
14333
14334 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14335
14336         * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
14337         builtin.
14338         (uabal2): Likewise.
14339         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
14340         pattern.
14341         * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
14342         UNSPEC_UABAL2.
14343         * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
14344         builtin.
14345         (vabal_high_s16): Likewise.
14346         (vabal_high_s32): Likewise.
14347         (vabal_high_u8): Likewise.
14348         (vabal_high_u16): Likewise.
14349         (vabal_high_u32): Likewise.
14350         * config/aarch64/iterators.md (ABAL2): New mode iterator.
14351         (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
14352
14353 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14354
14355         * config/aarch64/aarch64-simd-builtins.def (sabal): Define
14356         builtin.
14357         (uabal): Likewise.
14358         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
14359         Rename to...
14360         (aarch64_<sur>abal<mode>): ... This
14361         (<sur>sadv16qi): Adust use of the above.
14362         * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
14363         builtin.
14364         (vabal_s16): Likewise.
14365         (vabal_s32): Likewise.
14366         (vabal_u8): Likewise.
14367         (vabal_u16): Likewise.
14368         (vabal_u32): Likewise.
14369
14370 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14371
14372         * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
14373         Define builtins.
14374         * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
14375         Define.
14376         * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
14377         builtin.
14378         (vaddlv_s16): Likewise.
14379         (vaddlv_u8): Likewise.
14380         (vaddlv_u16): Likewise.
14381         (vaddlvq_s8): Likewise.
14382         (vaddlvq_s16): Likewise.
14383         (vaddlvq_s32): Likewise.
14384         (vaddlvq_u8): Likewise.
14385         (vaddlvq_u16): Likewise.
14386         (vaddlvq_u32): Likewise.
14387         (vaddlv_s32): Likewise.
14388         (vaddlv_u32): Likewise.
14389         * config/aarch64/iterators.md (VDQV_L): New mode iterator.
14390         (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
14391         (Vwstype): New mode attribute.
14392         (Vwsuf): Likewise.
14393         (VWIDE_S): Likewise.
14394         (USADDLV): New int iterator.
14395         (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
14396
14397 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
14398
14399         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
14400         builtin generator macros.
14401         * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
14402         Define.
14403         * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
14404         instead of inline asm.
14405         (vmlsl_lane_s32): Likewise.
14406         (vmlsl_lane_u16): Likewise.
14407         (vmlsl_lane_u32): Likewise.
14408         (vmlsl_laneq_s16): Likewise.
14409         (vmlsl_laneq_s32): Likewise.
14410         (vmlsl_laneq_u16): Likewise.
14411         (vmlsl_laneq_u32): Likewise.
14412
14413 2021-01-29  Richard Biener  <rguenther@suse.de>
14414
14415         * doc/invoke.texi (--param max-gcse-memory): Document unit
14416         of size.
14417         * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
14418         * params.opt (--param max-gcse-memory): Adjust default and
14419         document unit of size.
14420
14421 2021-01-29  Richard Biener  <rguenther@suse.de>
14422
14423         PR rtl-optimization/98863
14424         * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
14425         HOST_WIDE_INT for the memory estimate.
14426
14427 2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
14428             Richard Biener  <rguenther@suse.de>
14429
14430         PR tree-optimization/97627
14431         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
14432         Do not analyze fake edges.
14433
14434 2021-01-29  Richard Biener  <rguenther@suse.de>
14435
14436         PR rtl-optimization/98144
14437         * df.h (df_mir_bb_info): Add con_visited member.
14438         * df-problems.c (df_mir_alloc): Initialize con_visited,
14439         do not fully populate IN and OUT.
14440         (df_mir_reset): Likewise.
14441         (df_mir_confluence_0): Set con_visited.
14442         (df_mir_confluence_n): Properly handle implicitely
14443         fully populated IN and OUT as designated by con_visited
14444         and update con_visited accordingly.
14445
14446 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
14447
14448         PR target/98849
14449         * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
14450         vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
14451         && !TARGET_REALLY_IWMMXT to conditions.
14452
14453 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
14454
14455         PR debug/98331
14456         * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
14457         a BARRIER.
14458
14459 2021-01-28  Marek Polacek  <polacek@redhat.com>
14460
14461         PR c++/94775
14462         * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
14463         the main variant, maybe reset it in its variants too.
14464         * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
14465         (check_aligned_type): Check if TYPE_USER_ALIGN match.
14466
14467 2021-01-28  Christophe Lyon  <christophe.lyon@linaro.org>
14468
14469         PR target/98730
14470         * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
14471         of constant zero for comparisons.
14472
14473 2021-01-28  Michael Meissner  <meissner@linux.ibm.com>
14474
14475         * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
14476         support for mapping built-in function names for long double
14477         built-in functions if long double is IEEE 128-bit.
14478
14479 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
14480
14481         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
14482         builtin generator macros.
14483         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
14484         Define.
14485         * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
14486         instead of inline asm.
14487         (vmlsl_n_s32): Likewise.
14488         (vmlsl_n_u16): Likewise.
14489         (vmlsl_n_u32): Likewise.
14490
14491 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
14492
14493         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
14494         builtin generator macros.
14495         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
14496         Define.
14497         * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
14498         instead of inline asm.
14499         (vmlal_n_s32): Likewise.
14500         (vmlal_n_u16): Likewise.
14501         (vmlal_n_u32): Likewise.
14502
14503 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14504
14505         * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
14506         builtin.
14507         * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
14508         Define.
14509         (aarch64_shrn2<mode>_insn_be): Likewise.
14510         (aarch64_shrn2<mode>): Likewise.
14511         * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
14512         using builtins.
14513         (vshrn_high_n_s32): Likewise.
14514         (vshrn_high_n_s64): Likewise.
14515         (vshrn_high_n_u16): Likewise.
14516         (vshrn_high_n_u32): Likewise.
14517         (vshrn_high_n_u64): Likewise.
14518
14519 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14520
14521         * config/aarch64/aarch64-simd-builtins.def (shrn): Define
14522         builtin.
14523         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
14524         Define.
14525         (aarch64_shrn<mode>_insn_be): Likewise.
14526         (aarch64_shrn<mode>): Likewise.
14527         * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
14528         builtins.
14529         (vshrn_n_s32): Likewise.
14530         (vshrn_n_s64): Likewise.
14531         (vshrn_n_u16): Likewise.
14532         (vshrn_n_u32): Likewise.
14533         (vshrn_n_u64): Likewise.
14534         * config/aarch64/iterators.md (vn_mode): New mode attribute.
14535
14536 2021-01-28  Richard Biener  <rguenther@suse.de>
14537
14538         PR rtl-optimization/80960
14539         * dse.c (check_mem_read_rtx): Call get_addr on the
14540         offsetted address.
14541
14542 2021-01-28  Xionghu Luo  <luoxhu@linux.ibm.com>
14543             David Edelsohn  <dje.gcc@gmail.com>
14544
14545         PR target/98799
14546         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14547         Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
14548         when -m32.
14549         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
14550         Delete.
14551         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
14552         wrapper call rs6000_expand_vector_set_var for cleanup.  Call
14553         rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
14554         directly.
14555         (rs6000_expand_vector_set_var): Delete.
14556         (rs6000_expand_vector_set_var_p9): Make static.
14557         (rs6000_expand_vector_set_var_p8): Make static.
14558
14559 2021-01-28  Xing GUO  <higuoxing@gmail.com>
14560
14561         * common/config/riscv/riscv-common.c
14562         (riscv_subset_list::parsing_subset_version): Fix -march option parsing
14563         when `p` extension exists.
14564
14565 2021-01-27  Vladimir N. Makarov  <vmakarov@redhat.com>
14566
14567         PR rtl-optimization/97684
14568         * ira.c (ira): Call ira_set_pseudo_classes before
14569         update_equiv_regs when it is necessary.
14570
14571 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
14572
14573         PR target/98853
14574         * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
14575         %w0, %w1 and %2 instead of %0, %1 and %2.
14576
14577 2021-01-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
14578
14579         * config/rs6000/genfusion.pl: New script to generate
14580         define_insn_and_split patterns so combine can arrange fused
14581         instructions next to each other.
14582         * config/rs6000/fusion.md: New file, generated fused instruction
14583         patterns for combine.
14584         * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
14585         (non_update_memory_operand): New predicate.
14586         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
14587         OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
14588         POWERPC_MASKS.
14589         * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
14590         prototype.
14591         * config/rs6000/rs6000.c (rs6000_option_override_internal):
14592         Automatically set OPTION_MASK_P10_FUSION and
14593         OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
14594         (rs600_opt_masks): Allow -mpower10-fusion
14595         in function attributes.
14596         (address_is_non_pfx_d_or_x): New function.
14597         * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
14598         * config/rs6000/rs6000.md: Include fusion.md.
14599         * config/rs6000/rs6000.opt: Add -mpower10-fusion
14600         and -mpower10-fusion-ld-cmpi.
14601         * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
14602
14603 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
14604
14605         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
14606         builtin generator macros.
14607         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
14608         Rename to...
14609         (aarch64_<su>mlal<mode>): This.
14610         * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
14611         instead of inline asm.
14612         (vmlal_s16): Likewise.
14613         (vmlal_s32): Likewise.
14614         (vmlal_u8): Likewise.
14615         (vmlal_u16): Likewise.
14616         (vmlal_u32): Likewise.
14617
14618 2021-01-27  Richard Biener  <rguenther@suse.de>
14619
14620         PR tree-optimization/98854
14621         * tree-vect-slp.c (vect_build_slp_tree_2): Also build
14622         PHIs from scalars when the number of CTORs matches the
14623         number of children.
14624
14625 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
14626
14627         * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
14628         generator macro.
14629         * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
14630         Rename to...
14631         (aarch64_mls_n<mode>): This.
14632         * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
14633         instead of asm.
14634         (vmls_n_s32): Likewise.
14635         (vmls_n_u16): Likewise.
14636         (vmls_n_u32): Likewise.
14637         (vmlsq_n_s16): Likewise.
14638         (vmlsq_n_s32): Likewise.
14639         (vmlsq_n_u16): Likewise.
14640         (vmlsq_n_u32): Likewise.
14641
14642 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
14643
14644         * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
14645         generator macro.
14646         * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
14647         than asm.
14648         (vmls_s16): Likewise.
14649         (vmls_s32): Likewise.
14650         (vmls_u8): Likewise.
14651         (vmls_u16): Likewise.
14652         (vmls_u32): Likewise.
14653         (vmlsq_s8): Likewise.
14654         (vmlsq_s16): Likewise.
14655         (vmlsq_s32): Likewise.
14656         (vmlsq_u8): Likewise.
14657         (vmlsq_u16): Likewise.
14658         (vmlsq_u32): Likewise.
14659
14660 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
14661
14662         * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
14663         generator macro.
14664         * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
14665         Rename to...
14666         (aarch64_mla_n<mode>): This.
14667         * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
14668         instead of asm.
14669         (vmla_n_s32): Likewise.
14670         (vmla_n_u16): Likewise.
14671         (vmla_n_u32): Likewise.
14672         (vmlaq_n_s16): Likewise.
14673         (vmlaq_n_s32): Likewise.
14674         (vmlaq_n_u16): Likewise.
14675         (vmlaq_n_u32): Likewise.
14676
14677 2021-01-27  liuhongt  <hongtao.liu@intel.com>
14678
14679         PR target/98833
14680         * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
14681         (*sse2_eq<mode>3): Ditto.
14682
14683 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
14684
14685         * tree-pass.h (PROP_trees): Rename to ...
14686         (PROP_gimple): ... this.
14687         * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
14688         * passes.c (execute_function_dump, execute_function_todo,
14689         execute_one_ipa_transform_pass, execute_one_pass): Likewise.
14690         * varpool.c (ctor_for_folding): Likewise.
14691
14692 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
14693
14694         PR tree-optimization/97260
14695         * varpool.c: Include tree-pass.h.
14696         (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
14697         non-TREE_SIDE_EFFECTS automatic variables.
14698
14699 2021-01-26  Paul Fee  <paul.f.fee@gmail.com>
14700
14701         * doc/cpp.texi (__cplusplus): Document value for -std=c++23
14702         or -std=gnu++23.
14703         * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
14704         * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
14705         (gen_compile_unit_die): Recognise C++23.
14706
14707 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
14708
14709         PR bootstrap/98839
14710         * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
14711         in comparison.
14712
14713 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
14714
14715         PR target/98681
14716         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
14717         Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
14718         and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.
14719
14720 2021-01-26  Richard Biener  <rguenther@suse.de>
14721
14722         * gimple-pretty-print.c (dump_binary_rhs): Handle
14723         VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
14724
14725 2021-01-26  Richard Biener  <rguenther@suse.de>
14726
14727         PR middle-end/98726
14728         * tree.h (vector_cst_int_elt): Remove.
14729         * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
14730         make static.
14731
14732 2021-01-26  Andrew Stubbs  <ams@codesourcery.com>
14733
14734         * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
14735         for V64DFmode min/max reductions.
14736
14737 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
14738
14739         * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
14740         as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
14741         two halves, one with x and the other with const0_rtx, ordered
14742         depending on endianity.
14743
14744 2021-01-26  Alexandre Oliva  <oliva@adacore.com>
14745
14746         * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
14747         temporaries not seen in binding block, and not about to be
14748         added as gimple variables.
14749
14750 2021-01-25  Martin Sebor  <msebor@redhat.com>
14751
14752         PR c++/98646
14753         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
14754
14755 2021-01-25  Martin Liska  <mliska@suse.cz>
14756
14757         * value-prof.c (get_nth_most_common_value): Use %s instead
14758         of %qs string.
14759
14760 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
14761
14762         PR debug/98811
14763         * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
14764         readelf -wi is able to read the emitted .debug_info back.
14765         * configure: Regenerated.
14766
14767 2021-01-25  Martin Liska  <mliska@suse.cz>
14768
14769         PR gcov-profile/98739
14770         * common.opt: Add missing sign symbol.
14771         * value-prof.c (get_nth_most_common_value): Restore handling
14772         of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
14773         PROFILE_REPRODUCIBILITY_MULTITHREADED.
14774
14775 2021-01-25  Richard Biener  <rguenther@suse.de>
14776
14777         PR middle-end/98807
14778         * tree.c (vector_element_bits): Always use precision of
14779         the element type for boolean vectors.
14780
14781 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14782
14783         * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
14784         (ENDFILE_SPEC): Evaluate qnolinkcmds.
14785
14786 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14787
14788         * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
14789         nostartfiles handling since this is already done by
14790         LINK_COMMAND_SPEC.  Evaluate qnolinkcmds.
14791         (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
14792         is already done by LINK_COMMAND_SPEC.
14793         (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
14794         this is already done by LINK_COMMAND_SPEC.  Remove qnolinkcmds
14795         evaluation.
14796
14797 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
14798
14799         PR testsuite/98771
14800         * fold-const-call.c (host_size_t_cst_p): Renamed to ...
14801         (size_t_cst_p): ... this.  Check and store unsigned HOST_WIDE_INT
14802         value rather than host size_t.
14803         (fold_const_call): Change type of s2 from size_t to
14804         unsigned HOST_WIDE_INT.  Use size_t_cst_p instead of
14805         host_size_t_cst_p.  For strncmp calls, pass MIN (s2, SIZE_MAX)
14806         instead of s2 as last argument.
14807
14808 2021-01-25  Tamar Christina  <tamar.christina@arm.com>
14809
14810         * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
14811         VCMLA_OP, VCMUL_OP): New.
14812         * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
14813         * config/arm/neon.md (cmul<conj_op><mode>3): New.
14814         * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
14815         UNSPEC_VCMUL_CONJ): New.
14816         * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
14817         cml<fcmac1><conj_op><mode>4): New.
14818
14819 2021-01-23  Jakub Jelinek  <jakub@redhat.com>
14820
14821         PR testsuite/97301
14822         * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
14823
14824 2021-01-22  Jonathan Wright  <jonathan.wright@arm.com>
14825
14826         * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
14827         generator macro.
14828         * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
14829         than asm.
14830         (vmla_s16): Likewise.
14831         (vmla_s32): Likewise.
14832         (vmla_u8): Likewise.
14833         (vmla_u16): Likewise.
14834         (vmla_u32): Likewise.
14835         (vmlaq_s8): Likewise.
14836         (vmlaq_s16): Likewise.
14837         (vmlaq_s32): Likewise.
14838         (vmlaq_u8): Likewise.
14839         (vmlaq_u16): Likewise.
14840         (vmlaq_u32): Likewise.
14841
14842 2021-01-22  David Malcolm  <dmalcolm@redhat.com>
14843
14844         * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
14845         directive.
14846
14847 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
14848
14849         PR debug/98796
14850         * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
14851         filenames to emit, still emit the required 0 index directory and
14852         filename entries that match DW_AT_comp_dir and DW_AT_name of the
14853         compilation unit.
14854
14855 2021-01-22  Marek Polacek  <polacek@redhat.com>
14856
14857         PR c++/98545
14858         * doc/invoke.texi: Update C++ ABI Version 15 description.
14859
14860 2021-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14861
14862         PR tree-optimization/98766
14863         * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
14864         comparing against type size with param_avoid_fma_max_bits.
14865
14866 2021-01-22  Richard Biener  <rguenther@suse.de>
14867
14868         PR middle-end/98793
14869         * tree.c (vector_element_bits): Key single-bit bool vector on
14870         integer mode rather than not vector mode.
14871
14872 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
14873
14874         PR target/98093
14875         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14876         Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
14877         platforms.
14878         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
14879         to call different path for P8 and P9.
14880         (rs6000_expand_vector_set_var_p9): New function.
14881         (rs6000_expand_vector_set_var_p8): New function.
14882
14883 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
14884
14885         PR target/79251
14886         PR target/98065
14887         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14888         Ajdust variable index vec_insert from address dereference to
14889         ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
14890         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
14891         New declaration.
14892         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
14893
14894 2021-01-22  Martin Liska  <mliska@suse.cz>
14895
14896         PR gcov-profile/98739
14897         * profile.c (compute_value_histograms): Drop time profile for
14898         -fprofile-reproducible=multithreaded.
14899
14900 2021-01-22  Nathan Sidwell  <nathan@acm.org>
14901
14902         * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
14903         existence here.
14904
14905 2021-01-22  Richard Biener  <rguenther@suse.de>
14906
14907         PR middle-end/98773
14908         * tree-data-ref.c (initalize_matrix_A): Revert previous
14909         change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
14910
14911 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
14912
14913         PR tree-optimization/90248
14914         * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
14915         X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
14916         simplifications.
14917         (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
14918         X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
14919
14920 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
14921
14922         PR tree-optimization/98255
14923         * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
14924         extend index - low_bound from sizetype's precision rather than index
14925         precision.
14926         (get_addr_base_and_unit_offset_1): Likewise.
14927         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
14928         * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
14929
14930 2021-01-22  Richard Biener  <rguenther@suse.de>
14931
14932         PR tree-optimization/98786
14933         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
14934         adding new uses of abnormals.  Verify we deal with a conditional
14935         conversion.
14936
14937 2021-01-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14938
14939         PR target/98636
14940         * optc-save-gen.awk: Add arm_fp16_format to checked_options.
14941
14942 2021-01-22  liuhongt  <hongtao.liu@intel.com>
14943
14944         PR target/96891
14945         PR target/98348
14946         * config/i386/sse.md (VI_128_256): New mode iterator.
14947         (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
14948          *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
14949          *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
14950         define_insn_and_split to lower avx512 vector comparison to avx
14951         version when dest is vector.
14952         (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
14953         define_insn_and_split for negating the comparison result.
14954         * config/i386/predicates.md (float_vector_all_ones_operand):
14955         New predicate.
14956         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
14957         general NOT operator without UNSPEC_MASKOP.
14958
14959 2021-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
14960
14961         PR rtl-optimization/98777
14962         * lra-int.h (lra_pmode_pseudo): New extern.
14963         * lra.c (lra_pmode_pseudo): New global.
14964         (lra): Set it up.
14965         * lra-eliminations.c (eliminate_regs_in_insn): Use it.
14966
14967 2021-01-21  Ilya Leoshkevich  <iii@linux.ibm.com>
14968
14969         * fwprop.c (fwprop_propagation::classify_result): Allow
14970         (subreg (mem)) simplifications.
14971
14972 2021-01-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14973
14974         * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
14975         Split into...
14976         (aarch64_sqdmlal<mode>): ... This...
14977         (aarch64_sqdmlsl<mode>): ... And this.
14978         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
14979         (aarch64_sqdmlal_lane<mode>): ... This...
14980         (aarch64_sqdmlsl_lane<mode>): ... And this.
14981         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
14982         (aarch64_sqdmlsl_laneq<mode>): ... This...
14983         (aarch64_sqdmlal_laneq<mode>):  ... And this.
14984         (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
14985         (aarch64_sqdmlsl_n<mode>): ... This...
14986         (aarch64_sqdmlal_n<mode>): ... And this.
14987         (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
14988         (aarch64_sqdmlal2<mode>_internal): ... This...
14989         (aarch64_sqdmlsl2<mode>_internal): ... And this.
14990
14991 2021-01-21  Christophe Lyon  <christophe.lyon@linaro.org>
14992
14993         * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
14994
14995 2021-01-21  Andrea Corallo  <andrea.corallo@arm.com>
14996
14997         PR target/96372
14998         * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
14999
15000 2021-01-21  liuhongt  <hongtao.liu@intel.com>
15001
15002         PR rtl-optimization/98694
15003         * regcprop.c (copy_value): If SRC had been assigned a mode
15004         narrower than the copy, we can't link DEST into the chain even
15005         they have same hard_regno_nregs(i.e. HImode/SImode in i386
15006         backend).
15007
15008 2021-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15009
15010         * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
15011         Convert to define_insn_and_split.  Split into simple move when moving
15012         bottom element.
15013
15014 2021-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
15015
15016         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
15017         Adjust comment.  Simplify code.
15018
15019 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
15020
15021         PR debug/98765
15022         * dwarf2out.c (reset_indirect_string): Also reset indirect strings
15023         with DW_FORM_line_strp form.
15024         (prune_unused_types_update_strings): Don't add into debug_str_hash
15025         indirect strings with DW_FORM_line_strp form.
15026         (adjust_name_comp_dir): New function.
15027         (dwarf2out_finish): Call it on CU DIEs after resetting
15028         debug_line_str_hash.
15029
15030 2021-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>
15031
15032         PR rtl-optimization/98722
15033         * lra-eliminations.c (eliminate_regs_in_insn): Check that target
15034         has no 3-op add insn to transform insns containing two pluses.
15035
15036 2021-01-20  Richard Biener  <rguenther@suse.de>
15037
15038         * hwint.h (add_hwi): New function.
15039         (mul_hwi): Likewise.
15040         * tree-data-ref.c (initialize_matrix_A): Properly translate
15041         tree constants and avoid HOST_WIDE_INT_MIN.
15042         (lambda_matrix_row_add): Avoid undefined integer overflow
15043         and return true on such overflow.
15044         (lambda_matrix_right_hermite): Handle overflow from
15045         lambda_matrix_row_add gracefully.  Simplify previous fix.
15046         (analyze_subscript_affine_affine): Likewise.
15047
15048 2021-01-20  Eugene Rozenfeld  <erozen@microsoft.com>
15049
15050         PR tree-optimization/96674
15051         * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
15052         x >= y && y != XXX_MIN --> x > y - 1
15053
15054 2021-01-20  Richard Sandiford  <richard.sandiford@arm.com>
15055
15056         PR tree-optimization/98535
15057         * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
15058         If the high and low permutes are the same, remove the high permutes
15059         from the working set and only continue with the low ones.
15060
15061 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
15062
15063         PR tree-optimization/98721
15064         * builtins.c (access_ref::inform_access): Don't assume
15065         SSA_NAME_IDENTIFIER must be non-NULL.  Print messages about
15066         object whenever allocfn is NULL, rather than only when DECL_P
15067         is true.  Use %qE instead of %qD for that.  Formatting fixes.
15068
15069 2021-01-20  Richard Biener  <rguenther@suse.de>
15070
15071         PR tree-optimization/98758
15072         * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
15073         (lambda_matrix_right_hermite): Avoid undefinedness with
15074         signed integer abs and multiplication.
15075         (analyze_subscript_affine_affine): Use lambda_int.
15076
15077 2021-01-20  David Malcolm  <dmalcolm@redhat.com>
15078
15079         PR debug/98751
15080         * dwarf2out.c (output_line_info): Rename static variable
15081         "generation", moving it out of the function to...
15082         (output_line_info_generation): New.
15083         (init_sections_and_labels): Likewise, renaming the variable to...
15084         (init_sections_and_labels_generation): New.
15085         (dwarf2out_c_finalize): Reset the new variables.
15086
15087 2021-01-19  Martin Sebor  <msebor@redhat.com>
15088
15089         PR middle-end/98664
15090         * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
15091         all functions, even if they're not declared artificial or inline.
15092         * tree.c (tree_inlined_location): Use macro expansion location
15093         only if scope traversal fails to expose one.
15094
15095 2021-01-19  Richard Sandiford  <richard.sandiford@arm.com>
15096
15097         PR rtl-optimization/92294
15098         * alias.c (compare_base_symbol_refs): Take an extra parameter
15099         and add the distance between two symbols to it.  Enshrine in
15100         comments that -1 means "either 0 or 1, but we can't tell
15101         which at compile time".
15102         (memrefs_conflict_p): Update call accordingly.
15103         (rtx_equal_for_memref_p): Likewise.  Take the distance between symbols
15104         into account.
15105
15106 2021-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15107
15108         * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
15109         sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
15110         uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
15111         sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
15112         sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
15113         sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
15114         sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
15115         sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
15116         sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
15117         uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
15118         sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
15119         sqmovun): Use NONE flags.
15120
15121 2021-01-19  Richard Biener  <rguenther@suse.de>
15122
15123         PR ipa/98330
15124         * ipa-modref.c (analyze_stmt): Only record a summary for a
15125         direct call.
15126
15127 2021-01-19  Richard Biener  <rguenther@suse.de>
15128
15129         PR middle-end/98638
15130         * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
15131
15132 2021-01-19  Daniel Hellstrom  <daniel@gaisler.com>
15133
15134         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
15135         built-in define __FIX_LEON3FT_TN0018.
15136
15137 2021-01-19  Richard Biener  <rguenther@suse.de>
15138
15139         PR ipa/97673
15140         * tree-inline.c (tree_function_versioning): Set input_location
15141         to UNKNOWN_LOCATION throughout the function.
15142
15143 2021-01-19  Tobias Burnus  <tobias@codesourcery.com>
15144
15145         PR fortran/98476
15146         * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
15147
15148 2021-01-19  Martin Jambor  <mjambor@suse.cz>
15149
15150         PR ipa/98690
15151         * ipa-sra.c (ssa_name_only_returned_p): New parameter fun.  Check
15152         whether non-call exceptions allow removal of a statement.
15153         (isra_analyze_call): Pass the appropriate function to
15154         ssa_name_only_returned_p.
15155
15156 2021-01-19  Geng Qi  <gengqi@linux.alibaba.com>
15157
15158         * config/riscv/arch-canonicalize (longext_sort): New function for
15159          sorting 'multi-letter'.
15160         * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
15161         'alts'. The 'arch' may not be the first of 'alts'.
15162         (_expand_combination): Add underline for the 'ext' without '*'.
15163         This is because, a single-letter extension can always be treated well
15164         with a '_' prefix, but it cannot be separated out if it is appended
15165         to a multi-letter.
15166
15167 2021-01-18  Vladimir N. Makarov  <vmakarov@redhat.com>
15168
15169         PR target/97847
15170         * ira.c (ira): Skip abnormal critical edge splitting.
15171
15172 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
15173
15174         PR tree-optimization/98727
15175         * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
15176         second .MUL_OVERFLOW operand for signed multiplication with overflow
15177         checking if the second operand of multiplication is not constant.
15178
15179 2021-01-18  David Edelsohn  <dje.gcc@gmail.com>
15180
15181         * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
15182         defaults to version 4.
15183
15184 2021-01-18  David Malcolm  <dmalcolm@redhat.com>
15185
15186         * attribs.h (fndecl_dealloc_argno): New decl.
15187         * builtins.c (call_dealloc_argno): Split out second half of
15188         function into...
15189         (fndecl_dealloc_argno): New.
15190         * doc/extend.texi (Common Function Attributes): Document the
15191         interaction between the analyzer and the malloc attribute.
15192         * doc/invoke.texi (Static Analyzer Options): Likewise.
15193
15194 2021-01-17  David Edelsohn  <dje.gcc@gmail.com>
15195
15196         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
15197         dwarf_version to 4.
15198         * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
15199
15200 2021-01-17  Martin Jambor  <mjambor@suse.cz>
15201
15202         PR ipa/98222
15203         * cgraph.c (clone_of_p): Check also former_clone_of as we climb
15204         the clone tree.
15205
15206 2021-01-17  Mark Wielaard  <mark@klomp.org>
15207
15208         * common.opt (gdwarf-): Init(5).
15209         * doc/invoke.texi (-gdwarf): Document default to 5.
15210
15211 2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
15212
15213         * builtin-types.def
15214         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
15215         to...
15216         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
15217         ...this.  Add extra argument.
15218         * gimplify.c (omp_default_clause): Ensure that event handle is
15219         firstprivate in a task region.
15220         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
15221         (gimplify_adjust_omp_clauses): Likewise.
15222         * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
15223         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
15224         * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
15225         if detach clause specified.  Add detach argument when generating
15226         call to GOMP_task.
15227         * omp-low.c (scan_sharing_clauses): Setup data environment for detach
15228         clause.
15229         (finish_taskreg_scan): Move field for variable containing the event
15230         handle to the front of the struct.
15231         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH.  Fix
15232         ordering.
15233         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
15234         OMP_CLAUSE_DETACH clause.
15235         (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
15236         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
15237         * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
15238         Fix ordering.
15239         (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH.  Fix
15240         ordering.
15241         (walk_tree_1): Handle OMP_CLAUSE_DETACH.
15242
15243 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15244
15245         * config/nios2/t-rtems: Reset all MULTILIB_* variables.  Shorten
15246         multilib directory names.  Use MULTILIB_REQUIRED instead of
15247         MULTILIB_EXCEPTIONS.  Add -mhw-mul -mhw-mulx -mhw-div
15248         -mcustom-fpu-cfg=fph2 multilib.
15249
15250 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15251
15252         * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
15253         (nios2_init_fpu_configs): Provide register values for new
15254         -mcustom-fpu-cfg=fph2 option variant.
15255         * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
15256         variant.
15257
15258 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15259
15260         * config/nios2/nios2.c (nios2_custom_check_insns): Remove
15261         custom instruction warnings.
15262
15263 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
15264
15265         PR tree-optimization/96669
15266         * match.pd ((CST << x) & 1 -> x == 0): New simplification.
15267
15268 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
15269
15270         PR tree-optimization/96271
15271         * passes.def: Pass false argument to first two pass_cd_dce
15272         instances and true to last instance.  Add comment that
15273         last instance rewrites no longer addressed locals.
15274         * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
15275         initialize it.
15276         (pass_cd_dce::set_pass_param): New method.
15277         (pass_cd_dce::execute): Return TODO_update_address_taken from
15278         last cd_dce instance.
15279
15280 2021-01-15  Carl Love  <cel@us.ibm.com>
15281
15282         * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
15283         New defines.
15284         * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
15285         * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
15286         DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
15287         DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
15288         MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
15289         Add builtin define.
15290         (MULH, DIVE, MOD):  Add new BU_P10_OVERLOAD_2 definitions.
15291         * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
15292         VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
15293         New overloaded definitions.
15294         (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
15295         P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
15296         P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
15297         P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
15298         P10V_BUILTIN_MULHU_V4SI]: Add case
15299         statement for builtins.
15300         * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
15301         * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
15302         (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
15303         (vsx_mul_v2di): Add if TARGET_POWER10 statement.
15304         (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
15305         (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
15306         mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
15307         Add define_insn, mode is VIlong.
15308         * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
15309         Add builtin descriptions.
15310
15311 2021-01-15  Eric Botcazou  <ebotcazou@adacore.com>
15312
15313         * final.c (final_start_function_1): Reset force_source_line.
15314
15315 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
15316
15317         PR tree-optimization/96669
15318         * match.pd (((1 << A) & 1) != 0 -> A == 0,
15319         ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
15320         possibly different power of two constants and to right shift too.
15321
15322 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
15323
15324         PR tree-optimization/96681
15325         * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
15326         ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
15327         ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
15328         ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
15329
15330 2021-01-15  Alexandre Oliva  <oliva@adacore.com>
15331
15332         * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
15333
15334 2021-01-15  Tamar Christina  <tamar.christina@arm.com>
15335
15336         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
15337         cmul<conj_op><mode>3): New.
15338         * config/aarch64/iterators.md (UNSPEC_FCMUL,
15339         UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
15340         UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
15341         FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
15342         sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
15343         (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
15344         (rot_op): Renamed to conj_op.
15345         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
15346         cmul<conj_op><mode>3): New.
15347         * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
15348         cmul<conj_op><mode>3): New.
15349
15350 2021-01-15  David Malcolm  <dmalcolm@redhat.com>
15351
15352         PR bootstrap/98696
15353         * diagnostic.c
15354         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
15355         Escape the tempfile name when constructing the expected output.
15356
15357 2021-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15358
15359         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
15360         Rename to...
15361         (aarch64_<su>mlsl_hi<mode>): ... This.
15362         (aarch64_<su>mlsl_hi<mode>): Define.
15363         (*aarch64_<su>mlsl<mode): Rename to...
15364         (aarch64_<su>mlsl<mode): ... This.
15365         * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
15366         smlsl_hi, umlsl_hi): Define builtins.
15367         * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
15368         vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
15369         vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
15370         vmlsl_u16, vmlsl_u32): Reimplement with builtins.
15371
15372 2021-01-15  Uroš Bizjak  <ubizjak@gmail.com>
15373
15374         * config/i386/i386-c.c (ix86_target_macros):
15375         Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
15376
15377 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
15378
15379         PR target/88836
15380         * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
15381         * Makefile.in (RTL_SSA_H): New variable.
15382         * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
15383         * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
15384         * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
15385         pass_combine.
15386         * config/aarch64/aarch64-cc-fusion.cc: New file.
15387
15388 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
15389
15390         * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
15391         calling cancel_changes for changes that no longer exist.
15392
15393 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
15394
15395         * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
15396         (function_info::reg_defs): ...this.
15397         * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
15398         (function_info::reg_defs): ...this.
15399
15400 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15401
15402         PR target/71233
15403         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15404
15405 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15406
15407         Revert:
15408         2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15409
15410         PR target/71233
15411         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15412
15413 2021-01-15  Richard Biener  <rguenther@suse.de>
15414
15415         PR tree-optimization/96376
15416         * tree-vect-stmts.c (get_load_store_type): Disregard alignment
15417         for VMAT_INVARIANT.
15418
15419 2021-01-15  Martin Liska  <mliska@suse.cz>
15420
15421         * doc/install.texi: Document that some tests need pytest module.
15422         * doc/sourcebuild.texi: Likewise.
15423
15424 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15425
15426         PR target/71233
15427         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15428
15429 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15430
15431         * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
15432         (mve_vshrq_n_u<mode>_imm): Likewise.
15433         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
15434         * config/arm/vec-common.md: ... here.
15435
15436 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
15437
15438         * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
15439         vec-commond.md.
15440         * config/arm/neon.md (vashl<mode>3): Delete.
15441         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
15442         (vasl<mode>3): New expander.
15443
15444 2021-01-15  Richard Biener  <rguenther@suse.de>
15445
15446         PR tree-optimization/98685
15447         * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
15448         of vector extern defs.
15449
15450 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
15451
15452         PR jit/98586
15453         * diagnostic.c (diagnostic_kind_text): Break out this array
15454         from...
15455         (diagnostic_build_prefix): ...here.
15456         (fancy_abort): Detect when diagnostic_initialize has not yet been
15457         called and fall back to a minimal implementation of printing the
15458         ICE, rather than segfaulting in internal_error.
15459
15460 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
15461
15462         * diagnostic.c (diagnostic_initialize): Eliminate
15463         parseable_fixits_p in favor of initializing extra_output_kind from
15464         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
15465         (convert_column_unit): New function, split out from...
15466         (diagnostic_converted_column): ...this.
15467         (print_parseable_fixits): Add "column_unit" and "tabstop" params.
15468         Use them to call convert_column_unit on the column values.
15469         (diagnostic_report_diagnostic): Eliminate conditional on
15470         parseable_fixits_p in favor of a switch statement on
15471         extra_output_kind, passing the appropriate values to the new
15472         params of print_parseable_fixits.
15473         (selftest::test_print_parseable_fixits_none): Update for new
15474         params of print_parseable_fixits.
15475         (selftest::test_print_parseable_fixits_insert): Likewise.
15476         (selftest::test_print_parseable_fixits_remove): Likewise.
15477         (selftest::test_print_parseable_fixits_replace): Likewise.
15478         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
15479         New.
15480         (selftest::diagnostic_c_tests): Call it.
15481         * diagnostic.h (enum diagnostics_extra_output_kind): New.
15482         (diagnostic_context::parseable_fixits_p): Delete field in favor
15483         of...
15484         (diagnostic_context::extra_output_kind): ...this new field.
15485         * doc/invoke.texi (Environment Variables): Add
15486         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
15487         * opts.c (common_handle_option): Update handling of
15488         OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
15489         fields.
15490
15491 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15492
15493         * tree-vect-slp-patterns.c (class complex_operations_pattern,
15494         complex_operations_pattern::matches,
15495         complex_operations_pattern::recognize,
15496         complex_operations_pattern::build): New.
15497         (slp_patterns): Use it.
15498
15499 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15500
15501         * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
15502         * optabs.def (cmls_optab, cmls_conj_optab): New.
15503         * doc/md.texi: Document them.
15504         * tree-vect-slp-patterns.c (class complex_fms_pattern,
15505         complex_fms_pattern::matches, complex_fms_pattern::recognize,
15506         complex_fms_pattern::build): New.
15507
15508 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15509
15510         * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
15511         * optabs.def (cmla_optab, cmla_conj_optab): New.
15512         * doc/md.texi: Document them.
15513         * tree-vect-slp-patterns.c (vect_match_call_p,
15514         class complex_fma_pattern, vect_slp_reset_pattern,
15515         complex_fma_pattern::matches, complex_fma_pattern::recognize,
15516         complex_fma_pattern::build): New.
15517
15518 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15519
15520         * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
15521         * optabs.def (cmul_optab, cmul_conj_optab): New.
15522         * doc/md.texi: Document them.
15523         * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
15524         vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
15525         vect_build_combine_node, class complex_mul_pattern,
15526         complex_mul_pattern::matches, complex_mul_pattern::recognize,
15527         complex_mul_pattern::build): New.
15528
15529 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15530
15531         * tree-vect-slp.c (optimize_load_redistribution_1): New.
15532         (optimize_load_redistribution, vect_is_slp_load_node): New.
15533         (vect_match_slp_patterns): Use it.
15534
15535 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
15536
15537         * tree-vect-slp-patterns.c (complex_add_pattern::build):
15538         Elide nodes.
15539
15540 2021-01-14  Thomas Schwinge  <thomas@codesourcery.com>
15541
15542         * config/gcn/mkoffload.c (main): Create an offload image only in
15543         64-bit configurations.
15544
15545 2021-01-14  H.J. Lu  <hjl.tools@gmail.com>
15546
15547         PR target/98667
15548         * config/i386/i386-options.c (ix86_option_override_internal):
15549         Issue an error for -fcf-protection with CF_BRANCH when compiling
15550         for 32-bit non-TARGET_CMOV targets.
15551
15552 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
15553
15554         PR target/98671
15555         * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
15556         Remove declaration and initialization of shadow variable "ret".
15557         (ix86_option_override_internal): Remove delcaration of
15558         shadow variable "i".  Redeclare shadowed variable to unsigned.
15559         * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
15560         * config/i386/i386-builtins.c (get_builtin_code_for_version):
15561         Update for redeclaration.
15562         * config/i386/i386.h (pta_size): Ditto.
15563
15564 2021-01-14  Richard Biener  <rguenther@suse.de>
15565
15566         PR tree-optimization/98674
15567         * tree-data-ref.c (base_supports_access_fn_components_p): New.
15568         (initialize_data_dependence_relation): For two bases without
15569         possible access fns resort to type size equality when determining
15570         shape compatibility.
15571
15572 2021-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
15573
15574         PR target/66791
15575         * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
15576         <=, >= operators in vcle and vcge intrinsics respectively.
15577         * config/arm/arm_neon_builtins.def: Remove entry for
15578         vcge and vcgeu.
15579
15580 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
15581
15582         PR target/98671
15583         * config/i386/i386-options.c (ix86_function_specific_save):
15584         Remove redundant assignment to opts->x_ix86_branch_cost.
15585         * config/i386/i386.c (ix86_prefetch_sse):
15586         Rename from x86_prefetch_sse.  Update all uses.
15587         * config/i386/i386.h: Update for rename.
15588         * config/i386/i386-options.h: Ditto.
15589
15590 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
15591
15592         PR target/98670
15593         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
15594         *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
15595         Use Bm instead of m for non-avx.  Add isa attribute.
15596
15597 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
15598
15599         PR tree-optimization/96688
15600         * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
15601         ~X can be simplified.
15602
15603 2021-01-14  Richard Sandiford  <richard.sandiford@arm.com>
15604
15605         * tree-vect-stmts.c (vect_model_load_cost): Account for unused
15606         IFN_LOAD_LANES results.
15607
15608 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15609
15610         * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
15611         Define.
15612         (aarch64_xtn<mode>): Likewise.
15613         * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
15614         Define
15615         builtins.
15616         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
15617         builtin.
15618         (vmovl_s16): Likewise.
15619         (vmovl_s32): Likewise.
15620         (vmovl_u8): Likewise.
15621         (vmovl_u16): Likewise.
15622         (vmovl_u32): Likewise.
15623         (vmovn_s16): Likewise.
15624         (vmovn_s32): Likewise.
15625         (vmovn_s64): Likewise.
15626         (vmovn_u16): Likewise.
15627         (vmovn_u32): Likewise.
15628         (vmovn_u64): Likewise.
15629
15630 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15631
15632         * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
15633         Define.
15634         (aarch64_<su>qxtn2<mode>_be): Likewise.
15635         (aarch64_<su>qxtn2<mode>): Likewise.
15636         * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
15637         Define builtins.
15638         * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
15639         (su): Handle ss_truncate and us_truncate.
15640         * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
15641         builtin.
15642         (vqmovn_high_s32): Likewise.
15643         (vqmovn_high_s64): Likewise.
15644         (vqmovn_high_u16): Likewise.
15645         (vqmovn_high_u32): Likewise.
15646         (vqmovn_high_u64): Likewise.
15647
15648 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15649
15650         * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
15651         Define.
15652         (aarch64_xtn2<mode>_be): Likewise.
15653         (aarch64_xtn2<mode>): Likewise.
15654         * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
15655         builtins.
15656         * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
15657         builtins.
15658         (vmovn_high_s32): Likewise.
15659         (vmovn_high_s64): Likewise.
15660         (vmovn_high_u16): Likewise.
15661         (vmovn_high_u32): Likewise.
15662         (vmovn_high_u64): Likewise.
15663
15664 2021-01-13  Stafford Horne  <shorne@gmail.com>
15665
15666         * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
15667
15668 2021-01-13  Stafford Horne  <shorne@gmail.com>
15669
15670         * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
15671
15672 2021-01-13  Stafford Horne  <shorne@gmail.com>
15673
15674         * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
15675           define for __or1k_hard_float__.
15676
15677 2021-01-13  Stafford Horne  <shorne@gmail.com>
15678
15679         * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
15680         (PROFILE_HOOK): Define to call _mcount.
15681         (FUNCTION_PROFILER): Change from abort to no-op.
15682
15683 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
15684
15685         PR tree-optimization/96691
15686         * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
15687         (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
15688         (~D ^ C) or (D ^ C) can be simplified.
15689
15690 2021-01-13  Richard Biener  <rguenther@suse.de>
15691
15692         PR tree-optimization/92645
15693         * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
15694         until after vector lowering.
15695
15696 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
15697
15698         * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
15699         to SVE_I.
15700         (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
15701         (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
15702
15703 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
15704
15705         * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
15706         to SVE_I.
15707         (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
15708         (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
15709
15710 2021-01-13  Richard Biener  <rguenther@suse.de>
15711
15712         PR tree-optimization/92645
15713         * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
15714         BIT_FIELD_REF argument.
15715         (vect_build_slp_tree_2): Record the desired vector type
15716         on the external vector def.
15717         (vectorizable_slp_permutation): Handle required punning
15718         of existing vector defs.
15719
15720 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
15721
15722         * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
15723
15724 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
15725
15726         * config/sh/sh.md (movsf_ie): Remove operands[2] test.
15727
15728 2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>
15729
15730         * config.gcc [$target == *-*-gnu*]: Enable
15731         'default_gnu_indirect_function'.
15732
15733 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
15734
15735         PR target/95905
15736         * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
15737         registers before calling targetm.vectorize.vec_perm_const, only after
15738         that.
15739         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
15740         two argument permutation when one operand is zero vector and only
15741         after that force operands into registers.
15742         * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
15743         define_insn_and_split pattern.
15744         (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
15745         (*avx512f_zero_extendv16hiv16si2_1): Likewise.
15746         (*avx2_zero_extendv8hiv8si2_1): Likewise.
15747         (*avx512f_zero_extendv8siv8di2_1): Likewise.
15748         (*avx2_zero_extendv4siv4di2_1): Likewise.
15749         * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
15750         into registers.
15751         * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
15752         * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
15753         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
15754         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
15755         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
15756         * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise.  Use std::swap.
15757
15758 2021-01-13  Martin Liska  <mliska@suse.cz>
15759
15760         PR tree-optimization/98455
15761         * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
15762         Record also virtual PHIs.
15763         (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
15764         conditionally.
15765
15766 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
15767
15768         * doc/invoke.texi (C++ Modules): Fix typos.
15769
15770 2021-01-13  Richard Biener  <rguenther@suse.de>
15771
15772         PR tree-optimization/98640
15773         * tree-ssa-sccvn.c (visit_nary_op): Do not try to
15774         handle plus or minus from a truncated operand to be
15775         sign-extended.
15776
15777 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
15778
15779         PR target/96938
15780         * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
15781         define_insn_and_split patterns.
15782         (splitter after *btr<mode>_2): New splitter.
15783
15784 2021-01-13  Martin Liska  <mliska@suse.cz>
15785
15786         PR ipa/98652
15787         * cgraphunit.c (analyze_functions): Remove dead code.
15788
15789 2021-01-13  Qian Jianhua  <qianjh@cn.fujitsu.com>
15790
15791         * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
15792         * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
15793         (a64fx_regmove_cost, a64fx_vector_cost): New.
15794         (a64fx_tunings): Use the new added cost tables.
15795
15796 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
15797
15798         PR target/95905
15799         * config/i386/predicates.md (pmovzx_parallel): New predicate.
15800         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
15801         define_insn_and_split pattern.
15802         (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
15803         (*sse4_1_zero_extendv2siv2di2_3): Likewise.
15804
15805 2021-01-13  Julian Brown  <julian@codesourcery.com>
15806
15807         * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
15808         to fix v0 register.
15809
15810 2021-01-13  Julian Brown  <julian@codesourcery.com>
15811
15812         * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
15813         on entry to a BB.
15814
15815 2021-01-13  Julian Brown  <julian@codesourcery.com>
15816
15817         * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
15818         for reciprocal-approximation instructions.
15819         (div<mode>3): Use fused multiply-accumulate operations for reciprocal
15820         refinement and division result.
15821         * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
15822
15823 2021-01-13  Julian Brown  <julian@codesourcery.com>
15824
15825         * config/gcn/gcn-valu.md (subdf): Rename to...
15826         (subdf3): This.
15827
15828 2021-01-12  Martin Liska  <mliska@suse.cz>
15829
15830         * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
15831
15832 2021-01-12  Andrea Corallo  <andrea.corallo@arm.com>
15833
15834         * function-abi.h: Fix typo.
15835
15836 2021-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
15837
15838         PR target/97875
15839         PR target/97875
15840         * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
15841         (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
15842         (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
15843         (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
15844         (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
15845         (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
15846         (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
15847         (ARM_HAVE_NEON_V2DI_LDST): Likewise.
15848         (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
15849         (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
15850         (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
15851         (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
15852         (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
15853         (ARM_HAVE_V2DI_LDST): Likewise.
15854         * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
15855         (*movmisalign<mode>_mve_load): New pattern.
15856         * config/arm/neon.md (movmisalign<mode>): Move to ...
15857         * config/arm/vec-common.md: ... here.
15858
15859 2021-01-12  Vladimir N. Makarov  <vmakarov@redhat.com>
15860
15861         PR target/97969
15862         * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
15863         of pattern 'plus (plus (hard reg, const), pseudo)'.
15864
15865 2021-01-12  Richard Biener  <rguenther@suse.de>
15866
15867         PR tree-optimization/98550
15868         * tree-vect-slp.c (vect_record_max_nunits): Check whether
15869         the group size is a multiple of the vector element count.
15870         (vect_build_slp_tree_1): When we need to fail because
15871         the vector type choosen causes unrolling do so lazily
15872         without affecting matches only at the end to guide group splitting.
15873
15874 2021-01-12  Martin Liska  <mliska@suse.cz>
15875
15876         PR c++/97284
15877         * optc-save-gen.awk: Compare also n_target_save vars with
15878         strcmp.
15879
15880 2021-01-12  Martin Liska  <mliska@suse.cz>
15881
15882         * gcov.c (source_info::debug): New.
15883         (print_usage): Add --debug (-D) option.
15884         (process_args): Likewise.
15885         (generate_results): Call src->debug after
15886         accumulate_line_counts.
15887         (read_graph_file): Properly assign id for EXIT_BLOCK.
15888         * profile.c (branch_prob): Dump function body before it is
15889         instrumented.
15890
15891 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
15892
15893         PR tree-optimization/98629
15894         * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
15895         unless returning non-zero.
15896
15897 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
15898
15899         PR tree-optimization/95731
15900         * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
15901         x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
15902         (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
15903         only after optimize_range_tests_var_bound.
15904
15905 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
15906
15907         * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
15908         * configure: Regenerated.
15909
15910 2021-01-12  liuhongt  <hongtao.liu@intel.com>
15911
15912         PR target/98612
15913         * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
15914         Deleted.
15915         * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
15916         dead code.
15917
15918 2021-01-12  Alexandre Oliva  <oliva@adacore.com>
15919
15920         * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
15921         declare.
15922         (auto_end_imm_use_stmt_traverse): New struct.
15923         (FOR_EACH_IMM_USE_STMT): Use it.
15924         (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
15925         along with uses...
15926         * gimple-ssa-strength-reduction.c: ... here, ...
15927         * graphite-scop-detection.c: ... here, ...
15928         * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
15929         * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
15930         * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
15931         * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
15932         * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
15933         * tree-vect-slp.c: ... and here, ...
15934         * doc/tree-ssa.texi: ... and the example here.
15935
15936 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15937
15938         * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
15939         SVE_FULL_I to SVE_I.  Generate an UNSPEC_PRED_X.
15940         (*sdiv_pow2<mode>3): New pattern.
15941         (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
15942         Wrap the ASRD in an UNSPEC_PRED_X.
15943         (*cond_<sve_int_op><mode>_2): Likewise.  Replace the UNSPEC_PRED_X
15944         predicate with a constant PTRUE, if it isn't already.
15945         (*cond_<sve_int_op><mode>_z): Replace with...
15946         (*cond_<sve_int_op><mode>_any): ...this new pattern.
15947
15948 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15949
15950         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
15951         SVE_FULL_I to SVE_I.
15952         (*cond_bic<mode>_any): Likewise.
15953
15954 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15955
15956         * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
15957         (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
15958         to SVE_I.
15959
15960 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15961
15962         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
15963         SVE_FULL_I to SVE_I.
15964         (*aarch64_cond_<su>abd<mode>_2): Likewise.
15965         (*aarch64_cond_<su>abd<mode>_any): Likewise.
15966         (@aarch64_pred_<su>abd<mode>): Likewise.  Use UNSPEC_PRED_X
15967         for the max and min but not for the minus.
15968         (*aarch64_cond_<su>abd<mode>_3): New pattern.
15969
15970 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15971
15972         * config/aarch64/iterators.md (SVE_24I): New iterator.
15973         * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
15974         SVE_FULL_SDI to SVE_24I.  Use containers rather than elements.
15975
15976 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15977
15978         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
15979         (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
15980         to SVE_I.
15981         (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
15982         (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
15983         (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
15984         (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
15985
15986 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15987
15988         * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
15989         (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
15990         (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
15991         to SVE_I.
15992
15993 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15994
15995         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
15996         (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
15997         (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
15998
15999 2021-01-11  Martin Liska  <mliska@suse.cz>
16000
16001         PR jit/98615
16002         * symtab-clones.h (clone_info::release): Release
16003         symtab::m_clones with ggc_delete as it's a GGC memory.
16004
16005 2021-01-11  Matthias Klose  <doko@ubuntu.com>
16006
16007         * Makefile.in (LINK_PROGRESS): Show the link target.
16008
16009 2021-01-11  Richard Biener  <rguenther@suse.de>
16010
16011         PR tree-optimization/91403
16012         * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
16013         single-element interleaving group size at 4096 elements.
16014
16015 2021-01-11  Richard Biener  <rguenther@suse.de>
16016
16017         PR tree-optimization/98526
16018         * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
16019         of the actual reduction op for the regular case.
16020         (vectorizable_reduction): Cost the stmts
16021         vect_transform_reduction produces here.
16022
16023 2021-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>
16024
16025         * tree-ssa-forwprop.c (simplify_vector_constructor): For
16026         big-endian, use UNPACK[_FLOAT]_HI.
16027
16028 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
16029
16030         * tree-vect-slp-patterns.c (class complex_pattern,
16031         class complex_add_pattern): Add parameters to matches.
16032         (complex_add_pattern::build): Free memory.
16033         (complex_add_pattern::matches): Move validation end of match.
16034         (complex_add_pattern::recognize): Likewise.
16035
16036 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
16037
16038         * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
16039
16040 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
16041
16042         * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
16043
16044 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
16045
16046         PR tree-optimization/95867
16047         * tree-ssa-math-opts.h: New header.
16048         * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
16049         (powi_as_mults): No longer static.  Use build_one_cst instead of
16050         build_real.  Formatting fix.
16051         * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
16052         (attempt_builtin_powi): Handle multiplication reassociation without
16053         powi_fndecl using powi_as_mults.
16054         (reassociate_bb): For integral types don't require
16055         -funsafe-math-optimizations to call attempt_builtin_powi.
16056
16057 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
16058
16059         PR tree-optimization/95852
16060         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
16061         mul_stmts parameter type to vec<gimple *> &.  Before cond_stmt
16062         allow in the bb any of the stmts in that vector, div_stmt and
16063         up to 3 cast stmts.
16064         (arith_cast_equal_p): New function.
16065         (arith_overflow_check_p): Add cast_stmt argument, handle signed
16066         multiply overflow checks.
16067         (match_arith_overflow): Adjust caller.  Handle signed multiply
16068         overflow checks.
16069
16070 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
16071
16072         PR tree-optimization/95852
16073         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
16074         (uaddsub_overflow_check_p): Renamed to ...
16075         (arith_overflow_check_p): ... this.  Handle also multiplication
16076         with overflow check.
16077         (match_uaddsub_overflow): Renamed to ...
16078         (match_arith_overflow): ... this.  Add cfg_changed argument.  Handle
16079         also multiplication with overflow check.  Adjust function comment.
16080         (math_opts_dom_walker::after_dom_children): Adjust callers.  Call
16081         match_arith_overflow also for MULT_EXPR.
16082
16083 2021-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16084
16085         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
16086         __builtin_convertvector.
16087         (vmovl_s16): Likewise.
16088         (vmovl_s32): Likewise.
16089         (vmovl_u8): Likewise.
16090         (vmovl_u16): Likewise.
16091         (vmovl_u32): Likewise.
16092         (vmovn_s16): Likewise.
16093         (vmovn_s32): Likewise.
16094         (vmovn_s64): Likewise.
16095         (vmovn_u16): Likewise.
16096         (vmovn_u32): Likewise.
16097         (vmovn_u64): Likewise.
16098
16099 2021-01-11  Martin Liska  <mliska@suse.cz>
16100
16101         * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
16102         (if_chain::is_beneficial): Delete clusters
16103         (find_conditions): Make second argument of conditions_in_bbs a
16104         pointer so that we control over it's lifetime.
16105         (pass_if_to_switch::execute): Delete them.
16106
16107 2021-01-11  Kewen Lin  <linkw@linux.ibm.com>
16108
16109         * ira.c (move_unallocated_pseudos): Check other_reg and skip if
16110         it isn't set.
16111
16112 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
16113
16114         * config/vax/vax.md (cc): Remove mode attribute.
16115         (subst_<cc>, subst_f<cc>): Rename to...
16116         (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
16117         (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
16118         (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
16119         (*branch_<mode>, *branch_<mode>_reversed): Likewise.
16120
16121 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
16122
16123         * config/vax/vax.md (subst_f<cc>): Add mode to operands and
16124         `const_double_zero'.
16125
16126 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
16127
16128         * config/pdp11/pdp11.md (PDPfp): New mode iterator.
16129         (fcc_cc, fcc_ccnz): Use it.  Add mode to `const_double_zero' and
16130         operands.
16131
16132 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
16133
16134         * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
16135         rtx.
16136         * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
16137         with `const_double_zero'.
16138         * doc/rtl.texi (Constant Expression Types): Document it.
16139
16140 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
16141
16142         PR c++/98556
16143         * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
16144         POINTER_DIFF_EXPR to be any integral type.
16145
16146 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
16147
16148         PR rtl-optimization/98603
16149         * function.c (instantiate_virtual_regs_in_insn): For asm goto
16150         with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
16151         if any, set ASM_OPERANDS mode to VOIDmode and change
16152         ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
16153
16154 2021-01-09  Alexandre Oliva  <oliva@gnu.org>
16155
16156         PR debug/97714
16157         * final.c (notice_source_line): Narrow down the condition to
16158         skip a line-0 marker.
16159
16160 2021-01-08  Sergei Trofimovich  <siarheit@google.com>
16161
16162         * ipa-modref.c (merge_call_side_effects): Fix
16163         linebreak split by reordering two print calls.
16164
16165 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
16166
16167         * config/s390/vector.md (*tf_to_fprx2_0): Rename from
16168         "*mov_tf_to_fprx2_0" for consistency, fix constraint.
16169         (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
16170         consistency, fix constraint.
16171
16172 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
16173
16174         * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
16175         callables instead of mask values.
16176         (struct target_flag_set_p): New predicate.
16177         (s390_cpu_cpp_builtins_internal): Define or undefine
16178         __LONG_DOUBLE_VX__ macro.
16179
16180 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
16181
16182         PR target/98482
16183         * config/i386/i386.c (x86_function_profiler): Use R10 and R11
16184         to call mcount in large model with PIC for NO_PROFILE_COUNTERS
16185         targets.
16186
16187 2021-01-08  Richard Biener  <rguenther@suse.de>
16188
16189         * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
16190
16191 2021-01-08  Richard Biener  <rguenther@suse.de>
16192
16193         * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
16194         (vect_build_slp_tree): On cache hit release the matched
16195         scalar stmts vector.
16196         * tree-vect-stmts.c (vectorizable_store): Properly free
16197         vec_oprnds before possibly gathering them again.
16198
16199 2021-01-08  Richard Biener  <rguenther@suse.de>
16200
16201         PR tree-optimization/98544
16202         * tree-vect-slp.c (vect_optimize_slp): Always materialize
16203         permutes at a permute node.
16204
16205 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
16206
16207         PR target/98482
16208         * config/i386/i386.c (x86_function_profiler): Use R10 to call
16209         mcount in large model.  Sorry for large model with PIC.
16210
16211 2021-01-08  Jakub Jelinek  <jakub@redhat.com>
16212
16213         PR target/98585
16214         * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
16215         ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
16216         ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
16217         TargetSave and initialize for variables with enum types.
16218         (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
16219         mstack-protector-guard-symbol=): Add Save.
16220         * config/i386/i386-options.c (ix86_function_specific_save,
16221         ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
16222         x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
16223         x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
16224         x_ix86_veclibabi_type.
16225
16226 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
16227
16228         * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
16229         SVE_FULL_I to SVE_I.
16230         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
16231
16232 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
16233
16234         * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
16235         SVE_FULL_I to SVE_I.
16236         (*cond_uxt<mode>_any): Likewise.
16237
16238 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16239
16240         * config/aarch64/iterators.md (Vwhalf): New iterator.
16241         * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
16242         Rename to...
16243         (aarch64_<sur>adalp<mode>): ... This.  Make more
16244         builtin-friendly.
16245         (<sur>sadv16qi): Adjust callsite of the above.
16246         * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
16247         builtins.
16248         * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
16249         builtins.
16250         (vpadal_s16): Likewise.
16251         (vpadal_u8): Likewise.
16252         (vpadal_u16): Likewise.
16253         (vpadalq_s8): Likewise.
16254         (vpadalq_s16): Likewise.
16255         (vpadalq_s32): Likewise.
16256         (vpadalq_u8): Likewise.
16257         (vpadalq_u16): Likewise.
16258         (vpadalq_u32): Likewise.
16259
16260 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16261
16262         * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
16263         Rename to...
16264         (aarch64_<su>abd<mode>): ... This.
16265         (<sur>sadv16qi): Adjust callsite of the above.
16266         * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
16267         builtins.
16268         * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
16269         builtin.
16270         (vabd_s16): Likewise.
16271         (vabd_s32): Likewise.
16272         (vabd_u8): Likewise.
16273         (vabd_u16): Likewise.
16274         (vabd_u32): Likewise.
16275         (vabdq_s8): Likewise.
16276         (vabdq_s16): Likewise.
16277         (vabdq_s32): Likewise.
16278         (vabdq_u8): Likewise.
16279         (vabdq_u16): Likewise.
16280         (vabdq_u32): Likewise.
16281
16282 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16283
16284         * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
16285         builtins.
16286         * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
16287         (vaba_s16): Likewise.
16288         (vaba_s32): Likewise.
16289         (vaba_u8): Likewise.
16290         (vaba_u16): Likewise.
16291         (vaba_u32): Likewise.
16292         (vabaq_s8): Likewise.
16293         (vabaq_s16): Likewise.
16294         (vabaq_s32): Likewise.
16295         (vabaq_u8): Likewise.
16296         (vabaq_u16): Likewise.
16297         (vabaq_u32): Likewise.
16298
16299 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16300
16301         * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
16302         (aarch64_<su>aba<mode>): ... This.  Handle uaba as well.
16303         Change RTL pattern to match.
16304
16305 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
16306
16307         * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
16308         * config/riscv/riscv-c.c (riscv-subset.h): New.
16309         (INCLUDE_STRING): Define.
16310         (riscv_cpu_cpp_builtins): Add new style architecture extension
16311         test macros.
16312         * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
16313         (riscv_subset_list::end): New.
16314         (riscv_current_subset_list): New.
16315
16316 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
16317
16318         * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
16319         Move to riscv-subset.h.
16320         (struct riscv_subset_t): Ditto.
16321         (class riscv_subset_list): Ditto.
16322         * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
16323         from riscv-common.c.
16324         (struct riscv_subset_t): Ditto.
16325         (class riscv_subset_list): Ditto.
16326         * config/riscv/t-riscv ($(common_out_file)): Add file
16327         dependency.
16328
16329 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
16330
16331         PR target/98567
16332         * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
16333         New define_insn patterns.
16334
16335 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
16336
16337         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
16338         (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
16339         (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
16340
16341 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
16342
16343         PR tree-optimization/98560
16344         * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
16345         * internal-fn.c (vec_cond_mask_direct): Get the data mode from
16346         argument 1.
16347         (vec_cond_direct): Likewise argument 2.
16348         (vec_condu_direct, vec_condeq_direct): Delete.
16349         (expand_vect_cond_optab_fn): Rename to...
16350         (expand_vec_cond_optab_fn): ...this, replacing old macro.
16351         (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
16352         (expand_vect_cond_mask_optab_fn): Rename to...
16353         (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
16354         (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
16355         convert optab.
16356         (direct_vec_cond_optab_supported_p): Likewise.
16357         (direct_vec_condu_optab_supported_p): Delete.
16358         (direct_vec_condeq_optab_supported_p): Delete.
16359         * gimple-isel.cc: Include internal-fn.h.
16360         (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
16361         before using it.
16362
16363 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
16364
16365         PR tree-optimization/98560
16366         * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
16367         IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
16368
16369 2021-01-07  Uroš Bizjak  <ubizjak@gmail.com>
16370
16371         * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
16372         rotate_insn and optab code attributes.
16373         Update all uses to merged code attribute.
16374         * config/i386/sse.md: Update all uses to merged code attribute.
16375         * config/i386/mmx.md: Update all uses to merged code attribute.
16376
16377 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
16378
16379         PR tree-optimization/98568
16380         * gimple-ssa-store-merging.c (bswap_view_convert): New function.
16381         (bswap_replace): Use it.
16382
16383 2021-01-06  Vladimir N. Makarov  <vmakarov@redhat.com>
16384
16385         PR rtl-optimization/97978
16386         * lra-int.h (lra_hard_reg_split_p): New external.
16387         * lra.c (lra_hard_reg_split_p): New global.
16388         (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
16389         * lra-assigns.c (lra_assign): Don't check allocation correctness
16390         after hard reg splitting.
16391
16392 2021-01-06  Martin Sebor  <msebor@redhat.com>
16393
16394         PR c++/98305
16395         * builtins.c (new_delete_mismatch_p): New overload.
16396         (new_delete_mismatch_p (tree, tree)): Call it.
16397
16398 2021-01-06  Alexandre Oliva  <oliva@adacore.com>
16399
16400         * Makefile.in (T_GLIMITS_H): New.
16401         (stmp-int-hdrs): Depend on it, use it.
16402         * config/t-vxworks (T_GLIMITS_H): Override it.
16403         (vxw-glimits.h): New.
16404
16405 2021-01-06  Richard Biener  <rguenther@suse.de>
16406
16407         PR tree-optimization/98513
16408         * value-range.cc (intersect_ranges): Compare the upper bounds
16409         for the expected relation.
16410
16411 2021-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
16412
16413         Revert:
16414         2020-12-28  Gerald Pfeifer  <gerald@pfeifer.com>
16415
16416         * doc/standards.texi (HSAIL): Remove section.
16417
16418 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
16419
16420         * configure: Re-generate.
16421
16422 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16423
16424         * doc/invoke.texi (-std=c++20): Adjust for the publication of
16425         ISO 14882:2020 standard.
16426         * doc/standards.texi: Likewise.
16427
16428 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16429
16430         PR tree-optimization/94802
16431         * expr.h (maybe_optimize_sub_cmp_0): Declare.
16432         * expr.c: Include tree-pretty-print.h and flags.h.
16433         (maybe_optimize_sub_cmp_0): New function.
16434         (do_store_flag): Use it.
16435         * cfgexpand.c (expand_gimple_cond): Likewise.
16436
16437 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
16438
16439         * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
16440         * rtlanal.c (simple_regno_set): Tweak description to clarify the
16441         RMW condition.
16442
16443 2021-01-05  Richard Biener  <rguenther@suse.de>
16444
16445         PR tree-optimization/98516
16446         * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
16447         lanes when materializing on a VEC_PERM node.
16448         (vectorizable_slp_permutation): Dump the permute properly.
16449
16450 2021-01-05  Richard Biener  <rguenther@suse.de>
16451
16452         * tree-vect-slp.c (vect_slp_region): Move debug counter
16453         to cover individual subgraphs.
16454
16455 2021-01-05  Richard Biener  <rguenther@suse.de>
16456
16457         PR tree-optimization/98428
16458         * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
16459         vector lane extracts for loop vectorization.
16460
16461 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16462
16463         PR tree-optimization/98514
16464         * tree-ssa-reassoc.c (bb_rank): Change type from long * to
16465         int64_t *.
16466         (operand_rank): Change type from hash_map<tree, long> to
16467         hash_map<tree, int64_t>.
16468         (phi_rank): Change return type from long to int64_t.
16469         (loop_carried_phi): Change block_rank variable type from long to
16470         int64_t.
16471         (propagate_rank): Change return type, rank parameter type and
16472         op_rank variable type from long to int64_t.
16473         (find_operand_rank): Change return type from long to int64_t
16474         and change slot variable type from long * to int64_t *.
16475         (insert_operand_rank): Change rank parameter type from long to
16476         int64_t.
16477         (get_rank): Change return type and rank variable type from long to
16478         int64_t.  Use PRId64 instead of ld to print the rank.
16479         (init_reassoc): Change rank variable type from long to int64_t
16480         and adjust correspondingly bb_rank and operand_rank initialization.
16481
16482 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16483
16484         PR tree-optimization/96928
16485         * tree-ssa-phiopt.c (xor_replacement): New function.
16486         (tree_ssa_phiopt_worker): Call it.
16487
16488 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16489
16490         PR tree-optimization/96930
16491         * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
16492         from narrower value which has the same type as 1 << B, perform
16493         the right shift on the narrower value followed by extension.
16494
16495 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16496
16497         PR tree-optimization/96239
16498         * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
16499         function.
16500         (get_status_for_store_merging): Don't return BB_INVALID for blocks
16501         with potential bswap optimizable CONSTRUCTORs.
16502         (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
16503         if possible.
16504
16505 2021-01-05  Richard Biener  <rguenther@suse.de>
16506
16507         PR tree-optimization/98381
16508         * tree.c (vector_element_bits): Properly compute bool vector
16509         element size.
16510         * tree-vect-loop.c (vectorizable_live_operation): Properly
16511         compute the last lane bit offset.
16512
16513 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
16514
16515         PR target/98522
16516         * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
16517         Clear the top 64 bytes of the input XMM register.
16518         (sse_cvttps2pi): Ditto.
16519
16520 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
16521
16522         PR target/98521
16523         * config/i386/xopintrin.h (_mm256_cmov_si256): New.
16524
16525 2021-01-05  H.J. Lu  <hjl.tools@gmail.com>
16526
16527         PR target/98495
16528         * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
16529         short first.
16530
16531 2021-01-05  Claudiu Zissulescu  <claziss@synopsys.com>
16532
16533         * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
16534         (umaddsidi4_split): Likewise.
16535
16536 2021-01-05  liuhongt  <hongtao.liu@intel.com>
16537
16538         PR target/98461
16539         * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
16540         define_insn_and_split for zero_extend of subreg HI of pmovskb
16541         result.
16542         (*sse2_pmovskb_zexthisi): Add new combine splitters for
16543         zero_extend of not of subreg HI of pmovskb result.
16544
16545 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
16546
16547         PR target/97269
16548         * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
16549         nested in CONSTs.
16550         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
16551         convert_memory_address to convert symbolic immediates to ptr_mode
16552         before forcing them to memory.
16553
16554 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
16555
16556         PR rtl-optimization/97144
16557         * recog.c (constrain_operands): Initialize matching_operand
16558         for each alternative, rather than only doing it once.
16559
16560 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
16561
16562         PR rtl-optimization/98403
16563         * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
16564         why we don't remove call clobbers.
16565         (function_info::apply_changes_to_insn): Don't attempt to add
16566         call clobbers here.
16567
16568 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
16569
16570         PR tree-optimization/98371
16571         * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
16572         (vect_analyze_loop): If an epilogue loop appears to be cheaper
16573         than the main loop, re-analyze it as a main loop before adopting
16574         it as a main loop.
16575
16576 2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16577
16578         PR c++/98316
16579         * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
16580         * aclocal.m4, configure: Regenerate.
16581         * Makefile.in (NETLIBS): Define.
16582         (BACKEND): Remove $(CODYLIB).
16583
16584 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
16585
16586         PR rtl-optimization/98334
16587         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
16588         Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
16589
16590 2021-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16591
16592         * tree-inline.c (expand_call_inline): Restore input_location.
16593         Return result from recursive call.
16594
16595 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
16596
16597         PR tree-optimization/95401
16598         * config/aarch64/aarch64-sve-builtins.cc
16599         (gimple_folder::load_store_cookie): Use bits rather than bytes
16600         for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
16601         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
16602         * tree-vect-stmts.c (vectorizable_store): Likewise.
16603         (vectorizable_load): Likewise.
16604
16605 2021-01-04  Richard Biener  <rguenther@suse.de>
16606
16607         PR tree-optimization/98308
16608         * tree-vect-stmts.c (vectorizable_load): Set invariant mask
16609         SLP vectype.
16610
16611 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
16612
16613         PR tree-optimization/95771
16614         * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
16615         with precision smaller than int's precision and types with precision
16616         twice as large as long long.  Formatting fixes.
16617
16618 2021-01-04  Richard Biener  <rguenther@suse.de>
16619
16620         PR tree-optimization/98464
16621         * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
16622         (vn_valueize_wrapper): ... this.  Temporarily adjust vn_context_bb.
16623         (process_bb): Adjust.
16624
16625 2021-01-04  Matthew Malcomson  <matthew.malcomson@arm.com>
16626
16627         PR other/98437
16628         * doc/invoke.texi (-fsanitize=address): Fix wording describing
16629         clash with -fsanitize=hwaddress.
16630
16631 2021-01-04  Richard Biener  <rguenther@suse.de>
16632
16633         PR tree-optimization/98282
16634         * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
16635         invariants as VN_NARY.
16636
16637 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
16638
16639         PR target/89057
16640         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
16641         aarch64_simd_reg_or_zero for operand 2.  Use the combinez patterns
16642         to handle zero operands.
16643
16644 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
16645
16646         * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
16647         (offset_6bit_unsigned_scaled_p): Fix typo in comment.
16648         (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
16649         [-32, 31].
16650
16651 2021-01-04  Richard Biener  <rguenther@suse.de>
16652
16653         PR tree-optimization/98393
16654         * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
16655         when hitting the limit.
16656
16657 2021-01-04  Richard Biener  <rguenther@suse.de>
16658
16659         PR tree-optimization/98291
16660         * tree-vect-loop.c (vectorizable_reduction): Bypass
16661         associativity check for SLP reductions with VF 1.
16662
16663 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
16664
16665         PR tree-optimization/96782
16666         * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
16667
16668 2021-01-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16669
16670         * collect-utils.c (collect_execute): Check dumppfx.
16671         * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
16672         to collect_execute.
16673         (do_link): Add new parameter atsuffix.
16674         (main): Handle -dumpdir option.  Skip one argument for
16675         -o, -isystem and -B options.
16676         * gcc.c (make_at_file): New helper function.
16677         (close_at_file): Use it.
16678
16679 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
16680
16681         * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
16682         Amend handling for LD64_VERSION fallback defaults.
16683
16684 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
16685
16686         * config.gcc: Compute default version information
16687         from the configured target.  Likewise defaults for
16688         ld64.
16689         * config/darwin10.h: Removed.
16690         * config/darwin12.h: Removed.
16691         * config/darwin9.h: Removed.
16692         * config/rs6000/darwin8.h: Removed.
16693
16694 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
16695
16696         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
16697
16698 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
16699
16700         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
16701         * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
16702
16703 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
16704
16705         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
16706         here...
16707         * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
16708
16709 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
16710
16711         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
16712         for the Darwin10 unwinder stub from here ...
16713         * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
16714
16715 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
16716
16717         * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
16718         (ASM_DEBUG_SPEC):Only define if the assembler supports
16719         stabs.
16720         (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
16721         (DARWIN_PREFER_DWARF): Define.
16722         * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
16723         (DARWIN_PREFER_DWARF): Likewise
16724         (DSYMUTIL_SPEC): Likewise.
16725         (COLLECT_RUN_DSYMUTIL): Likewise.
16726         (ASM_DEBUG_SPEC): Likewise.
16727         (ASM_DEBUG_OPTION_SPEC): Likewise.
16728
16729 2021-01-02  Jan Hubicka  <jh@suse.cz>
16730
16731         * cfg.c (free_block): ggc_free bb.
16732
16733 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
16734
16735         * gcc.c (process_command): Update copyright notice dates.
16736         * gcov-dump.c (print_version): Ditto.
16737         * gcov.c (print_version): Ditto.
16738         * gcov-tool.c (print_version): Ditto.
16739         * gengtype.c (create_file): Ditto.
16740         * doc/cpp.texi: Bump @copying's copyright year.
16741         * doc/cppinternals.texi: Ditto.
16742         * doc/gcc.texi: Ditto.
16743         * doc/gccint.texi: Ditto.
16744         * doc/gcov.texi: Ditto.
16745         * doc/install.texi: Ditto.
16746         * doc/invoke.texi: Ditto.
16747
16748 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
16749
16750         * ChangeLog-2020: Rotate ChangeLog.  New file.
16751
16752 \f
16753 Copyright (C) 2021 Free Software Foundation, Inc.
16754
16755 Copying and distribution of this file, with or without modification,
16756 are permitted in any medium without royalty provided the copyright
16757 notice and this notice are preserved.