12021-05-14  Release Manager
2
3	* GCC 8.5.0 released.
4
52021-05-07  Jakub Jelinek  <jakub@redhat.com>
6
7	PR target/87839
8	* config/aarch64/atomics.md (aarch64_compare_and_swap<mode>): Use
9	rIJ constraint for aarch64_plus_operand rather than rn.
10
112021-05-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12
13	PR target/99037
14	PR target/100441
15	* config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
16	aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
17	matching const_int 0.
18	(move_lo_quad_internal_be_<mode>): Likewise.
19	(move_lo_quad_<mode>): Update for the above.
20	* config/aarch64/iterators.md (VQ_2E): Delete.
21
222021-05-06  Roman Zhuykov  <zhroma@ispras.ru>
23
24	Backported from master:
25	2021-04-30  Roman Zhuykov  <zhroma@ispras.ru>
26
27	PR rtl-optimization/100225
28	PR rtl-optimization/84878
29	* modulo-sched.c (sms_schedule): Use note_stores to skip loops
30	where we have an instruction which touches (writes) any hard
31	register from df->regular_block_artificial_uses set.
32	Allow not-single-set instruction only right before basic block
33	tail.
34
352021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
36
37	Backported from master:
38	2021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
39
40	PR rtl-optimization/100263
41	* postreload.c (move2add_valid_value_p): Ensure register can
42	change mode.
43
442021-05-05  Richard Biener  <rguenther@suse.de>
45
46	Backported from master:
47	2021-05-05  Richard Biener  <rguenther@suse.de>
48
49	PR tree-optimization/98786
50	* tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
51	adding new uses of abnormals.
52
532021-05-05  Alex Coplan  <alex.coplan@arm.com>
54
55	Backported from master:
56	2021-04-23  Alex Coplan  <alex.coplan@arm.com>
57
58	PR rtl-optimization/100230
59	* early-remat.c (early_remat::sort_candidates): Use delete[]
60	instead of delete for array allocated with new[].
61
622021-05-04  Jakub Jelinek  <jakub@redhat.com>
63
64	Backported from master:
65	2021-05-02  Jakub Jelinek  <jakub@redhat.com>
66
67	PR target/100375
68	* config/nvptx/nvptx.c (nvptx_sese_pseudo): Use NULL instead of 0
69	as first argument of pseudo_node_t constructors.
70
712021-05-04  Jakub Jelinek  <jakub@redhat.com>
72
73	Backported from master:
74	2021-04-29  Jakub Jelinek  <jakub@redhat.com>
75
76	PR target/100302
77	* config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
78	absu_hwi instead of abs_hwi.
79
802021-05-04  Jakub Jelinek  <jakub@redhat.com>
81
82	Backported from master:
83	2021-04-27  Jakub Jelinek  <jakub@redhat.com>
84
85	PR rtl-optimization/100254
86	* cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
87	last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.
88
892021-05-04  Jakub Jelinek  <jakub@redhat.com>
90
91	Backported from master:
92	2021-04-26  Jakub Jelinek  <jakub@redhat.com>
93
94	PR debug/100255
95	* vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
96	vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
97	register keywords.
98
992021-05-04  Jakub Jelinek  <jakub@redhat.com>
100
101	Backported from master:
102	2021-04-21  Jakub Jelinek  <jakub@redhat.com>
103
104	PR rtl-optimization/100148
105	* cprop.c (constprop_register): Use next_nondebug_insn instead of
106	NEXT_INSN.
107
1082021-05-04  Richard Sandiford  <richard.sandiford@arm.com>
109
110	Backported from master:
111	2018-09-20  Richard Sandiford  <richard.sandiford@arm.com>
112
113	PR tree-optimization/86877
114	* tree-vect-loop.c (vect_analyze_loop_2): Call
115	vect_verify_datarefs_alignment.
116
1172021-05-04  Richard Biener  <rguenther@suse.de>
118
119	Backported from master:
120	2018-06-15  Richard Biener  <rguenther@suse.de>
121
122	PR middle-end/86159
123	* tree-cfg.c (gimplify_build3): Do not strip sign conversions,
124	leave useless conversion stripping to force_gimple_operand_gsi.
125	(gimplify_build2): Likewise.
126	(gimplify_build1): Likewise.
127
1282021-05-04  Alexander Monakov  <amonakov@ispras.ru>
129
130	Backported from master:
131	2019-03-01  Alexander Monakov  <amonakov@ispras.ru>
132
133	PR rtl-optimization/85899
134	* haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
135	fallthru edges leading to the exit block.
136
1372021-05-04  Jeff Law  <law@redhat.com>
138
139	Backported from master:
140	2019-04-03  Jeff Law  <law@redhat.com>
141
142	PR rtl-optimization/81025
143	* reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
144
1452021-04-30  James Clarke  <jrtc27@jrtc27.com>
146
147	Backported from master:
148	2021-04-30  James Clarke  <jrtc27@jrtc27.com>
149
150	PR bootstrap/87338
151	* dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
152	instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
153
1542021-04-29  Richard Biener  <rguenther@suse.de>
155
156	Backported from master:
157	2021-04-28  Richard Biener  <rguenther@suse.de>
158
159	PR tree-optimization/99954
160	* tree-loop-distribution.c: Include tree-affine.h.
161	(generate_memcpy_builtin): Try using tree-affine to prove
162	non-overlap.
163	(loop_distribution::classify_builtin_ldst): Always classify
164	as PKIND_MEMMOVE.
165
1662021-04-28  Uros Bizjak  <ubizjak@gmail.com>
167
168	Backported from master:
169	2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
170
171	PR target/100182
172	* config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
173	Copy operand 3 to operand 4.  Use sse_reg_operand
174	as operand 3 predicate.
175	(FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
176	(LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
177	(LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
178	(FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
179	Copy operand 1 to operand 0.
180	(FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
181	(LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
182	(LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.
183
1842021-04-26  Richard Biener  <rguenther@suse.de>
185
186	Backported from master:
187	2021-02-08  Richard Biener  <rguenther@suse.de>
188
189	PR lto/96591
190	* tree.c (walk_tree_1): Walk VECTOR_CST elements.
191
1922021-04-26  Richard Biener  <rguenther@suse.de>
193
194	Backported from master:
195	2021-01-11  Richard Biener  <rguenther@suse.de>
196
197	PR tree-optimization/98117
198	* tree-vect-loop-manip.c (vect_gen_vector_loop_niters):
199	Properly handle degenerate niter when setting the vector
200	loop IV range.
201
2022021-04-26  Richard Sandiford  <richard.sandiford@arm.com>
203
204	Backported from master:
205	2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
206
207	PR rtl-optimization/99929
208	* rtl.h (same_vector_encodings_p): New function.
209	* cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
210	* cselib.c (rtx_equal_for_cselib_1): Likewise.
211	* jump.c (rtx_renumbered_equal_p): Likewise.
212	* lra-constraints.c (operands_match_p): Likewise.
213	* reload.c (operands_match_p): Likewise.
214	* rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
215
2162021-04-26  Richard Sandiford  <richard.sandiford@arm.com>
217
218	Backported from master:
219	2021-03-30  Richard Sandiford  <richard.sandiford@arm.com>
220
221	PR target/98136
222	* config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
223	CONST_INTs to aarch64_expand_mov_immediate when called after RA.
224
2252021-04-26  Richard Sandiford  <richard.sandiford@arm.com>
226
227	Backported from master:
228	2020-04-16  Richard Sandiford  <richard.sandiford@arm.com>
229
230	PR rtl-optimization/94605
231	* early-remat.c (early_remat::process_block): Handle insns that
232	set multiple candidate registers.
233
2342021-04-22  Jakub Jelinek  <jakub@redhat.com>
235
236	Backported from master:
237	2021-04-20  Jakub Jelinek  <jakub@redhat.com>
238
239	PR rtl-optimization/99905
240	* combine.c (expand_compound_operation): If pos + len > modewidth,
241	perform the right shift by pos in inner_mode and then convert to mode,
242	instead of trying to simplify a shift of rtx with inner_mode by pos
243	as if it was a shift in mode.
244
2452021-04-22  Jakub Jelinek  <jakub@redhat.com>
246
247	Backported from master:
248	2021-04-20  Jakub Jelinek  <jakub@redhat.com>
249
250	PR debug/99830
251	* combine.c (simplify_and_const_int_1): Don't optimize varop
252	away if it has side-effects.
253
2542021-04-22  Jakub Jelinek  <jakub@redhat.com>
255
256	Backported from master:
257	2021-04-20  Jakub Jelinek  <jakub@redhat.com>
258
259	PR lto/99849
260	* expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
261	just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
262
2632021-04-22  Jakub Jelinek  <jakub@redhat.com>
264
265	Backported from master:
266	2021-04-20  Jakub Jelinek  <jakub@redhat.com>
267
268	PR rtl-optimization/98601
269	* rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
270	not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
271	unaligned_mems handle VOIDmode like BLKmode.
272
2732021-04-22  Jakub Jelinek  <jakub@redhat.com>
274
275	Backported from master:
276	2021-04-20  Jakub Jelinek  <jakub@redhat.com>
277
278	PR rtl-optimization/99863
279	* dse.c (replace_read): Drop regs_live argument.  Instead of
280	regs_live, use store_insn->fixed_regs_live if non-NULL,
281	otherwise punt if insns sequence clobbers or sets any hard
282	registers.
283
2842021-04-22  Jakub Jelinek  <jakub@redhat.com>
285
286	Backported from master:
287	2021-03-30  Jakub Jelinek  <jakub@redhat.com>
288
289	PR tree-optimization/99777
290	* fold-const.c (extract_muldiv_1): For conversions, punt on casts from
291	types other than scalar integral types.
292
2932021-04-22  Jakub Jelinek  <jakub@redhat.com>
294
295	Backported from master:
296	2021-03-30  Jakub Jelinek  <jakub@redhat.com>
297
298	PR debug/99334
299	* dwarf2out.h (struct dw_fde_node): Add rule18 member.
300	* dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
301	assignment with drap_reg active, queue reg save for hfp with offset 0
302	and flush queued reg saves.  When handling a push with rule18,
303	defer queueing reg save for hfp and just assert the offset is 0.
304	(scan_trace): Assert that fde->rule18 is false.
305
3062021-04-22  Jakub Jelinek  <jakub@redhat.com>
307
308	Backported from master:
309	2021-03-30  Jakub Jelinek  <jakub@redhat.com>
310
311	PR debug/99388
312	* dwarf2out.c (insert_float): Change return type from void to
313	unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
314	(mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
315	Adjust callers.
316
3172021-04-22  Jakub Jelinek  <jakub@redhat.com>
318
319	Backported from master:
320	2021-03-19  Jakub Jelinek  <jakub@redhat.com>
321
322	PR middle-end/93235
323	* expmed.c (store_bit_field_using_insv): Return false of xop0 is a
324	SUBREG and a SUBREG to op_mode can't be created.
325
3262021-04-22  Jakub Jelinek  <jakub@redhat.com>
327
328	Backported from master:
329	2021-03-19  Jakub Jelinek  <jakub@redhat.com>
330
331	PR tree-optimization/99225
332	* fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
333	to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
334	build_int_cst (..., 1).  Formatting fixes.
335
3362021-04-22  Jakub Jelinek  <jakub@redhat.com>
337
338	Backported from master:
339	2021-03-19  Jakub Jelinek  <jakub@redhat.com>
340
341	PR tree-optimization/99204
342	* fold-const.c (fold_read_from_constant_string): Check that
343	tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
344
3452021-04-22  Jakub Jelinek  <jakub@redhat.com>
346
347	Backported from master:
348	2021-03-19  Jakub Jelinek  <jakub@redhat.com>
349
350	PR ipa/99034
351	* tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
352	pad or non-local label, put FORCED_LABELs from bb b after that label
353	rather than before it.
354
3552021-04-22  Jakub Jelinek  <jakub@redhat.com>
356
357	Backported from master:
358	2021-03-19  Jakub Jelinek  <jakub@redhat.com>
359
360	PR tree-optimization/99079
361	* match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
362	useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
363	require both type and TREE_TYPE (@1) to be integral types and either
364	type having smaller or equal precision, or TREE_TYPE (@1) being
365	unsigned type, or type being signed type.  If TREE_TYPE (@1)
366	doesn't have wrapping overflow, perform the subtraction of one in
367	unsigned type.
368
3692021-04-22  Jakub Jelinek  <jakub@redhat.com>
370
371	Backported from master:
372	2021-03-19  Jakub Jelinek  <jakub@redhat.com>
373
374	PR c++/99035
375	* varasm.c (declare_weak): For -fsyntax-only, allow even
376	TREE_ASM_WRITTEN function decls.
377
3782021-04-22  Jakub Jelinek  <jakub@redhat.com>
379
380	Backported from master:
381	2021-03-19  Jakub Jelinek  <jakub@redhat.com>
382
383	PR middle-end/99007
384	* gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
385	temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
386	calls.
387
3882021-04-22  Jakub Jelinek  <jakub@redhat.com>
389
390	Backported from master:
391	2021-03-19  Jakub Jelinek  <jakub@redhat.com>
392
393	PR middle-end/97487
394	* ifcvt.c (noce_can_force_operand): New function.
395	(noce_emit_move_insn): Use it.
396	(noce_try_sign_mask): Likewise.  Formatting fix.
397
3982021-04-22  Jakub Jelinek  <jakub@redhat.com>
399
400	Backported from master:
401	2021-01-29  Jakub Jelinek  <jakub@redhat.com>
402
403	PR debug/98331
404	* cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
405	a BARRIER.
406
4072021-04-22  Jakub Jelinek  <jakub@redhat.com>
408
409	Backported from master:
410	2021-01-29  Jakub Jelinek  <jakub@redhat.com>
411
412	PR target/98681
413	* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
414	Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
415	and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.
416
4172021-04-22  Jakub Jelinek  <jakub@redhat.com>
418
419	Backported from master:
420	2021-01-29  Jakub Jelinek  <jakub@redhat.com>
421
422	PR testsuite/97301
423	* config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
424
4252021-04-22  Jakub Jelinek  <jakub@redhat.com>
426
427	Backported from master:
428	2021-01-29  Jakub Jelinek  <jakub@redhat.com>
429
430	PR tree-optimization/90248
431	* match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
432	X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
433	simplifications.
434	(X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
435	X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
436
4372021-04-22  Jakub Jelinek  <jakub@redhat.com>
438
439	Backported from master:
440	2021-01-09  Jakub Jelinek  <jakub@redhat.com>
441
442	PR c++/98556
443	* tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
444	POINTER_DIFF_EXPR to be any integral type.
445
4462021-04-22  Jakub Jelinek  <jakub@redhat.com>
447
448	Backported from master:
449	2021-01-06  Jakub Jelinek  <jakub@redhat.com>
450
451	PR tree-optimization/98474
452	* wide-int.cc (wi::to_mpz): If wide_int has MSB set, but type
453	is unsigned and excess negative, append set bits after len until
454	precision.
455
4562021-04-22  Jakub Jelinek  <jakub@redhat.com>
457
458	Backported from master:
459	2021-01-06  Jakub Jelinek  <jakub@redhat.com>
460
461	PR c++/98353
462	* gimplify.c (gimplify_init_ctor_eval_range): Gimplify value before
463	storing it into cref.
464
4652021-04-22  Jakub Jelinek  <jakub@redhat.com>
466
467	Backported from master:
468	2021-01-06  Jakub Jelinek  <jakub@redhat.com>
469
470	* gimplify.c (struct gimplify_omp_ctx): Add has_depend member.
471	(gimplify_scan_omp_clauses): Set it to true if OMP_CLAUSE_DEPEND
472	appears on OMP_TASK.
473	(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Force
474	GOVD_WRITTEN on shared variables if task construct has depend clause.
475
4762021-04-22  Jakub Jelinek  <jakub@redhat.com>
477
478	Backported from master:
479	2021-01-06  Jakub Jelinek  <jakub@redhat.com>
480
481	PR middle-end/98183
482	* omp-low.c (lower_omp_target): Don't add OMP_RETURN for
483	data regions.
484	* omp-expand.c (expand_omp_target): Don't try to remove
485	OMP_RETURN for data regions.
486	(build_omp_regions_1, omp_make_gimple_edges): Don't expect
487	OMP_RETURN for data regions.
488
4892021-04-22  Jakub Jelinek  <jakub@redhat.com>
490
491	Backported from master:
492	2021-01-06  Jakub Jelinek  <jakub@redhat.com>
493
494	PR middle-end/98205
495	* omp-expand.c (expand_omp_for_generic): Fix up broken_loop handling.
496
4972021-04-22  Jakub Jelinek  <jakub@redhat.com>
498
499	Backported from master:
500	2021-01-06  Jakub Jelinek  <jakub@redhat.com>
501
502	PR target/98100
503	* cfgexpand.c (expand_gimple_basic_block): For vars with
504	vector type, use TYPE_MODE rather than DECL_MODE.
505
5062021-04-22  Jakub Jelinek  <jakub@redhat.com>
507
508	Backported from master:
509	2021-01-06  Jakub Jelinek  <jakub@redhat.com>
510
511	* dwarf2out.c (add_scalar_info): Only use add_AT_wide for 128-bit
512	constants and only in dwarf-5 or later, where DW_FORM_data16 is
513	available.  Otherwise use DW_FORM_block*/DW_FORM_exprloc with
514	DW_OP_implicit_value to describe the constant.
515
5162021-04-22  Jakub Jelinek  <jakub@redhat.com>
517
518	Backported from master:
519	2021-01-06  Jakub Jelinek  <jakub@redhat.com>
520
521	PR target/98063
522	* config/i386/i386.c (ix86_expand_call): Handle non-plt
523	CM_LARGE_PIC calls.
524
5252021-04-22  Jakub Jelinek  <jakub@redhat.com>
526
527	Backported from master:
528	2020-11-25  Jakub Jelinek  <jakub@redhat.com>
529
530	PR debug/97599
531	* dwarf2out.c (gen_subprogram_die): Call
532	gen_unspecified_parameters_die even if not early dwarf, but only
533	if subr_die is a newly created DIE.
534
5352021-04-22  Jakub Jelinek  <jakub@redhat.com>
536
537	Backported from master:
538	2020-11-02  Jakub Jelinek  <jakub@redhat.com>
539
540	* wide-int.cc (wi::set_bit_large): Call canonize unless setting
541	msb bit and clearing bits above it.
542
5432021-04-22  Jakub Jelinek  <jakub@redhat.com>
544
545	Backported from master:
546	2020-10-16  Jakub Jelinek  <jakub@redhat.com>
547
548	PR rtl-optimization/97386
549	* combine.c (simplify_shift_const_1): Don't optimize nested ROTATEs if
550	they have different modes.
551
5522021-04-22  Jakub Jelinek  <jakub@redhat.com>
553
554	Backported from master:
555	2020-10-16  Jakub Jelinek  <jakub@redhat.com>
556
557	PR sanitizer/97294
558	* tree-cfg.c (move_block_to_fn): Call notice_special_calls on
559	call stmts being moved into dest_cfun.
560	* omp-low.c (lower_rec_input_clauses): Set cfun->calls_alloca when
561	adding __builtin_alloca_with_align call without gimplification.
562
5632021-04-19  Eric Botcazou  <ebotcazou@adacore.com>
564
565	* config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
566	frames larger than the SEH maximum frame size.
567
5682021-03-23  H.J. Lu  <hjl.tools@gmail.com>
569
570	Backported from master:
571	2021-03-23  H.J. Lu  <hjl.tools@gmail.com>
572
573	PR target/99704
574	* config/i386/cpuid.h (__cpuid): Add __volatile__.
575	(__cpuid_count): Likewise.
576
5772021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
578
579	* config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
580	to compare against CC_REG rather than NE.
581
5822021-03-17  Richard Biener  <rguenther@suse.de>
583
584	Backported from master:
585	2021-03-17  Richard Biener  <rguenther@suse.de>
586
587	PR tree-optimization/93964
588	* graphite-isl-ast-to-gimple.c
589	(gcc_expression_from_isl_ast_expr_id): Add intermediate
590	conversion for pointer to integer converts.
591	* graphite-scop-detection.c (assign_parameter_index_in_region):
592	Relax assert.
593
5942021-03-17  Richard Biener  <rguenther@suse.de>
595
596	Backported from master:
597	2020-12-02  Richard Biener  <rguenther@suse.de>
598
599	PR tree-optimization/97255
600	* tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
601	VIEW_CONVERT_EXPR.
602
6032021-03-17  Richard Biener  <rguenther@suse.de>
604
605	Backported from master:
606	2020-12-02  Richard Biener  <rguenther@suse.de>
607
608	PR tree-optimization/96579
609	* tree-ssa-reassoc.c (linearize_expr_tree): If we expand
610	rhs via special ops make sure to swap operands.
611
6122021-03-17  Richard Biener  <rguenther@suse.de>
613
614	Backported from master:
615	2020-12-02  Richard Biener  <rguenther@suse.de>
616
617	PR tree-optimization/96370
618	* tree-ssa-reassoc.c (rewrite_expr_tree): Add operation
619	code parameter and use it instead of picking it up from
620	the stmt that is being rewritten.
621	(reassociate_bb): Pass down the operation code.
622
6232021-03-17  Richard Biener  <rguenther@suse.de>
624
625	Backported from master:
626	2020-12-02  Richard Biener  <rguenther@suse.de>
627
628	PR middle-end/96369
629	* fold-const.c (fold_range_test): Special-case constant
630	LHS for short-circuiting operations.
631
6322021-03-17  Richard Biener  <rguenther@suse.de>
633
634	Backported from master:
635	2020-12-02  Richard Biener  <rguenther@suse.de>
636
637	PR tree-optimization/97081
638	* tree-vect-patterns.c (vect_recog_rotate_pattern): Use the
639	precision of the shifted operand to determine the mask.
640
6412021-03-17  Richard Biener  <rguenther@suse.de>
642
643	Backported from master:
644	2021-01-12  Richard Biener  <rguenther@suse.de>
645
646	PR tree-optimization/98282
647	* tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
648	invariants as VN_NARY.
649
6502021-03-17  Richard Biener  <rguenther@suse.de>
651
652	Backported from master:
653	2020-04-16  Richard Biener  <rguenther@suse.de>
654
655	PR middle-end/94479
656	* gimplify.c (gimplify_addr_expr): Also consider generated
657	MEM_REFs.
658
6592021-03-07  John David Anglin  <danglin@gcc.gnu.org>
660
661	PR target/85074
662	* config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
663	hook_bool_const_tree_hwi_hwi_const_tree_true.
664	(pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
665
6662021-02-11  Eric Botcazou  <ebotcazou@adacore.com>
667
668	* config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
669	the cold section, emit a nop before the directive if the previous
670	active instruction can throw.
671
6722021-02-08  Matthias Klose  <doko@ubuntu.com>
673
674	Backported from master:
675	2020-10-06  Richard Biener  <rguenther@suse.de>
676
677	PR tree-optimization/97236
678	* tree-vect-stmts.c (get_group_load_store_type): Keep
679	VMAT_ELEMENTWISE for single-element vectors.
680
6812021-02-03  Jakub Jelinek  <jakub@redhat.com>
682
683	Backported from master:
684	2020-11-20  Jakub Jelinek  <jakub@redhat.com>
685
686	PR target/97528
687	* config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY, require
688	first POST_MODIFY operand is a REG and is equal to the first operand
689	of PLUS.
690
6912021-01-21  Wilco Dijkstra  <wdijkstr@arm.com>
692
693	Backported from master:
694	2019-10-16  Wilco Dijkstra  <wdijkstr@arm.com>
695
696	PR target/98618
697	* config/aarch64/aarch64.c (aarch64_classify_symbol):
698	Apply reasonable limit to symbol offsets.
699
7002021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>
701
702	Backported from master:
703	2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>
704
705	* config.gcc [$target == *-*-gnu*]: Enable
706	'default_gnu_indirect_function'.
707
7082020-12-28  Uroš Bizjak  <ubizjak@gmail.com>
709
710	PR target/96793
711	* config/i386/i386.c (ix86_expand_rint):
712	Remove the sign of the intermediate value for flag_rounding_math.
713
7142020-12-27  Uroš Bizjak  <ubizjak@gmail.com>
715
716	PR target/96793
717	* config/i386/i386.c (ix86_expand_truncdf_32):
718	Remove the sign of the intermediate value for flag_rounding_math.
719
7202020-12-24  Roman Zhuykov  <zhroma@ispras.ru>
721
722	Backported from master:
723	2020-12-05  Roman Zhuykov  <zhroma@ispras.ru>
724
725	PR rtl-optimization/97421
726	* modulo-sched.c (generate_prolog_epilog): Remove forward
727	declaration, adjust last argument name and type.
728	(const_iteration_count): Add bool pointer parameter to return
729	whether count register is read in pre-header after its
730	initialization.
731	(sms_schedule): Fix count register initialization adjustment
732	procedure according to what const_iteration_count said.
733
7342020-12-23  Uroš Bizjak  <ubizjak@gmail.com>
735
736	PR target/96793
737	* config/i386/i386.c (ix86_expand_floorceil):
738	Remove the sign of the intermediate value for flag_rounding_math.
739	(ix86_expand_floorceildf_32): Ditto.
740
7412020-12-14  Wilco Dijkstra  <wdijkstr@arm.com>
742
743	* config.gcc (aarch64*-*-*): Add --with-tune. Support --with-cpu=native.
744	* config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Add --with-tune.
745
7462020-12-14  Sebastian Pop  <spop@amazon.com>
747
748	* config.gcc (aarch64*-*-*): Remove --with-{cpu,arch,tune}-32 flags.
749
7502020-12-01  Richard Biener  <rguenther@suse.de>
751
752	Backported from master:
753	2020-05-07  Richard Biener  <rguenther@suse.de>
754
755	PR ipa/94947
756	* tree-ssa-structalias.c (refered_from_nonlocal_fn): Use
757	DECL_EXTERNAL || TREE_PUBLIC instead of externally_visible.
758	(refered_from_nonlocal_var): Likewise.
759	(ipa_pta_execute): Likewise.
760
7612020-12-01  Richard Biener  <rguenther@suse.de>
762
763	Backported from master:
764	2020-05-05  Richard Biener  <rguenther@suse.de>
765
766	PR ipa/94947
767	* tree-ssa-structalias.c (ipa_pta_execute): Use
768	varpool_node::externally_visible_p ().
769	(refered_from_nonlocal_var): Likewise.
770
7712020-12-01  Richard Biener  <rguenther@suse.de>
772
773	Backported from master:
774	2020-05-06  Richard Biener  <rguenther@suse.de>
775
776	PR middle-end/94964
777	* cfgloopmanip.c (create_preheader): Require non-complex
778	preheader edge for CP_SIMPLE_PREHEADERS.
779
7802020-12-01  Richard Biener  <rguenther@suse.de>
781
782	Backported from master:
783	2020-05-15  Richard Biener  <rguenther@suse.de>
784
785	PR tree-optimization/95133
786	* gimple-ssa-split-paths.c
787	(find_block_to_duplicate_for_splitting_paths): Check for
788	normal edges.
789
7902020-12-01  Richard Biener  <rguenther@suse.de>
791
792	Backported from master:
793	2020-10-26  Richard Biener  <rguenther@suse.de>
794
795	PR middle-end/97554
796	* sbitmap.c (sbitmap_vector_alloc): Use size_t for byte
797	quantities to avoid overflow.
798
7992020-11-30  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
800
801	PR target/91816
802	* config/arm/arm-protos.h: New function arm_gen_far_branch prototype.
803	* config/arm/arm.c (arm_gen_far_branch): New function
804	arm_gen_far_branch.
805	* config/arm/arm.md: Update b<cond> for Thumb2 range checks.
806
8072020-11-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
808
809	Backported from master:
810	2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>
811
812	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
813	__ARM_FEATURE_PAC_DEFAULT support.
814
8152020-11-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
816
817	Backported from master:
818	2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>
819
820	PR target/94891
821	* doc/extend.texi: Update the text for  __builtin_return_address.
822
8232020-11-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
824
825	Backported from master:
826	2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>
827
828	PR target/94891
829	* config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
830	Disable return address signing if __builtin_eh_return is used.
831
8322020-11-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
833
834	Backported from master:
835	2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>
836
837	PR target/94891
838	PR target/94791
839	* config/aarch64/aarch64-protos.h (aarch64_return_addr_rtx): Declare.
840	* config/aarch64/aarch64.c (aarch64_return_addr_rtx): New.
841	(aarch64_return_addr): Use aarch64_return_addr_rtx.
842	* config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
843
8442020-11-24  Jason Merrill  <jason@redhat.com>
845
846	PR c++/97918
847	* dwarf2out.c (dwarf2out_early_finish): flush_limbo_die_list
848	after gen_scheduled_generic_parms_dies.
849
8502020-11-17  Sebastian Pop  <spop@amazon.com>
851
852	Backported from master:
853	2020-11-17  Sebastian Pop  <spop@amazon.com>
854
855	* config.gcc: add configure flags --with-{cpu,arch,tune}-{32,64}
856	as alias flags for --with-{cpu,arch,tune} on AArch64.
857	* doc/install.texi: Document new flags for aarch64.
858
8592020-11-17  Sebastian Pop  <spop@amazon.com>
860
861	Backported from master:
862	2020-11-17  Sebastian Pop  <spop@amazon.com>
863
864	* config.gcc: Add --with-tune to AArch64 configure flags.
865
8662020-11-17  Richard Sandiford  <richard.sandiford@arm.com>
867
868	Backported from master:
869	2020-08-05  Richard Sandiford  <richard.sandiford@arm.com>
870
871	PR target/96191
872	* config/aarch64/aarch64.md (stack_protect_test_<mode>): Set the
873	CC register directly, instead of a GPR.  Replace the original GPR
874	destination with an extra scratch register.  Zero out operand 3
875	after use.
876	(stack_protect_test): Update accordingly.
877
8782020-11-17  Tamar Christina  <tamar.christina@arm.com>
879
880	PR target/97535
881	* config/aarch64/aarch64.c (aarch64_expand_movme): Use
882	unsigned HOST_WIDE_INT.
883
8842020-10-22  Andreas Krebbel  <krebbel@linux.ibm.com>
885
886	Backported from master:
887	2020-10-22  Andreas Krebbel  <krebbel@linux.ibm.com>
888
889	PR rtl-optimization/97439
890	* dfp.c (decimal_real_maxval): Set the sign flag in the
891	generated number.
892
8932020-10-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
894
895	* config/aarch64/aarch64.c (neoversen2_tunings): Define.
896	* config/aarch64/aarch64-cores.def (neoverse-n2): Use it.
897
8982020-10-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
899
900	Backported from master:
901	2020-10-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
902
903	PR target/97349
904	* config/aarch64/arm_neon.h (vdupq_n_p8, vdupq_n_p16,
905	vdupq_n_p64, vdupq_n_s8, vdupq_n_s16, vdupq_n_u8, vdupq_n_u16):
906	Fix argument type.
907
9082020-10-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
909
910	Backported from master:
911	2020-10-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
912
913	PR target/97150
914	* config/aarch64/arm_neon.h (vqrshlb_u8): Make second argument
915	signed.
916	(vqrshlh_u16): Likewise.
917	(vqrshls_u32): Likewise.
918	(vqrshld_u64): Likewise.
919	(vqshlb_u8): Likewise.
920	(vqshlh_u16): Likewise.
921	(vqshls_u32): Likewise.
922	(vqshld_u64): Likewise.
923	(vshld_u64): Likewise.
924
9252020-10-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
926
927	Backported from master:
928	2020-10-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
929
930	PR target/96313
931	* config/aarch64/aarch64-simd-builtins.def (sqmovun): Use UNOPUS
932	qualifiers.
933	* config/aarch64/arm_neon.h (vqmovun_s16): Adjust builtin call.
934	Remove unnecessary result cast.
935	(vqmovun_s32): Likewise.
936	(vqmovun_s64): Likewise.
937	(vqmovunh_s16): Likewise.  Fix return type.
938	(vqmovuns_s32): Likewise.
939	(vqmovund_s64): Likewise.
940
9412020-10-08  Alan Modra  <amodra@gmail.com>
942
943	Backported from master:
944	2020-10-01  Alan Modra  <amodra@gmail.com>
945
946	* config/rs6000/rs6000.c (rs6000_legitimize_address): Use
947	gen_int_mode for high part of address constant.
948
9492020-10-06  Alex Coplan  <alex.coplan@arm.com>
950
951	* config/arm/driver-arm.c (arm_cpu_table): Add neoverse-v1.
952
9532020-10-02  Alex Coplan  <alex.coplan@arm.com>
954
955	* config/arm/arm-cpus.in (neoverse-n2): New.
956	* config/arm/arm-tables.opt: Regenerate.
957	* config/arm/arm-tune.md: Regenerate.
958	* config/arm/driver-arm.c (arm_cpu_table): Add Neoverse N2.
959	* doc/invoke.texi: Document support for Neoverse N2.
960
9612020-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
962
963	* config/aarch64/aarch64.c (neoversev1_tunings): Define.
964	* config/aarch64/aarch64-cores.def (zeus): Use it.
965	(neoverse-v1): Likewise.
966
9672020-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
968
969	* config/aarch64/aarch64-tuning-flags.def
970	(PREFER_ADVSIMD_AUTOVEC): Define.
971	* config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Use
972	it.
973	(aarch64_autovectorize_vector_sizes): Likewise.
974
9752020-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
976
977	* config/aarch64/aarch64-cores.def (zeus): Add AARCH64_FL_RNG to
978	features.
979	(neoverse-v1): Likewise.
980
9812020-10-01  Jakub Jelinek  <jakub@redhat.com>
982
983	Backported from master:
984	2020-10-01  Jakub Jelinek  <jakub@redhat.com>
985
986	* config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
987	TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
988	fenv_var and old_fpc.  Formatting fixes.
989
9902020-10-01  Alex Coplan  <alex.coplan@arm.com>
991
992	* config/aarch64/aarch64-cores.def: Add Neoverse N2.
993	* config/aarch64/aarch64-tune.md: Regenerate.
994	* doc/invoke.texi: Document AArch64 support for Neoverse N2.
995
9962020-09-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
997
998	Backported from master:
999	2020-09-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1000
1001	* config/aarch64/aarch64-option-extensions.def (rng): Add
1002	cpuinfo string.
1003
10042020-09-30  H.J. Lu  <hjl.tools@gmail.com>
1005
1006	Backported from master:
1007	2020-09-30  H.J. Lu  <hjl.tools@gmail.com>
1008
1009	PR target/97184
1010	* config/i386/i386.md (UNSPECV_MOVDIRI): Renamed to ...
1011	(UNSPEC_MOVDIRI): This.
1012	(UNSPECV_MOVDIR64B): Renamed to ...
1013	(UNSPEC_MOVDIR64B): This.
1014	(movdiri<mode>): Use SET operation.
1015	(@movdir64b_<mode>): Likewise.
1016
10172020-09-29  Hongyu Wang  <hongyu.wang@intel.com>
1018
1019	Backported from master:
1020	2020-09-29  Hongyu Wang  <hongyu.wang@intel.com>
1021
1022	PR target/97231
1023	* config/i386/pconfigintrin.h: Add FSF copyright notes.
1024	* config/i386/wbnoinvdintrin.h: Ditto.
1025
10262020-09-29  Alex Coplan  <alex.coplan@arm.com>
1027
1028	* config/arm/arm-cpus.in (neoverse-v1): New.
1029	* config/arm/arm-tables.opt: Regenerate.
1030	* config/arm/arm-tune.md: Regenerate.
1031	* doc/invoke.texi: Document AArch32 support for Neoverse V1.
1032
10332020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1034
1035	Backported from master:
1036	2020-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1037
1038	PR target/71233
1039	* config/aarch64/arm_neon.h (vreinterpretq_f64_p128,
1040	vreinterpretq_p128_f64): Define.
1041
10422020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1043
1044	Backported from master:
1045	2020-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1046
1047	PR target/71233
1048	* config/aarch64/aarch64-simd-builtins.def (frintn): Use BUILTIN_VHSDF_HSDF
1049	for modes.  Remove explicit hf instantiation.
1050	* config/aarch64/arm_neon.h (vrndns_f32): Define.
1051
10522020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1053
1054	Backported from master:
1055	2020-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1056
1057	PR target/71233
1058	* config/aarch64/arm_neon.h (vtrn1q_p64, vtrn2q_p64, vuzp1q_p64,
1059	vuzp2q_p64, vzip1q_p64, vzip2q_p64): Define.
1060
10612020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1062
1063	Backported from master:
1064	2020-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1065
1066	PR target/71233
1067	* config/aarch64/arm_neon.h (vldrq_p128): Define.
1068
10692020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1070
1071	Backported from master:
1072	2020-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1073
1074	PR target/71233
1075	* config/aarch64/arm_neon.h (vstrq_p128): Define.
1076
10772020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1078
1079	Backported from master:
1080	2020-09-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1081
1082	PR target/71233
1083	* config/aarch64/arm_neon.h (vcls_u8, vcls_u16, vcls_u32,
1084	vclsq_u8, vclsq_u16, vclsq_u32): Define.
1085
10862020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1087
1088	Backported from master:
1089	2020-09-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1090
1091	PR target/71233
1092	* config/aarch64/arm_neon.h (vceqq_p64, vceqz_p64, vceqzq_p64): Define.
1093
10942020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1095
1096	Backported from master:
1097	2020-09-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1098
1099	PR target/71233
1100	* config/aarch64/arm_neon.h (vadd_p8, vadd_p16, vadd_p64, vaddq_p8,
1101	vaddq_p16, vaddq_p64, vaddq_p128): Define.
1102
11032020-09-27  Jakub Jelinek  <jakub@redhat.com>
1104
1105	Backported from master:
1106	2020-09-27  Jakub Jelinek  <jakub@redhat.com>
1107
1108	PR middle-end/97073
1109	* optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1110	expand_copysign_bit): Check reg_overlap_mentioned_p between target
1111	and operand(s) and if it returns true, force a pseudo as target.
1112
11132020-09-25  Tamar Christina  <tamar.christina@arm.com>
1114
1115	PR target/71233
1116	* config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
1117	Add qualifier_lane_pair_index.
1118	(emit-rtl.h): Include.
1119	(TYPES_QUADOP_LANE_PAIR): New.
1120	(aarch64_simd_expand_args): Use it.
1121	(aarch64_simd_expand_builtin): Likewise.
1122	(AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
1123	(FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
1124	AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
1125	aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
1126	(aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
1127	(aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
1128	AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
1129	AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
1130	AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
1131	AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
1132	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
1133	* config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
1134	fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
1135	fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
1136	fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
1137	* config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
1138	aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
1139	aarch64_fcmla<rot><mode>): New.
1140	* config/aarch64/arm_neon.h:
1141	(vcadd_rot90_f16): New.
1142	(vcaddq_rot90_f16): New.
1143	(vcadd_rot270_f16): New.
1144	(vcaddq_rot270_f16): New.
1145	(vcmla_f16): New.
1146	(vcmlaq_f16): New.
1147	(vcmla_lane_f16): New.
1148	(vcmla_laneq_f16): New.
1149	(vcmlaq_lane_f16): New.
1150	(vcmlaq_rot90_lane_f16): New.
1151	(vcmla_rot90_laneq_f16): New.
1152	(vcmla_rot90_lane_f16): New.
1153	(vcmlaq_rot90_f16): New.
1154	(vcmla_rot90_f16): New.
1155	(vcmlaq_laneq_f16): New.
1156	(vcmla_rot180_laneq_f16): New.
1157	(vcmla_rot180_lane_f16): New.
1158	(vcmlaq_rot180_f16): New.
1159	(vcmla_rot180_f16): New.
1160	(vcmlaq_rot90_laneq_f16): New.
1161	(vcmlaq_rot270_laneq_f16): New.
1162	(vcmlaq_rot270_lane_f16): New.
1163	(vcmla_rot270_laneq_f16): New.
1164	(vcmlaq_rot270_f16): New.
1165	(vcmla_rot270_f16): New.
1166	(vcmlaq_rot180_laneq_f16): New.
1167	(vcmlaq_rot180_lane_f16): New.
1168	(vcmla_rot270_lane_f16): New.
1169	(vcadd_rot90_f32): New.
1170	(vcaddq_rot90_f32): New.
1171	(vcaddq_rot90_f64): New.
1172	(vcadd_rot270_f32): New.
1173	(vcaddq_rot270_f32): New.
1174	(vcaddq_rot270_f64): New.
1175	(vcmla_f32): New.
1176	(vcmlaq_f32): New.
1177	(vcmlaq_f64): New.
1178	(vcmla_lane_f32): New.
1179	(vcmla_laneq_f32): New.
1180	(vcmlaq_lane_f32): New.
1181	(vcmlaq_laneq_f32): New.
1182	(vcmla_rot90_f32): New.
1183	(vcmlaq_rot90_f32): New.
1184	(vcmlaq_rot90_f64): New.
1185	(vcmla_rot90_lane_f32): New.
1186	(vcmla_rot90_laneq_f32): New.
1187	(vcmlaq_rot90_lane_f32): New.
1188	(vcmlaq_rot90_laneq_f32): New.
1189	(vcmla_rot180_f32): New.
1190	(vcmlaq_rot180_f32): New.
1191	(vcmlaq_rot180_f64): New.
1192	(vcmla_rot180_lane_f32): New.
1193	(vcmla_rot180_laneq_f32): New.
1194	(vcmlaq_rot180_lane_f32): New.
1195	(vcmlaq_rot180_laneq_f32): New.
1196	(vcmla_rot270_f32): New.
1197	(vcmlaq_rot270_f32): New.
1198	(vcmlaq_rot270_f64): New.
1199	(vcmla_rot270_lane_f32): New.
1200	(vcmla_rot270_laneq_f32): New.
1201	(vcmlaq_rot270_lane_f32): New.
1202	(vcmlaq_rot270_laneq_f32): New.
1203	* config/aarch64/aarch64.h (TARGET_COMPLEX): New.
1204	* config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
1205	UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
1206	(FCADD, FCMLA): New.
1207	(rot): New.
1208	(FCMLA_maybe_lane): New.
1209	* config/arm/types.md (neon_fcadd, neon_fcmla): New.
1210
12112020-09-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1212
1213	PR target/71233
1214	* config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS):
1215	Define.
1216	(aarch64_rndr): New define_insn.
1217	(aarch64_rndrrs): Likewise.
1218	* config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define.
1219	(TARGET_RNG): Likewise.
1220	(AARCH64_FL_RNG): Likewise.
1221	* config/aarch64/aarch64-option-extensions.def (rng): Define.
1222	* config/aarch64/aarch64-builtins.c (enum aarch64_builtins):
1223	Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS.
1224	(aarch64_init_rng_builtins): Define.
1225	(aarch64_init_builtins): Call aarch64_init_rng_builtins.
1226	(aarch64_expand_rng_builtin): Define.
1227	(aarch64_expand_builtin): Use IGNORE argument, handle
1228	RNG builtins.
1229	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
1230	Define __ARM_FEATURE_RNG when TARGET_RNG.
1231	* config/aarch64/arm_acle.h (__rndr, __rndrrs): Define.
1232
12332020-09-24  H.J. Lu  <hjl.tools@gmail.com>
1234
1235	Backported from master:
1236	2020-09-16  H.J. Lu  <hjl.tools@gmail.com>
1237
1238	PR target/97032
1239	* cfgexpand.c (expand_asm_stmt): Set sp_is_clobbered_by_asm to
1240	true if the stack pointer is clobbered by asm statement.
1241	* emit-rtl.h (rtl_data): Add sp_is_clobbered_by_asm.
1242	* config/i386/i386.c (ix86_get_drap_rtx): Set need_drap to true
1243	if the stack pointer is clobbered by asm statement.
1244
12452020-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1246
1247	Backported from master:
1248	2020-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1249		    Andrea Corallo   <andrea.corallo@arm.com>
1250
1251	PR target/71233
1252	* config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
1253	(aarch64_fjcvtzs): New define_insn.
1254	* config/aarch64/aarch64.h (TARGET_JSCVT): Define.
1255	* config/aarch64/aarch64-builtins.c (aarch64_builtins):
1256	Add AARCH64_JSCVT.
1257	(aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs.
1258	(aarch64_expand_builtin): Handle AARCH64_JSCVT.
1259	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
1260	__ARM_FEATURE_JCVT where appropriate.
1261	* config/aarch64/arm_acle.h (__jcvt): Define.
1262	* doc/sourcebuild.texi (aarch64_fjcvtzs_hw) Document new
1263	target supports option.
1264
12652020-09-24  Tamar Christina  <tamar.christina@arm.com>
1266
1267	Backported from master:
1268	2019-02-25  Tamar Christina  <tamar.christina@arm.com>
1269
1270	PR target/71233
1271	* config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
1272	vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
1273	vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
1274	vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
1275	vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
1276	vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
1277	vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
1278	vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
1279	Rename ...
1280	(vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
1281	vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
1282	vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
1283	vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
1284	vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
1285	vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
1286	vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
1287	vfmlslq_laneq_high_f16): ... To this.
1288
12892020-09-24  Tamar Christina  <tamar.christina@arm.com>
1290
1291	Backported from master:
1292	2018-05-21  Tamar Christina  <tamar.christina@arm.com>
1293
1294	PR target/71233
1295	* config/aarch64/aarch64-simd.md (aarch64_eor3qv8hi): Change to
1296	eor3q<mode>4.
1297	(aarch64_bcaxqv8hi): Change to bcaxq<mode>4.
1298	* config/aarch64/aarch64-simd-builtins.def (veor3q_u8, veor3q_u32,
1299	veor3q_u64, veor3q_s8, veor3q_s16, veor3q_s32, veor3q_s64, vbcaxq_u8,
1300	vbcaxq_u32, vbcaxq_u64, vbcaxq_s8, vbcaxq_s16, vbcaxq_s32,
1301	vbcaxq_s64): New.
1302	* config/aarch64/arm_neon.h: Likewise.
1303	* config/aarch64/iterators.md (VQ_I): New.
1304
13052020-09-24  Alex Coplan  <alex.coplan@arm.com>
1306
1307	* config/aarch64/aarch64-cores.def: Add Neoverse V1.
1308	* config/aarch64/aarch64-tune.md: Regenerate.
1309	* doc/invoke.texi: Document support for Neoverse V1.
1310
13112020-09-22  Vlad Lazar  <vlad.lazar@arm.com>
1312
1313	Backported from master:
1314	2018-08-31  Vlad Lazar  <vlad.lazar@arm.com>
1315
1316	PR target/71233
1317	* config/aarch64/arm_neon.h (vabsd_s64): New.
1318	(vnegd_s64): Likewise.
1319
13202020-09-18  Jakub Jelinek  <jakub@redhat.com>
1321
1322	Backported from master:
1323	2020-09-16  Jakub Jelinek  <jakub@redhat.com>
1324
1325	PR tree-optimization/97053
1326	* gimple-ssa-store-merging.c (check_no_overlap): Add FIRST_ORDER,
1327	START, FIRST_EARLIER and LAST_EARLIER arguments.  Return false if
1328	any stores between FIRST_EARLIER inclusive and LAST_EARLIER exclusive
1329	has order in between FIRST_ORDER and LAST_ORDER and overlaps the to
1330	be merged store.
1331	(imm_store_chain_info::try_coalesce_bswap): Add FIRST_EARLIER argument.
1332	Adjust check_no_overlap caller.
1333	(imm_store_chain_info::coalesce_immediate_stores): Add first_earlier
1334	and last_earlier variables, adjust them during iterations.  Adjust
1335	check_no_overlap callers, call check_no_overlap even when extending
1336	overlapping stores by extra INTEGER_CST stores.
1337
13382020-09-18  Richard Sandiford  <richard.sandiford@arm.com>
1339
1340	Backported from master:
1341	2020-04-29  Richard Sandiford  <richard.sandiford@arm.com>
1342
1343	* config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use
1344	TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
1345	fenv_var and new_fenv_var.
1346
13472020-09-17  Segher Boessenkool  <segher@kernel.crashing.org>
1348
1349	Backported from master:
1350	2020-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
1351
1352	PR target/94710
1353	* config/rs6000/vector.md (vec_shr_<mode> for VEC_L): Correct little
1354	endian byteshift_val calculation.
1355
13562020-09-17  Jakub Jelinek  <jakub@redhat.com>
1357
1358	Backported from master:
1359	2020-08-26  Jakub Jelinek  <jakub@redhat.com>
1360
1361	PR debug/96729
1362	* dwarf2out.c (dwarf2out_next_real_insn): Adjust function comment.
1363	(dwarf2out_var_location): Look for next_note only if next_real is
1364	non-NULL, in that case look for the first non-deleted
1365	NOTE_INSN_VAR_LOCATION between loc_note and next_real, if any.
1366
13672020-09-17  Jakub Jelinek  <jakub@redhat.com>
1368
1369	Backported from master:
1370	2020-08-25  Jakub Jelinek  <jakub@redhat.com>
1371
1372	PR tree-optimization/96722
1373	* gimple.c (infer_nonnull_range): Formatting fix.
1374	(infer_nonnull_range_by_dereference): Return false for clobber stmts.
1375
13762020-09-17  Jakub Jelinek  <jakub@redhat.com>
1377
1378	Backported from master:
1379	2020-08-08  Jakub Jelinek  <jakub@redhat.com>
1380
1381	PR fortran/93553
1382	* tree-nested.c (convert_nonlocal_omp_clauses): For
1383	OMP_CLAUSE_REDUCTION, OMP_CLAUSE_LASTPRIVATE and OMP_CLAUSE_LINEAR
1384	save info->new_local_var_chain around walks of the clause gimple
1385	sequences and declare_vars if needed into the sequence.
1386
13872020-09-17  Jakub Jelinek  <jakub@redhat.com>
1388
1389	Backported from master:
1390	2020-07-15  Jakub Jelinek  <jakub@redhat.com>
1391
1392	PR target/96174
1393	* config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
1394	_mm512_mask_cmpeq_pd_mask, _mm512_cmplt_pd_mask,
1395	_mm512_mask_cmplt_pd_mask, _mm512_cmple_pd_mask,
1396	_mm512_mask_cmple_pd_mask, _mm512_cmpunord_pd_mask,
1397	_mm512_mask_cmpunord_pd_mask, _mm512_cmpneq_pd_mask,
1398	_mm512_mask_cmpneq_pd_mask, _mm512_cmpnlt_pd_mask,
1399	_mm512_mask_cmpnlt_pd_mask, _mm512_cmpnle_pd_mask,
1400	_mm512_mask_cmpnle_pd_mask, _mm512_cmpord_pd_mask,
1401	_mm512_mask_cmpord_pd_mask, _mm512_cmpeq_ps_mask,
1402	_mm512_mask_cmpeq_ps_mask, _mm512_cmplt_ps_mask,
1403	_mm512_mask_cmplt_ps_mask, _mm512_cmple_ps_mask,
1404	_mm512_mask_cmple_ps_mask, _mm512_cmpunord_ps_mask,
1405	_mm512_mask_cmpunord_ps_mask, _mm512_cmpneq_ps_mask,
1406	_mm512_mask_cmpneq_ps_mask, _mm512_cmpnlt_ps_mask,
1407	_mm512_mask_cmpnlt_ps_mask, _mm512_cmpnle_ps_mask,
1408	_mm512_mask_cmpnle_ps_mask, _mm512_cmpord_ps_mask,
1409	_mm512_mask_cmpord_ps_mask): Move outside of __OPTIMIZE__ guarded
1410	section.
1411
14122020-09-17  Jakub Jelinek  <jakub@redhat.com>
1413
1414	Backported from master:
1415	2020-07-02  Jakub Jelinek  <jakub@redhat.com>
1416
1417	PR tree-optimization/95857
1418	* tree-cfg.c (group_case_labels_stmt): When removing an unreachable
1419	base_bb, remember all forced and non-local labels on it and later
1420	treat those as if they have NULL label_to_block.  Formatting fix.
1421	Fix a comment typo.
1422
14232020-09-17  Jakub Jelinek  <jakub@redhat.com>
1424
1425	Backported from master:
1426	2020-05-14  Jakub Jelinek  <jakub@redhat.com>
1427
1428	PR middle-end/95108
1429	* omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member.
1430	(ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in
1431	entry block if info->after_stmt is NULL, otherwise add after that stmt
1432	and update it after adding each stmt.
1433	(ipa_simd_modify_function_body): Initialize info.after_stmt.
1434
14352020-09-17  Jakub Jelinek  <jakub@redhat.com>
1436
1437	Backported from master:
1438	2020-05-13  Jakub Jelinek  <jakub@redhat.com>
1439
1440	PR debug/95080
1441	* cfgrtl.c (purge_dead_edges): Skip over debug and note insns even
1442	if the last insn is a note.
1443
14442020-09-17  Jakub Jelinek  <jakub@redhat.com>
1445
1446	Backported from master:
1447	2020-05-07  Jakub Jelinek  <jakub@redhat.com>
1448
1449	PR target/94950
1450	* config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use
1451	TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags.
1452
14532020-09-17  Jakub Jelinek  <jakub@redhat.com>
1454
1455	Backported from master:
1456	2020-05-07  Jakub Jelinek  <jakub@redhat.com>
1457
1458	PR rtl-optimization/94873
1459	* combine.c (combine_instructions): Don't optimize using REG_EQUAL
1460	note if SET_SRC (set) has side-effects.
1461
14622020-09-17  Jakub Jelinek  <jakub@redhat.com>
1463
1464	Backported from master:
1465	2020-05-02  Jakub Jelinek  <jakub@redhat.com>
1466
1467	* config/tilegx/tilegx.md
1468	(insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Use <I124MODE:n>
1469	rather than just <n>.
1470
14712020-09-17  Jakub Jelinek  <jakub@redhat.com>
1472
1473	Backported from master:
1474	2020-04-29  Jakub Jelinek  <jakub@redhat.com>
1475
1476	PR target/94832
1477	* config/i386/avx512bwintrin.h (_mm512_alignr_epi8,
1478	_mm512_mask_alignr_epi8, _mm512_maskz_alignr_epi8): Wrap macro operands
1479	used in casts into parens.
1480	* config/i386/avx512fintrin.h (_mm512_cvt_roundps_ph, _mm512_cvtps_ph,
1481	_mm512_mask_cvt_roundps_ph, _mm512_mask_cvtps_ph,
1482	_mm512_maskz_cvt_roundps_ph, _mm512_maskz_cvtps_ph,
1483	_mm512_mask_cmp_epi64_mask, _mm512_mask_cmp_epi32_mask,
1484	_mm512_mask_cmp_epu64_mask, _mm512_mask_cmp_epu32_mask,
1485	_mm512_mask_cmp_round_pd_mask, _mm512_mask_cmp_round_ps_mask,
1486	_mm512_mask_cmp_pd_mask, _mm512_mask_cmp_ps_mask): Likewise.
1487	* config/i386/avx512vlbwintrin.h (_mm256_mask_alignr_epi8,
1488	_mm256_maskz_alignr_epi8, _mm_mask_alignr_epi8, _mm_maskz_alignr_epi8,
1489	_mm256_mask_cmp_epu8_mask): Likewise.
1490	* config/i386/avx512vlintrin.h (_mm_mask_cvtps_ph, _mm_maskz_cvtps_ph,
1491	_mm256_mask_cvtps_ph, _mm256_maskz_cvtps_ph): Likewise.
1492	* config/i386/f16cintrin.h (_mm_cvtps_ph, _mm256_cvtps_ph): Likewise.
1493	* config/i386/shaintrin.h (_mm_sha1rnds4_epu32): Likewise.
1494
14952020-09-17  Jakub Jelinek  <jakub@redhat.com>
1496
1497	Backported from master:
1498	2020-04-29  Jakub Jelinek  <jakub@redhat.com>
1499
1500	PR target/94832
1501	* config/i386/avx2intrin.h (_mm_mask_i32gather_pd,
1502	_mm256_mask_i32gather_pd, _mm_mask_i64gather_pd,
1503	_mm256_mask_i64gather_pd, _mm_mask_i32gather_ps,
1504	_mm256_mask_i32gather_ps, _mm_mask_i64gather_ps,
1505	_mm256_mask_i64gather_ps, _mm_i32gather_epi64,
1506	_mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
1507	_mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
1508	_mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
1509	_mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
1510	_mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
1511	_mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
1512	_mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
1513	_mm256_mask_i64gather_epi32): Surround macro parameter uses with
1514	parens.
1515	(_mm_i32gather_pd, _mm256_i32gather_pd, _mm_i64gather_pd,
1516	_mm256_i64gather_pd, _mm_i32gather_ps, _mm256_i32gather_ps,
1517	_mm_i64gather_ps, _mm256_i64gather_ps): Likewise.  Don't use
1518	as mask vector containing -1.0 or -1.0f elts, but instead vector
1519	with all bits set using _mm*_cmpeq_p? with zero operands.
1520	* config/i386/avx512fintrin.h (_mm512_i32gather_ps,
1521	_mm512_mask_i32gather_ps, _mm512_i32gather_pd,
1522	_mm512_mask_i32gather_pd, _mm512_i64gather_ps,
1523	_mm512_mask_i64gather_ps, _mm512_i64gather_pd,
1524	_mm512_mask_i64gather_pd, _mm512_i32gather_epi32,
1525	_mm512_mask_i32gather_epi32, _mm512_i32gather_epi64,
1526	_mm512_mask_i32gather_epi64, _mm512_i64gather_epi32,
1527	_mm512_mask_i64gather_epi32, _mm512_i64gather_epi64,
1528	_mm512_mask_i64gather_epi64, _mm512_i32scatter_ps,
1529	_mm512_mask_i32scatter_ps, _mm512_i32scatter_pd,
1530	_mm512_mask_i32scatter_pd, _mm512_i64scatter_ps,
1531	_mm512_mask_i64scatter_ps, _mm512_i64scatter_pd,
1532	_mm512_mask_i64scatter_pd, _mm512_i32scatter_epi32,
1533	_mm512_mask_i32scatter_epi32, _mm512_i32scatter_epi64,
1534	_mm512_mask_i32scatter_epi64, _mm512_i64scatter_epi32,
1535	_mm512_mask_i64scatter_epi32, _mm512_i64scatter_epi64,
1536	_mm512_mask_i64scatter_epi64): Surround macro parameter uses with
1537	parens.
1538	* config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
1539	_mm512_prefetch_i32gather_ps, _mm512_mask_prefetch_i32gather_pd,
1540	_mm512_mask_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
1541	_mm512_prefetch_i64gather_ps, _mm512_mask_prefetch_i64gather_pd,
1542	_mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
1543	_mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
1544	_mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
1545	_mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
1546	_mm512_mask_prefetch_i64scatter_ps): Likewise.
1547	* config/i386/avx512vlintrin.h (_mm256_mmask_i32gather_ps,
1548	_mm_mmask_i32gather_ps, _mm256_mmask_i32gather_pd,
1549	_mm_mmask_i32gather_pd, _mm256_mmask_i64gather_ps,
1550	_mm_mmask_i64gather_ps, _mm256_mmask_i64gather_pd,
1551	_mm_mmask_i64gather_pd, _mm256_mmask_i32gather_epi32,
1552	_mm_mmask_i32gather_epi32, _mm256_mmask_i32gather_epi64,
1553	_mm_mmask_i32gather_epi64, _mm256_mmask_i64gather_epi32,
1554	_mm_mmask_i64gather_epi32, _mm256_mmask_i64gather_epi64,
1555	_mm_mmask_i64gather_epi64, _mm256_i32scatter_ps,
1556	_mm256_mask_i32scatter_ps, _mm_i32scatter_ps, _mm_mask_i32scatter_ps,
1557	_mm256_i32scatter_pd, _mm256_mask_i32scatter_pd, _mm_i32scatter_pd,
1558	_mm_mask_i32scatter_pd, _mm256_i64scatter_ps,
1559	_mm256_mask_i64scatter_ps, _mm_i64scatter_ps, _mm_mask_i64scatter_ps,
1560	_mm256_i64scatter_pd, _mm256_mask_i64scatter_pd, _mm_i64scatter_pd,
1561	_mm_mask_i64scatter_pd, _mm256_i32scatter_epi32,
1562	_mm256_mask_i32scatter_epi32, _mm_i32scatter_epi32,
1563	_mm_mask_i32scatter_epi32, _mm256_i32scatter_epi64,
1564	_mm256_mask_i32scatter_epi64, _mm_i32scatter_epi64,
1565	_mm_mask_i32scatter_epi64, _mm256_i64scatter_epi32,
1566	_mm256_mask_i64scatter_epi32, _mm_i64scatter_epi32,
1567	_mm_mask_i64scatter_epi32, _mm256_i64scatter_epi64,
1568	_mm256_mask_i64scatter_epi64, _mm_i64scatter_epi64,
1569	_mm_mask_i64scatter_epi64): Likewise.
1570
15712020-09-17  Jakub Jelinek  <jakub@redhat.com>
1572
1573	Backported from master:
1574	2020-04-29  Jakub Jelinek  <jakub@redhat.com>
1575
1576	PR target/94826
1577	* config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Use
1578	TARGET_EXPR instead of MODIFY_EXPR for first assignment to
1579	fenv_var, fenv_clear and old_fenv variables.  For fenv_addr
1580	take address of TARGET_EXPR of fenv_var with void_node initializer.
1581	Formatting fixes.
1582
15832020-09-17  Haijian Zhang  <z.zhanghaijian@huawei.com>
1584
1585	Backported from master:
1586	2020-04-29  Haijian Zhang  <z.zhanghaijian@huawei.com>
1587
1588	PR target/94820
1589	* config/aarch64/aarch64-builtins.c
1590	(aarch64_atomic_assign_expand_fenv): Use TARGET_EXPR instead of
1591	MODIFY_EXPR for first assignment to fenv_cr, fenv_sr and
1592	new_fenv_var.
1593
15942020-09-17  Jakub Jelinek  <jakub@redhat.com>
1595
1596	Backported from master:
1597	2020-04-28  Jakub Jelinek  <jakub@redhat.com>
1598
1599	PR tree-optimization/94809
1600	* tree.c (build_call_expr_internal_loc_array): Call
1601	process_call_operands.
1602
16032020-09-17  Jakub Jelinek  <jakub@redhat.com>
1604
1605	Backported from master:
1606	2020-04-27  Jakub Jelinek  <jakub@redhat.com>
1607
1608	PR target/94780
1609	* config/i386/i386.c (ix86_atomic_assign_expand_fenv): Use
1610	TARGET_EXPR instead of MODIFY_EXPR for first assignment to
1611	sw_var, exceptions_var, mxcsr_orig_var and mxcsr_mod_var.
1612
16132020-09-17  Jakub Jelinek  <jakub@redhat.com>
1614
1615	Backported from master:
1616	2020-04-23  Jakub Jelinek  <jakub@redhat.com>
1617
1618	PR target/94710
1619	* optabs.c (expand_vec_perm_const): For shift_amt const0_rtx
1620	just return v2.
1621
16222020-09-17  Jakub Jelinek  <jakub@redhat.com>
1623
1624	Backported from master:
1625	2020-04-23  Jakub Jelinek  <jakub@redhat.com>
1626
1627	PR c/94705
1628	* attribs.c (decl_attribute): Don't diagnose attribute exclusions
1629	if last_decl is error_mark_node or has such a TREE_TYPE.
1630
16312020-09-17  Jakub Jelinek  <jakub@redhat.com>
1632
1633	Backported from master:
1634	2020-04-21  Jakub Jelinek  <jakub@redhat.com>
1635
1636	PR c/94641
1637	* stor-layout.c (place_field, finalize_record_size): Don't emit
1638	-Wpadded warning on TYPE_ARTIFICIAL rli->t.
1639	* ubsan.c (ubsan_get_type_descriptor_type,
1640	ubsan_get_source_location_type, ubsan_create_data): Set
1641	TYPE_ARTIFICIAL.
1642	* asan.c (asan_global_struct): Likewise.
1643
16442020-09-17  Jakub Jelinek  <jakub@redhat.com>
1645
1646	Backported from master:
1647	2020-04-17  Jakub Jelinek  <jakub@redhat.com>
1648
1649	PR rtl-optimization/94618
1650	* cfgrtl.c (delete_insn_and_edges): Set purge not just when
1651	insn is the BB_END of its block, but also when it is only followed
1652	by DEBUG_INSNs in its block.
1653
16542020-09-17  Jakub Jelinek  <jakub@redhat.com>
1655
1656	Backported from master:
1657	2020-04-08  Jakub Jelinek  <jakub@redhat.com>
1658
1659	PR tree-optimization/94524
1660	* tree-vect-generic.c (expand_vector_divmod): If any elt of op1 is
1661	negative for signed TRUNC_MOD_EXPR, multiply with absolute value of
1662	op1 rather than op1 itself at the end.  Punt for signed modulo by
1663	most negative constant.
1664	* tree-vect-patterns.c (vect_recog_divmod_pattern): Punt for signed
1665	modulo by most negative constant.
1666
16672020-09-17  Jakub Jelinek  <jakub@redhat.com>
1668
1669	Backported from master:
1670	2020-04-08  Jakub Jelinek  <jakub@redhat.com>
1671
1672	PR target/94438
1673	* config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size
1674	1, 2, 4 and 8.
1675
16762020-09-17  Jakub Jelinek  <jakub@redhat.com>
1677
1678	Backported from master:
1679	2020-04-07  Jakub Jelinek  <jakub@redhat.com>
1680
1681	PR target/94509
1682	* config/i386/i386.c (expand_vec_perm_pshufb): Fix the check
1683	for inter-lane permutation for 64-byte modes.
1684
16852020-09-17  Jakub Jelinek  <jakub@redhat.com>
1686
1687	Backported from master:
1688	2020-04-07  Jakub Jelinek  <jakub@redhat.com>
1689
1690	PR target/94488
1691	* config/aarch64/aarch64-simd.md (ashl<mode>3, lshr<mode>3,
1692	ashr<mode>3): Force operands[2] into reg whenever it is not CONST_INT.
1693	Assume it is a REG after that instead of testing it and doing FAIL
1694	otherwise.  Formatting fix.
1695
16962020-09-17  Jakub Jelinek  <jakub@redhat.com>
1697
1698	Backported from master:
1699	2020-04-07  Hannes Domani  <ssbssa@yahoo.de>
1700		    Jakub Jelinek  <jakub@redhat.com>
1701
1702	PR debug/94459
1703	* dwarf2out.c (gen_subprogram_die): Look through references, pointers,
1704	arrays, pointer-to-members, function types and qualifiers when
1705	checking if in-class DIE had an 'auto' or 'decltype(auto)' return type
1706	to emit type again on definition.
1707
17082020-09-17  Jakub Jelinek  <jakub@redhat.com>
1709
1710	Backported from master:
1711	2020-04-07  Jakub Jelinek  <jakub@redhat.com>
1712
1713	PR target/94460
1714	* config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
1715	avx2_ph<plusminus_mnemonic>dv8si3): Fix up RTL pattern to do
1716	second half of first lane from first lane of second operand and
1717	first half of second lane from second lane of first operand.
1718
17192020-09-17  Jakub Jelinek  <jakub@redhat.com>
1720
1721	Backported from master:
1722	2020-04-07  Jakub Jelinek  <jakub@redhat.com>
1723
1724	PR middle-end/94423
1725	* tree-object-size.c (pass_object_sizes::execute): Don't call
1726	replace_uses_by for SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs, instead
1727	call replace_call_with_value.
1728
17292020-09-17  Jakub Jelinek  <jakub@redhat.com>
1730
1731	Backported from master:
1732	2020-04-07  Marc Glisse  <marc.glisse@inria.fr>
1733		    Jakub Jelinek  <jakub@redhat.com>
1734
1735	PR middle-end/94412
1736	* fold-const.c (fold_binary_loc) <case TRUNC_DIV_EXPR>: Use
1737	ANY_INTEGRAL_TYPE_P instead of INTEGRAL_TYPE_P.
1738
17392020-09-17  Jakub Jelinek  <jakub@redhat.com>
1740
1741	Backported from master:
1742	2020-04-07  Jakub Jelinek  <jakub@redhat.com>
1743
1744	PR target/93069
1745	* config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Use
1746	<store_mask_constraint> instead of m in output operand constraint.
1747	(vec_extract_hi_<mode><mask_name>): Use <mask_operand2> instead of
1748	%{%3%}.
1749
17502020-09-17  Jakub Jelinek  <jakub@redhat.com>
1751
1752	Backported from master:
1753	2020-04-07  Jakub Jelinek  <jakub@redhat.com>
1754
1755	PR tree-optimization/94329
1756	* tree-ssa-reassoc.c (reassociate_bb): When calling reassoc_remove_stmt
1757	on the last stmt in a bb, make sure gsi_prev isn't done immediately
1758	after gsi_last_bb.
1759
17602020-09-17  Jakub Jelinek  <jakub@redhat.com>
1761
1762	Backported from master:
1763	2020-04-07  Jakub Jelinek  <jakub@redhat.com>
1764
1765	PR middle-end/94303
1766	* varasm.c (output_constructor_array_range): If local->index
1767	RANGE_EXPR doesn't start at the current location in the constructor,
1768	skip needed number of bytes using assemble_zeros or assert we don't
1769	go backwards.
1770
17712020-09-17  Jakub Jelinek  <jakub@redhat.com>
1772
1773	Backported from master:
1774	2020-04-07  Richard Biener  <rguenther@suse.de>
1775		    Jakub Jelinek  <jakub@redhat.com>
1776
1777	PR debug/94283
1778	* tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards.
1779
17802020-09-17  Jakub Jelinek  <jakub@redhat.com>
1781
1782	Backported from master:
1783	2020-04-07  Jakub Jelinek  <jakub@redhat.com>
1784
1785	PR debug/94283
1786	* tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set
1787	GF_PLF_2, but don't add them to worklist.  Don't add an assigment to
1788	worklist or set GF_PLF_2 just because it is used in a debug stmt in
1789	another bb.  Formatting improvements.
1790
17912020-09-17  Jakub Jelinek  <jakub@redhat.com>
1792
1793	Backported from master:
1794	2020-04-07  Jakub Jelinek  <jakub@redhat.com>
1795
1796	PR tree-optimization/94211
1797	* tree-ssa-phiopt.c (value_replacement): Use estimate_num_insns_seq
1798	instead of estimate_num_insns for bb_seq (middle_bb).  Rename
1799	emtpy_or_with_defined_p variable to empty_or_with_defined_p, adjust
1800	all uses.
1801
18022020-09-17  Jakub Jelinek  <jakub@redhat.com>
1803
1804	Backported from master:
1805	2020-03-17  Jakub Jelinek  <jakub@redhat.com>
1806
1807	PR debug/94167
1808	* tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands
1809	DEBUG_STMTs.
1810
18112020-09-17  Jakub Jelinek  <jakub@redhat.com>
1812
1813	Backported from master:
1814	2020-03-17  Jakub Jelinek  <jakub@redhat.com>
1815
1816	PR middle-end/93566
1817	* tree-nested.c (convert_nonlocal_omp_clauses,
1818	convert_local_omp_clauses): Handle {,in_,task_}reduction clauses
1819	with C/C++ array sections.
1820
18212020-09-17  Jakub Jelinek  <jakub@redhat.com>
1822
1823	Backported from master:
1824	2020-03-17  Jakub Jelinek  <jakub@redhat.com>
1825
1826	PR target/94121
1827	* config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode
1828	instead of GEN_INT.
1829
18302020-09-17  Jakub Jelinek  <jakub@redhat.com>
1831
1832	Backported from master:
1833	2020-03-17  Jakub Jelinek  <jakub@redhat.com>
1834
1835	* doc/tm.texi.in (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change
1836	ASM_OUTPUT_ALIGNED_DECL in description to ASM_OUTPUT_ALIGNED_LOCAL
1837	and ASM_OUTPUT_DECL to ASM_OUTPUT_LOCAL.
1838	* doc/tm.texi: Regenerated.
1839
18402020-09-17  Jakub Jelinek  <jakub@redhat.com>
1841
1842	Backported from master:
1843	2020-03-17  Jakub Jelinek  <jakub@redhat.com>
1844
1845	PR tree-optimization/94130
1846	* tree-ssa-dse.c: Include gimplify.h.
1847	(increment_start_addr): If stmt has lhs, drop the lhs from call and
1848	set it after the call to the original value of the first argument.
1849	Formatting fixes.
1850	(decrement_count): Formatting fix.
1851
18522020-09-17  Jakub Jelinek  <jakub@redhat.com>
1853
1854	Backported from master:
1855	2020-03-17  Jakub Jelinek  <jakub@redhat.com>
1856
1857	PR target/94134
1858	* config/pdp11/pdp11.c (pdp11_asm_output_var): Call switch_to_section
1859	at the start to switch to data section.  Don't print extra newline if
1860	.globl directive has not been emitted.
1861
18622020-09-17  Jakub Jelinek  <jakub@redhat.com>
1863
1864	Backported from master:
1865	2020-03-17  Jakub Jelinek  <jakub@redhat.com>
1866
1867	PR target/94121
1868	* config/aarch64/aarch64.c (aarch64_add_offset_1): Use absu_hwi
1869	instead of abs_hwi, change moffset type to unsigned HOST_WIDE_INT.
1870
18712020-09-17  Jakub Jelinek  <jakub@redhat.com>
1872
1873	Backported from master:
1874	2020-03-17  Jakub Jelinek  <jakub@redhat.com>
1875
1876	PR middle-end/94111
1877	* dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl
1878	is rvc_normal, otherwise use real_to_decimal to print the number to
1879	string.
1880
18812020-09-17  Jakub Jelinek  <jakub@redhat.com>
1882
1883	Backported from master:
1884	2020-03-17  Jakub Jelinek  <jakub@redhat.com>
1885
1886	PR tree-optimization/94114
1887	* tree-loop-distribution.c (generate_memset_builtin): Call
1888	rewrite_to_non_trapping_overflow even on mem.
1889	(generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even
1890	on dest and src.
1891
18922020-09-17  Jakub Jelinek  <jakub@redhat.com>
1893
1894	Backported from master:
1895	2020-03-17  Jakub Jelinek  <jakub@redhat.com>
1896
1897	PR middle-end/93399
1898	* tree-pretty-print.h (pretty_print_string): Declare.
1899	* tree-pretty-print.c (pretty_print_string): Remove forward
1900	declaration, no longer static.  Change nbytes parameter type
1901	from unsigned to size_t.
1902	* print-rtl.c (print_value) <case CONST_STRING>: Use
1903	pretty_print_string and for shrink way too long strings.
1904
19052020-09-17  Jakub Jelinek  <jakub@redhat.com>
1906
1907	Backported from master:
1908	2020-03-17  Jakub Jelinek  <jakub@redhat.com>
1909
1910	PR debug/93888
1911	* tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag.
1912
19132020-09-17  Jakub Jelinek  <jakub@redhat.com>
1914
1915	Backported from master:
1916	2020-03-05  Jakub Jelinek  <jakub@redhat.com>
1917
1918	PR target/94046
1919	* config/i386/avx2intrin.h (_mm_mask_i32gather_ps): Fix first cast of
1920	SRC and MASK arguments to __m128 from __m128d.
1921	(_mm256_mask_i32gather_ps): Fix first cast of MASK argument to __m256
1922	from __m256d.
1923	(_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128
1924	from __m128d.
1925	* config/i386/xopintrin.h (_mm_permute2_pd): Fix first cast of C
1926	argument to __m128i from __m128d.
1927	(_mm256_permute2_pd): Fix first cast of C argument to __m256i from
1928	__m256d.
1929	(_mm_permute2_ps): Fix first cast of C argument to __m128i from __m128.
1930	(_mm256_permute2_ps): Fix first cast of C argument to __m256i from
1931	__m256.
1932
19332020-09-17  Jakub Jelinek  <jakub@redhat.com>
1934
1935	Backported from master:
1936	2020-03-03  Jakub Jelinek  <jakub@redhat.com>
1937
1938	PR rtl-optimization/94002
1939	* explow.c (plus_constant): Punt if cst has VOIDmode and
1940	get_pool_mode is different from mode.
1941
19422020-09-16  Will Schmidt  <will_schmidt@vnet.ibm.com>
1943
1944	PR target/96139
1945	* config/rs6000/rs6000.c (rs6000_init_builtin): Update V2DI_type_node
1946	  and unsigned_V2DI_type_node definitions.
1947
19482020-09-16  Sylvia Taylor  <sylvia.taylor@arm.com>
1949
1950	Backported from master:
1951	2019-08-22  Sylvia Taylor  <sylvia.taylor@arm.com>
1952
1953	* config/aarch64/aarch64-simd-builtins.def:
1954	(ld1x4): New.
1955	(st1x4): Likewise.
1956	* config/aarch64/aarch64-simd.md:
1957	(aarch64_ld1x4<VALLDIF:mode>): New pattern.
1958	(aarch64_st1x4<VALLDIF:mode>): Likewise.
1959	(aarch64_ld1_x4_<mode>): Likewise.
1960	(aarch64_st1_x4_<mode>): Likewise.
1961	* config/aarch64/arm_neon.h:
1962	(vld1_s8_x4): New function.
1963	(vld1q_s8_x4): Likewise.
1964	(vld1_s16_x4): Likewise.
1965	(vld1q_s16_x4): Likewise.
1966	(vld1_s32_x4): Likewise.
1967	(vld1q_s32_x4): Likewise.
1968	(vld1_u8_x4): Likewise.
1969	(vld1q_u8_x4): Likewise.
1970	(vld1_u16_x4): Likewise.
1971	(vld1q_u16_x4): Likewise.
1972	(vld1_u32_x4): Likewise.
1973	(vld1q_u32_x4): Likewise.
1974	(vld1_f16_x4): Likewise.
1975	(vld1q_f16_x4): Likewise.
1976	(vld1_f32_x4): Likewise.
1977	(vld1q_f32_x4): Likewise.
1978	(vld1_p8_x4): Likewise.
1979	(vld1q_p8_x4): Likewise.
1980	(vld1_p16_x4): Likewise.
1981	(vld1q_p16_x4): Likewise.
1982	(vld1_s64_x4): Likewise.
1983	(vld1_u64_x4): Likewise.
1984	(vld1_p64_x4): Likewise.
1985	(vld1q_s64_x4): Likewise.
1986	(vld1q_u64_x4): Likewise.
1987	(vld1q_p64_x4): Likewise.
1988	(vld1_f64_x4): Likewise.
1989	(vld1q_f64_x4): Likewise.
1990	(vst1_s8_x4): Likewise.
1991	(vst1q_s8_x4): Likewise.
1992	(vst1_s16_x4): Likewise.
1993	(vst1q_s16_x4): Likewise.
1994	(vst1_s32_x4): Likewise.
1995	(vst1q_s32_x4): Likewise.
1996	(vst1_u8_x4): Likewise.
1997	(vst1q_u8_x4): Likewise.
1998	(vst1_u16_x4): Likewise.
1999	(vst1q_u16_x4): Likewise.
2000	(vst1_u32_x4): Likewise.
2001	(vst1q_u32_x4): Likewise.
2002	(vst1_f16_x4): Likewise.
2003	(vst1q_f16_x4): Likewise.
2004	(vst1_f32_x4): Likewise.
2005	(vst1q_f32_x4): Likewise.
2006	(vst1_p8_x4): Likewise.
2007	(vst1q_p8_x4): Likewise.
2008	(vst1_p16_x4): Likewise.
2009	(vst1q_p16_x4): Likewise.
2010	(vst1_s64_x4): Likewise.
2011	(vst1_u64_x4): Likewise.
2012	(vst1_p64_x4): Likewise.
2013	(vst1q_s64_x4): Likewise.
2014	(vst1q_u64_x4): Likewise.
2015	(vst1q_p64_x4): Likewise.
2016	(vst1_f64_x4): Likewise.
2017	(vst1q_f64_x4): Likewise.
2018
20192020-09-16  Sameera Deshpande  <sameera.deshpande@linaro.org>
2020
2021	Backported from master:
2022	2018-05-31  Sameera Deshpande  <sameera.deshpande@linaro.org>
2023
2024	* config/aarch64/aarch64-simd-builtins.def (ld1x3): New.
2025	(st1x2): Likewise.
2026	(st1x3): Likewise.
2027	* config/aarch64/aarch64-simd.md
2028	(aarch64_ld1x3<VALLDIF:mode>): New pattern.
2029	(aarch64_ld1_x3_<mode>): Likewise
2030	(aarch64_st1x2<VALLDIF:mode>): Likewise
2031	(aarch64_st1_x2_<mode>): Likewise
2032	(aarch64_st1x3<VALLDIF:mode>): Likewise
2033	(aarch64_st1_x3_<mode>): Likewise
2034	* config/aarch64/arm_neon.h (vld1_u8_x3): New function.
2035	(vld1_s8_x3): Likewise.
2036	(vld1_u16_x3): Likewise.
2037	(vld1_s16_x3): Likewise.
2038	(vld1_u32_x3): Likewise.
2039	(vld1_s32_x3): Likewise.
2040	(vld1_u64_x3): Likewise.
2041	(vld1_s64_x3): Likewise.
2042	(vld1_f16_x3): Likewise.
2043	(vld1_f32_x3): Likewise.
2044	(vld1_f64_x3): Likewise.
2045	(vld1_p8_x3): Likewise.
2046	(vld1_p16_x3): Likewise.
2047	(vld1_p64_x3): Likewise.
2048	(vld1q_u8_x3): Likewise.
2049	(vld1q_s8_x3): Likewise.
2050	(vld1q_u16_x3): Likewise.
2051	(vld1q_s16_x3): Likewise.
2052	(vld1q_u32_x3): Likewise.
2053	(vld1q_s32_x3): Likewise.
2054	(vld1q_u64_x3): Likewise.
2055	(vld1q_s64_x3): Likewise.
2056	(vld1q_f16_x3): Likewise.
2057	(vld1q_f32_x3): Likewise.
2058	(vld1q_f64_x3): Likewise.
2059	(vld1q_p8_x3): Likewise.
2060	(vld1q_p16_x3): Likewise.
2061	(vld1q_p64_x3): Likewise.
2062	(vst1_s64_x2): Likewise.
2063	(vst1_u64_x2): Likewise.
2064	(vst1_f64_x2): Likewise.
2065	(vst1_s8_x2): Likewise.
2066	(vst1_p8_x2): Likewise.
2067	(vst1_s16_x2): Likewise.
2068	(vst1_p16_x2): Likewise.
2069	(vst1_s32_x2): Likewise.
2070	(vst1_u8_x2): Likewise.
2071	(vst1_u16_x2): Likewise.
2072	(vst1_u32_x2): Likewise.
2073	(vst1_f16_x2): Likewise.
2074	(vst1_f32_x2): Likewise.
2075	(vst1_p64_x2): Likewise.
2076	(vst1q_s8_x2): Likewise.
2077	(vst1q_p8_x2): Likewise.
2078	(vst1q_s16_x2): Likewise.
2079	(vst1q_p16_x2): Likewise.
2080	(vst1q_s32_x2): Likewise.
2081	(vst1q_s64_x2): Likewise.
2082	(vst1q_u8_x2): Likewise.
2083	(vst1q_u16_x2): Likewise.
2084	(vst1q_u32_x2): Likewise.
2085	(vst1q_u64_x2): Likewise.
2086	(vst1q_f16_x2): Likewise.
2087	(vst1q_f32_x2): Likewise.
2088	(vst1q_f64_x2): Likewise.
2089	(vst1q_p64_x2): Likewise.
2090	(vst1_s64_x3): Likewise.
2091	(vst1_u64_x3): Likewise.
2092	(vst1_f64_x3): Likewise.
2093	(vst1_s8_x3): Likewise.
2094	(vst1_p8_x3): Likewise.
2095	(vst1_s16_x3): Likewise.
2096	(vst1_p16_x3): Likewise.
2097	(vst1_s32_x3): Likewise.
2098	(vst1_u8_x3): Likewise.
2099	(vst1_u16_x3): Likewise.
2100	(vst1_u32_x3): Likewise.
2101	(vst1_f16_x3): Likewise.
2102	(vst1_f32_x3): Likewise.
2103	(vst1_p64_x3): Likewise.
2104	(vst1q_s8_x3): Likewise.
2105	(vst1q_p8_x3): Likewise.
2106	(vst1q_s16_x3): Likewise.
2107	(vst1q_p16_x3): Likewise.
2108	(vst1q_s32_x3): Likewise.
2109	(vst1q_s64_x3): Likewise.
2110	(vst1q_u8_x3): Likewise.
2111	(vst1q_u16_x3): Likewise.
2112	(vst1q_u32_x3): Likewise.
2113	(vst1q_u64_x3): Likewise.
2114	(vst1q_f16_x3): Likewise.
2115	(vst1q_f32_x3): Likewise.
2116	(vst1q_f64_x3): Likewise.
2117	(vst1q_p64_x3): Likewise.
2118
21192020-08-21  Richard Sandiford  <richard.sandiford@arm.com>
2120
2121	Backported from master:
2122	2020-08-21  Richard Sandiford  <richard.sandiford@arm.com>
2123
2124	* doc/extend.texi: Update links to Arm docs.
2125	* doc/invoke.texi: Likewise.
2126
21272020-08-21  Tamar Christina  <tamar.christina@arm.com>
2128
2129	Backported from master:
2130	2020-08-03  Tamar Christina  <tamar.christina@arm.com>
2131
2132	* config/aarch64/driver-aarch64.c (readline): Check return value fgets.
2133
21342020-08-21  Tamar Christina  <tamar.christina@arm.com>
2135
2136	Backported from master:
2137	2020-07-17  Tamar Christina  <tamar.christina@arm.com>
2138
2139	* doc/sourcebuild.texi (dg-set-compiler-env-var,
2140	dg-set-target-env-var): Document.
2141
21422020-08-21  Tamar Christina  <tamar.christina@arm.com>
2143
2144	Backported from master:
2145	2020-07-17  Tamar Christina  <tamar.christina@arm.com>
2146
2147	* config/arm/driver-arm.c (host_detect_local_cpu): Add GCC_CPUINFO.
2148
21492020-08-21  Tamar Christina  <tamar.christina@arm.com>
2150
2151	Backported from master:
2152	2020-07-17  Tamar Christina  <tamar.christina@arm.com>
2153
2154	* config/aarch64/driver-aarch64.c (host_detect_local_cpu):
2155	Add GCC_CPUINFO.
2156
21572020-08-21  Tamar Christina  <tamar.christina@arm.com>
2158
2159	Backported from master:
2160	2020-07-17  Tamar Christina  <tamar.christina@arm.com>
2161
2162	* config/aarch64/driver-aarch64.c (INCLUDE_SET): New.
2163	(parse_field): Use std::string.
2164	(split_words, readline, find_field): New.
2165	(host_detect_local_cpu): Fix truncation issues.
2166
21672020-08-18  Uroš Bizjak  <ubizjak@gmail.com>
2168
2169	PR target/96536
2170	* config/i386/i386.md (restore_stack_nonlocal):
2171	Add missing compare RTX.
2172
21732020-08-03  Jonathan Wakely  <jwakely@redhat.com>
2174
2175	Backported from master:
2176	2020-08-03  Jonathan Wakely  <jwakely@redhat.com>
2177
2178	* doc/cpp.texi (Variadic Macros): Use the exact ... token in
2179	code examples.
2180
21812020-07-17  Will Schmidt  <will_schmidt@vnet.ibm.com>
2182
2183	PR target/95952
2184	* config/rs6000/rs6000.c (altivec_init_builtins): Add continue clause to
2185	predicate builtin handling.
2186
21872020-07-16  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
2188
2189	Backported from master:
2190	2020-06-16  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
2191
2192	* config.in: Regenerate.
2193	* config/s390/s390.c (print_operand): Emit vector alignment hints
2194	for target z13, if AS accepts them.  For other targets the logic
2195	stays the same.
2196	* config/s390/s390.h (TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS): Define
2197	macro.
2198	* configure: Regenerate.
2199	* configure.ac: Check HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13.
2200
22012020-07-16  Andreas Krebbel  <krebbel@linux.ibm.com>
2202
2203	Backported from master:
2204	2018-11-21  Andreas Krebbel  <krebbel@linux.ibm.com>
2205
2206	* configure.ac: Add check for Binutils to determine whether vector
2207	load/store alignments hints are being supported.
2208	* config.in: Regenerate.
2209	* configure: Regenerate.
2210	* config/s390/s390.c (print_operand): Support new output
2211	modifier A.
2212	* config/s390/s390.md ("movti"): Append alignment hint output
2213	using the new output modifier 'A'.
2214	* config/s390/vector.md ("mov<mode>", "*vec_tf_to_v1tf")
2215	("*vec_ti_to_v1ti"): Likewise.
2216
22172020-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
2218
2219	* config/rs6000/altivec.h (vec_vmsumudm): New define.
2220	* config/rs6000/altivec.md (UNSPEC_VMSUMUDM): New unspec.
2221	  (altivec_vmsumudm): New define_insn.
2222	* config/rs6000/rs6000-builtin.def (altivec_vmsumudm): New BU_ALTIVEC_3
2223	  entry. (vmsumudm): New BU_ALTIVEC_OVERLOAD_3 entry.
2224	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2225	  entries for ALTIVEC_BUILTIN_VMSUMUDM variants of vec_msum.
2226	* doc/extend.texi: Add document for vmsumudm behind vmsum.
2227
22282020-07-06  Will Schmidt  <will_schmidt@vnet.ibm.com>
2229
2230	* config/rs6000/altivec.h (vec_pack_to_short_fp32): Update.
2231	* config/rs6000/altivec.md (UNSPEC_CONVERT_4F32_8F16): New unspec.
2232	(convert_4f32_8f16): New define_expand
2233	* config/rs6000/rs6000-builtin.def (convert_4f32_8f16): New builtin define
2234	and overload.
2235	* config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_CONVERT_4F32_8F16): New
2236	overloaded builtin entry.
2237	* config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPHP): New unspec.
2238	(vsx_xvcvsphp): New define_insn.
2239
22402020-06-30  Alex Coplan  <alex.coplan@arm.com>
2241
2242	Backported from master:
2243	2020-05-18  Alex Coplan  <alex.coplan@arm.com>
2244
2245	* config/arm/arm.c (output_move_double): Fix codegen when loading into
2246	a register pair with an odd base register.
2247
22482020-06-25  H.J. Lu  <hjl.tools@gmail.com>
2249
2250	Backported from master:
2251	2020-06-25  H.J. Lu  <hjl.tools@gmail.com>
2252
2253	PR target/95874
2254	* config/i386/i386.c (PTA_ICELAKE_CLIENT): Remove PTA_CLWB.
2255	(PTA_ICELAKE_SERVER): Add PTA_CLWB.
2256
22572020-06-20  Bin Cheng  <bin.cheng@linux.alibaba.com>
2258
2259	PR tree-optimization/94969
2260	* tree-data-ref.c (constant_access_functions): Rename to...
2261	(invariant_access_functions): ...this.  Add parameter.  Check for
2262	invariant access function, rather than constant.
2263	(build_classic_dist_vector): Call above function.
2264	* tree-loop-distribution.c (pg_add_dependence_edges): Add comment.
2265
22662020-06-17  Thomas Schwinge  <thomas@codesourcery.com>
2267
2268	Backported from master:
2269	2020-06-17  Thomas Schwinge  <thomas@codesourcery.com>
2270
2271	* hsa-gen.c (gen_hsa_insns_for_call): Move 'function_decl ==
2272	NULL_TREE' check earlier.
2273
22742020-06-12  Martin Liska  <mliska@suse.cz>
2275	    Jakub Jelinek  <jakub@redhat.com>
2276
2277	PR sanitizer/95634
2278	* asan.c (asan_emit_stack_protection): Fix emission for ilp32
2279	by using Pmode instead of ptr_mode.
2280
22812020-06-12  Martin Liska  <mliska@suse.cz>
2282
2283	PR sanitizer/94910
2284	* asan.c (asan_emit_stack_protection): Emit
2285	also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release
2286	a stack frame.
2287
22882020-06-10  Carl Love  <cel@us.ibm.com>
2289
2290	PR target/94833
2291	* config/rs6000/vsx.md (define_expand): Fix instruction generation for
2292	first_match_index_<mode>.
2293
22942020-06-05  H.J. Lu  <hjl.tools@gmail.com>
2295
2296	* config/i386/driver-i386.c (host_detect_local_cpu): Support
2297	Intel Airmont, Comet Lake and Ice Lake processor families.
2298
22992020-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2300
2301	* config/aarch64/aarch64-cores.def (zeus): Define.
2302	* config/aarch64/aarch64-tune.md: Regenerate.
2303	* doc/invoke.texi (AArch64 Options): Document zeus -mcpu option.
2304
23052020-05-29  Alex Coplan  <alex.coplan@arm.com>
2306
2307	PR target/94591
2308	* config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
2309	identity permutation.
2310
23112020-05-29  Dong JianQiang  <dongjianqiang2@huawei.com>
2312
2313	PR gcov-profile/95332
2314	* gcov-io.c (gcov_var::endian): Move field.
2315	(from_file): Add IN_GCOV_TOOL check.
2316	* gcov-io.h (gcov_magic): Ditto.
2317
23182020-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2319
2320	PR target/95258
2321	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
2322	AVX512VPOPCNTDQ.
2323
23242020-05-21  Martin Liska  <mliska@suse.cz>
2325
2326	* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
2327	Use MASK_OUTLINE_ATOMICS for x_target_flags.
2328
23292020-05-21  Martin Liska  <mliska@suse.cz>
2330
2331	* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
2332	Handle OPT_moutline_atomics.
2333	* config/aarch64/aarch64.c: Add outline-atomics to
2334	aarch64_attributes.
2335	* doc/extend.texi: Document the newly added target attribute.
2336
23372020-05-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
2338
2339	Backport from mainline.
2340	2020-04-27  Szabolcs Nagy  <szabolcs.nagy@arm.com>
2341
2342	PR target/94515
2343	* dwarf2cfi.c (struct GTY): Add ra_mangled.
2344	(cfi_row_equal_p): Check ra_mangled.
2345	(dwarf2out_frame_debug_cfa_window_save): Remove the argument,
2346	this only handles the sparc logic now.
2347	(dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for
2348	the aarch64 specific logic.
2349	(dwarf2out_frame_debug): Update to use the new subroutines.
2350	(change_cfi_row): Check ra_mangled.
2351
23522020-05-12  David Edelsohn  <dje.gcc@gmail.com>
2353
2354	Backport from mainline
2355	2020-05-04  Clement Chigot  <clement.chigot@atos.net>
2356		    David Edelsohn  <dje.gcc@gmail.com>
2357
2358	* config/rs6000/rs6000.c (rs6000_init_builtins): Override explicit
2359	for fmodl, frexpl, ldexpl and modfl builtins.
2360
23612020-05-07  Uroš Bizjak  <ubizjak@gmail.com>
2362
2363	* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
2364	TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
2365	fenv_var and new_fenv_var.
2366
23672020-05-04  Bin Cheng  <bin.cheng@linux.alibaba.com>
2368
2369	PR tree-optimization/93674
2370	Backport from master
2371	2020-04-09  Bin Cheng  <bin.cheng@linux.alibaba.com>
2372
2373	* tree-ssa-loop-ivopts.c (langhooks.h): New include.
2374	(add_iv_candidate_for_use): For iv_use of non integer or pointer type,
2375	or non-mode precision type, add candidate in unsigned type with the
2376	same precision.
2377
23782020-05-04  Andreas Krebbel  <krebbel@linux.ibm.com>
2379
2380	Backport from mainline
2381	2020-04-20  Andreas Krebbel  <krebbel@linux.ibm.com>
2382
2383	* config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx")
2384	("popcountv2di2_vx"): Use simplify_gen_subreg.
2385
23862020-05-04  Andreas Krebbel  <krebbel@linux.ibm.com>
2387
2388	Backport from mainline
2389	2020-04-20  Andreas Krebbel  <krebbel@linux.ibm.com>
2390
2391	PR target/94613
2392	* config/s390/s390-builtin-types.def: Add 3 new function modes.
2393	* config/s390/s390-builtins.def: Add mode dependent low-level
2394	builtin and map the overloaded builtins to these.
2395	* config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ...
2396	("vsel<V_HW"): ... this and rewrite the pattern with bitops.
2397
23982020-04-29  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2399
2400	Backport from mainline.
2401	2018-10-31  Richard Henderson  <richard.henderson@linaro.org>
2402
2403	* config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Force
2404	16-byte modes held in GP registers to use an even regno.
2405
24062020-04-28  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2407
2408	PR target/94814
2409	Backport from gcc-9.
2410	2020-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2411
2412	PR target/94518
2413	2019-09-23  Richard Sandiford  <richard.sandiford@arm.com>
2414
2415	* config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix
2416	memmodel index.
2417
24182020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2419
2420	Backport from mainline
2421	2019-08-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2422
2423	PR target/90724
2424	* config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
2425	in reg if it fails aarch64_plus_operand predicate.
2426
24272020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2428
2429	Backport from mainline
2430	2020-04-02  Jakub Jelinek  <jakub@redhat.com>
2431
2432	PR target/94435
2433	* config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For
2434	y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode.
2435
24362020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2437
2438	Backport from mainline
2439	2020-03-31  Jakub Jelinek  <jakub@redhat.com>
2440
2441	PR target/94368
2442	* config/aarch64/constraints.md (Uph): New constraint.
2443	* config/aarch64/atomics.md (cas_short_expected_imm): New mode attr.
2444	(aarch64_compare_and_swap<mode>): Use it instead of n in operand 2's
2445	constraint.
2446
24472020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2448
2449	Backport from mainline
2450	2019-09-19  Richard Henderson  <richard.henderson@linaro.org>
2451
2452	* config/aarch64/aarch64.opt (-moutline-atomics): New.
2453	* config/aarch64/aarch64.c (aarch64_atomic_ool_func): New.
2454	(aarch64_ool_cas_names, aarch64_ool_swp_names): New.
2455	(aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New.
2456	(aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New.
2457	(aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS.
2458	* config/aarch64/atomics.md (atomic_exchange<ALLI>): Likewise.
2459	(atomic_<atomic_op><ALLI>): Likewise.
2460	(atomic_fetch_<atomic_op><ALLI>): Likewise.
2461	(atomic_<atomic_op>_fetch<ALLI>): Likewise.
2462	* doc/invoke.texi: Document -moutline-atomics.
2463
24642020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2465
2466	Backport from mainline.
2467	2018-10-31  Richard Henderson  <richard.henderson@linaro.org>
2468
2469	* optabs-libfuncs.c (build_libfunc_function_visibility):
2470	New, split out from...
2471	(build_libfunc_function): ... here.
2472	(init_one_libfunc_visibility): New, split out from ...
2473	(init_one_libfunc): ... here.
2474
24752020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2476
2477	Backport from mainline
2478	2019-09-19  Richard Henderson  <richard.henderson@linaro.org>
2479
2480	* config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable
2481	strong_zero_p for aarch64_track_speculation; unify some code paths;
2482	use aarch64_gen_compare_reg instead of open-coding.
2483
24842020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2485
2486	Backport from mainline
2487	2020-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
2488
2489	PR target/92692
2490	* config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
2491	Use epilogue_completed rather than reload_completed.
2492
24932020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2494
2495	Backport from mainline
2496	2019-09-19  Richard Henderson  <richard.henderson@linaro.org>
2497
2498	* config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support
2499	for NE comparison of TImode values.
2500	(aarch64_emit_load_exclusive): Add support for TImode.
2501	(aarch64_emit_store_exclusive): Likewise.
2502	(aarch64_split_compare_and_swap): Disable strong_zero_p for TImode.
2503	* config/aarch64/atomics.md (atomic_compare_and_swapti):
2504	Change iterator from ALLI to ALLI_TI.
2505	(atomic_compare_and_swapti): New.
2506	(atomic_compare_and_swapti: New.
2507	(aarch64_load_exclusive_pair): New.
2508	(aarch64_store_exclusive_pair): New.
2509	* config/aarch64/iterators.md (ALLI_TI): New iterator.
2510
25112020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2512
2513	Backport from mainline.
2514	2019-09-19  Richard Henderson  <richard.henderson@linaro.org>
2515
2516	* config/aarch64/aarch64.c (aarch64_print_operand): Allow integer
2517	registers with %R.
2518
25192020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2520
2521	Backport from mainline.
2522	2018-10-31  Richard Henderson  <richard.henderson@linaro.org>
2523
2524	* config/aarch64/atomics.md (aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse):
2525	scratch register need not be early-clobber.  Document the reason
2526	why we cannot use ST<OP>.
2527
25282020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2529
2530	Backport from mainline.
2531	2018-10-31  Richard Henderson  <richard.henderson@linaro.org>
2532
2533	* config/aarch64/aarch64.c (aarch64_emit_bic): Remove.
2534	(aarch64_atomic_ldop_supported_p): Remove.
2535	(aarch64_gen_atomic_ldop): Remove.
2536	* config/aarch64/atomic.md (atomic_<atomic_optab><ALLI>):
2537	Fully expand LSE operations here.
2538	(atomic_fetch_<atomic_optab><ALLI>): Likewise.
2539	(atomic_<atomic_optab>_fetch<ALLI>): Likewise.
2540	(aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse): Drop atomic_op iterator
2541	and use ATOMIC_LDOP instead; use register_operand for the input;
2542	drop the split and emit insns directly.
2543	(aarch64_atomic_fetch_<ATOMIC_LDOP><ALLI>_lse): Likewise.
2544	(aarch64_atomic_<atomic_op>_fetch<ALLI>_lse): Remove.
2545	(aarch64_atomic_load<ATOMIC_LDOP><ALLI>): Remove.
2546
25472020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2548
2549	Backport from mainline.
2550	2018-10-31  Richard Henderson  <richard.henderson@linaro.org>
2551
2552	* config/aarch64/aarch64.c (aarch64_emit_atomic_swap): Remove.
2553	(aarch64_gen_atomic_ldop): Don't call it.
2554	* config/aarch64/atomics.md (atomic_exchange<ALLI>):
2555	Use aarch64_reg_or_zero.
2556	(aarch64_atomic_exchange<ALLI>): Likewise.
2557	(aarch64_atomic_exchange<ALLI>_lse): Remove split; remove & from
2558	operand 0; use aarch64_reg_or_zero for input; merge ...
2559	(aarch64_atomic_swp<ALLI>): ... this and remove.
2560
25612020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2562
2563	Backport from mainline.
2564	2018-10-31  Richard Henderson  <richard.henderson@linaro.org>
2565
2566	* config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): New.
2567	(aarch64_split_compare_and_swap): Use it.
2568	(aarch64_expand_compare_and_swap): Likewise.  Remove convert_modes;
2569	test oldval against the proper predicate.
2570	* config/aarch64/atomics.md (atomic_compare_and_swap<ALLI>):
2571	Use nonmemory_operand for expected.
2572	(cas_short_expected_pred): New.
2573	(aarch64_compare_and_swap<SHORT>): Use it; use "rn" not "rI" to match.
2574	(aarch64_compare_and_swap<GPI>): Use "rn" not "rI" for expected.
2575	* config/aarch64/predicates.md (aarch64_plushi_immediate): New.
2576	(aarch64_plushi_operand): New.
2577
25782020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2579
2580	Backport from mainline.
2581	2018-10-31  Richard Henderson  <richard.henderson@linaro.org>
2582
2583	* config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
2584	Force oldval into the rval register for TARGET_LSE; emit the compare
2585	during initial expansion so that it may be deleted if unused.
2586	(aarch64_gen_atomic_cas): Remove.
2587	* config/aarch64/atomics.md (aarch64_compare_and_swap<SHORT>_lse):
2588	Change =&r to +r for operand 0; use match_dup for operand 2;
2589	remove is_weak and mod_f operands as unused.  Drop the split
2590	and merge with...
2591	(aarch64_atomic_cas<SHORT>): ... this pattern's output; remove.
2592	(aarch64_compare_and_swap<GPI>_lse): Similarly.
2593	(aarch64_atomic_cas<GPI>): Similarly.
2594
25952020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2596
2597	Backport from mainline.
2598	2018-07-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2599
2600	* config/aarch64/atomics.md (aarch64_store_execlusive<mode>): Add
2601	early clobber.
2602
26032020-04-21  Martin Jambor  <mjambor@suse.cz>
2604
2605	Backport from master
2606	2020-04-09  Martin Jambor  <mjambor@suse.cz>
2607	            Richard Biener  <rguenther@suse.de>
2608
2609	PR tree-optimization/94482
2610	* tree-sra.c (create_access_replacement): Dump new replacement with
2611	TDF_UID.
2612	(sra_modify_expr): Fix handling of cases when the original EXPR writes
2613	to only part of the replacement.
2614	* tree-ssa-forwprop.c (pass_forwprop::execute): Properly verify
2615	the first operand of combinations into REAL/IMAGPART_EXPR and
2616	BIT_FIELD_REF.
2617
26182020-04-20  H.J. Lu  <hongjiu.lu@intel.com>
2619
2620	Backport from master
2621	2020-04-13  H.J. Lu  <hongjiu.lu@intel.com>
2622
2623	PR target/94556
2624	* config/i386/i386.c (ix86_expand_epilogue): Restore the frame
2625	pointer in word_mode for eh_return epilogues.
2626
26272020-04-20  Tamar Christina  <tamar.christina@arm.com>
2628
2629	Backport from mainline.
2630	2020-04-03  Tamar Christina  <tamar.christina@arm.com>
2631
2632	PR target/94396
2633	* common/config/aarch64/aarch64-common.c
2634	(aarch64_get_extension_string_for_isa_flags): Handle default flags.
2635
26362020-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2637
2638	Backport from master
2639	2020-04-08  H.J. Lu  <hongjiu.lu@intel.com>
2640
2641	PR target/94417
2642	* config/i386/i386.c (rest_of_insert_endbranch): Insert ENDBR at
2643	function entry if function will be called indirectly.
2644
2645
26462020-04-15  Uroš Bizjak  <ubizjak@gmail.com>
2647
2648	PR target/94603
2649	* config/i386/i386-builtin.def (__builtin_ia32_movq128):
2650	Require OPTION_MASK_ISA_SSE2.
2651
26522020-04-15  Max Filippov  <jcmvbkbc@gmail.com>
2653
2654	Backport from mainline.
2655	2020-04-14  Max Filippov  <jcmvbkbc@gmail.com>
2656
2657	PR target/94584
2658	* config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2)
2659	(extendhisi2_internal): Add %v1 before the load instructions.
2660
26612020-04-15  Max Filippov  <jcmvbkbc@gmail.com>
2662
2663	Backport from mainline.
2664	2019-09-26  Max Filippov  <jcmvbkbc@gmail.com>
2665
2666	* config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead
2667	loop instruction into new basic block before the loop when basic
2668	block that precedes the loop is empty.
2669
26702020-04-07  Will Schmidt  <will_schmidt@vnet.ibm.com>
2671
2672	Backport from mainline.
2673	2020-03-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
2674
2675	* config/rs6000/rs6000-call.c altivec_init_builtins(): Remove
2676	code to skip defining builtins based on builtin_mask.
2677
26782020-04-07  Jakub Jelinek  <jakub@redhat.com>
2679
2680	PR target/94500
2681	* config/i386/i386.c (emit_reduc_half): For V{64QI,32HI}mode
2682	handle i < 64 using avx512bw_lshrv4ti3.  Formatting fixes.
2683
26842020-04-03  Martin Jambor  <mjambor@suse.cz>
2685
2686	PR tree-optimization/93435
2687	* params.def (PARAM_SRA_MAX_PROPAGATIONS): New parameter.
2688	* tree-sra.c (propagation_budget): New variable.
2689	(budget_for_propagation_access): New function.
2690	(propagate_subaccesses_across_link): Use it.
2691	(propagate_all_subaccesses): Set up and destroy propagation_budget.
2692	* doc/invoke.texi (sra-max-propagations): New.
2693
26942020-04-03  Martin Liska  <mliska@suse.cz>
2695
2696	Backport from mainline
2697	2020-04-03  Martin Liska  <mliska@suse.cz>
2698
2699	PR ipa/94445
2700	* ipa-icf-gimple.c (func_checker::compare_gimple_call):
2701	  Compare type attributes for gimple_call_fntypes.
2702
27032020-04-02  Fritz Reese  <foreese@gcc.gnu.org>
2704
2705	Backport from master.
2706	2020-04-02  Fritz Reese  <foreese@gcc.gnu.org>
2707
2708	PR fortran/85982
2709	* fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into
2710	attribute checking used by TYPE.
2711
27122020-03-31  Carl Love  <cel@us.ibm.com>
2713
2714	Backport of:
2715	  commit e97929e20b2f52e6cfc046c1302324d1b24d95e3
2716	  Author: Carl Love <carll@us.ibm.com>
2717	  Date:   Wed Mar 25 18:33:37 2020 -0500
2718
2719	PR target/93819
2720        * gcc/config/rs6000/altivec.h:
2721        Fixed swapped arguments for vec_rlnm define.
2722
27232020-03-31  Carl Love  <cel@us.ibm.com>
2724
2725	backport of mainline commit
2726
2727	commit 68dd57808f7c0147acdb5ca72c88ff655afcb0ce
2728	Author: Carl Love <carll@us.ibm.com>
2729	Date:   Fri Mar 20 18:15:05 2020 -0500
2730
2731	whith change log typo fixed.
2732
2733	PR target/87583
2734	* gcc/config/rs6000/rs6000.c (rs6000_option_override_internal):
2735	Add check for TARGET_FPRND for Power 7 or newer.
2736
27372020-03-29  Martin Liska  <mliska@suse.cz>
2738
2739	Backport from mainline
2740	2019-09-02  Martin Liska  <mliska@suse.cz>
2741
2742	PR gcov-profile/91601
2743	* gcov.c (path_contains_zero_cycle_arc): Rename to ...
2744	(path_contains_zero_or_negative_cycle_arc): ... this and handle
2745	also negative edges.
2746	(circuit): Handle also negative edges as they can happen
2747	in some situations.
2748
27492020-03-29  Iain Sandoe  <iain@sandoe.co.uk>
2750
2751	Backport from master.
2752	2018-08-22  Iain Sandoe  <iain@sandoe.co.uk>
2753
2754	* config/i386/i386.c (ix86_output_addr_diff_elt): Move the MACH-O
2755	specific test before the one for HAVE_AS_GOTOFF_IN_DATA.
2756
2757	Backport from master.
2758	2020-03-22  Iain Sandoe  <iain@sandoe.co.uk>
2759
2760	* config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove
2761	references to Darwin.
2762	* config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this
2763	unconditionally and comment on why.
2764
27652020-03-24  John David Anglin  <danglin@gcc.gnu.org>
2766
2767	PR lto/94249
2768	* config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__.
2769
27702020-03-24  Tamar Christina  <tamar.christina@arm.com>
2771
2772	PR target/94052
2773	* config/aarch64/aarch64-simd.md (mov<mode>): Remove paradoxical
2774	subregs of VSTRUCT modes.
2775
27762020-03-19  Jonathan Wakely  <jwakely@redhat.com>
2777
2778	Backport from mainline
2779	2020-01-13  Jonathan Wakely  <jwakely@redhat.com>
2780
2781	PR driver/92757
2782	* doc/invoke.texi (Warning Options): Add caveat about some warnings
2783	depending on optimization settings.
2784
27852020-03-13  Richard Biener  <rguenther@suse.de>
2786
2787	PR tree-optimization/94163
2788	* tree-ssa-pre.c (create_expression_by_pieces): Check
2789	whether alignment would be zero.
2790
27912020-03-13  Eric Botcazou  <ebotcazou@adacore.com>
2792
2793	PR rtl-optimization/94119
2794	* resource.h (clear_hashed_info_until_next_barrier): Declare.
2795	* resource.c (clear_hashed_info_until_next_barrier): New function.
2796	* reorg.c (add_to_delay_list): Fix formatting.
2797	(relax_delay_slots): Call clear_hashed_info_until_next_barrier on
2798	the next instruction after removing a BARRIER.
2799
28002020-03-12  Richard Earnshaw  <rearnsha@arm.com>
2801
2802	Backport from master
2803	2020-02-10  Richard Earnshaw  <rearnsha@arm.com>
2804
2805	PR target/91913
2806	* config/arm/arm.md (movsi_compare0): Allow SP as a source register
2807	in Thumb state and also as a destination in Arm state.  Add T16
2808	variants.
2809
28102020-02-27  Jakub Jelinek  <jakub@redhat.com>
2811
2812	PR c/93949
2813	* gimplify.c (gimplify_init_constructor): Don't promote readonly
2814	DECL_REGISTER variables to TREE_STATIC.
2815
28162020-03-04  Jakub Jelinek  <jakub@redhat.com>
2817
2818	* BASE-VER: Set to 8.4.1.
2819
28202020-03-04  Release Manager
2821
2822	* GCC 8.4.0 released.
2823
28242020-03-02  Martin Liska  <mliska@suse.cz>
2825
2826	Backport from mainline
2827	2020-02-28  Martin Liska  <mliska@suse.cz>
2828
2829	PR other/93965
2830	* configure.ac: Improve detection of ld_date by requiring
2831	either two dashes or none.
2832	* configure: Regenerate.
2833
28342020-02-29  Peter Bergner  <bergner@linux.ibm.com>
2835
2836	Revert
2837	2020-02-20  Peter Bergner  <bergner@linux.ibm.com>
2838
2839	PR target/93658
2840	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
2841	vector modes.
2842
2843	2020-02-03  Michael Meissner  <meissner@linux.ibm.com>
2844
2845	* config/rs6000/rs6000.c (get_vector_offset): New helper function
2846	to calculate the offset in memory from the start of a vector of a
2847	particular element.  Add code to keep the element number in
2848	bounds if the element number is variable.
2849	(rs6000_adjust_vec_address): Move calculation of offset of the
2850	vector element to get_vector_offset.
2851	(rs6000_split_vec_extract_var): Do not do the initial AND of
2852	element here, move the code to get_vector_offset.
2853
2854	2020-02-05  Michael Meissner  <meissner@linux.ibm.com>
2855
2856	PR target/93568
2857	* config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert
2858	to use MEM.
2859
2860	2020-01-06  Michael Meissner  <meissner@linux.ibm.com>
2861
2862	* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
2863	Use 'Q' for doing vector extract from memory.
2864	(vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
2865	memory.
2866	(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
2867	doing vector extract from memory.
2868	(vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
2869	extract from memory.
2870
28712020-02-26  Carl Love  <cel@us.ibm.com>
2872
2873	PR target/91276
2874	* doc/extend.texi (PowerPC AltiVec Built-in Functions): The
2875	builtin-function name __builtin_crypto_vpmsumb is only for the
2876	vector unsigned short arguments.  It is also listed as the name of
2877	the built-in for arguments vector unsigned short,
2878	vector unsigned int and vector unsigned long long built-ins.  The
2879	name of the builtins for these arguments should be:
2880	__builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and
2881	__builtin_crypto_vpmsumd respectively.
2882
28832020-02-26  Jakub Jelinek  <jakub@redhat.com>
2884
2885	PR tree-optimization/93820
2886	* gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE
2887	argument to ALL_INTEGER_CST_P boolean.
2888	(imm_store_chain_info::try_coalesce_bswap): Adjust caller.
2889	(imm_store_chain_info::coalesce_immediate_stores): Likewise.  Handle
2890	adjacent INTEGER_CST store into merged_store->only_constants like
2891	overlapping one.
2892
28932020-02-25  Jakub Jelinek  <jakub@redhat.com>
2894
2895	PR rtl-optimization/93908
2896	* combine.c (find_split_point): For store into ZERO_EXTRACT, and src
2897	with mask.
2898
28992019-02-25  Eric Botcazou  <ebotcazou@adacore.com>
2900
2901	* dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.
2902
29032020-02-25  Roman Zhuykov  <zhroma@ispras.ru>
2904
2905	Backport from master
2906	2020-02-24  Roman Zhuykov  <zhroma@ispras.ru>
2907
2908	* doc/install.texi (--enable-checking): Properly document current
2909	behavior.
2910	(--enable-stage1-checking): Minor clarification about bootstrap.
2911
29122020-02-25  Richard Sandiford  <richard.sandiford@arm.com>
2913
2914	Backport from mainline
2915	2020-02-19  Richard Sandiford  <richard.sandiford@arm.com>
2916
2917	PR tree-optimization/93767
2918	* tree-vect-data-refs.c (vect_compile_time_alias): Remove the
2919	access-size bias from the offset calculations for negative strides.
2920
29212020-02-25  Richard Sandiford  <richard.sandiford@arm.com>
2922
2923	Backport from mainline
2924	2020-01-28  Richard Sandiford  <richard.sandiford@arm.com>
2925
2926	PR tree-optimization/93434
2927	* tree-predcom.c (split_data_refs_to_components): Record which
2928	components have had aliasing loads removed.  Prevent store-store
2929	commoning for all such components.
2930
29312020-02-25  Richard Sandiford  <richard.sandiford@arm.com>
2932
2933	Backport from mainline
2934	2019-12-05  Richard Sandiford  <richard.sandiford@arm.com>
2935
2936	PR middle-end/92768
2937	* tree-core.h (OEP_BITWISE): New flag.
2938	* fold-const.c (operand_compare::operand_equal_p): Handle it.
2939	* tree-vector-builder.h (tree_vector_builder::equal_p): Pass it.
2940
29412020-02-25  Richard Sandiford  <richard.sandiford@arm.com>
2942
2943	Backport from mainline
2944	2019-11-11  Richard Sandiford  <richard.sandiford@arm.com>
2945
2946	PR tree-optimization/92420
2947	* tree-vect-stmts.c (get_negative_load_store_type): Move further
2948	up file.
2949	(get_group_load_store_type): Use it for reversed SLP accesses.
2950
29512020-02-25  Richard Sandiford  <richard.sandiford@arm.com>
2952
2953	Backport from mainline
2954	2019-08-09  Richard Sandiford  <richard.sandiford@arm.com>
2955
2956	PR middle-end/90313
2957	* tree-tailcall.c (find_tail_calls): Reject calls that might
2958	read from an escaped RESULT_DECL.
2959
29602020-02-24  Jason Merrill  <jason@redhat.com>
2961
2962	PR c++/92003
2963	* symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has
2964	non-zero address even if weak and not yet defined.
2965
29662020-02-23  Peter Bergner  <bergner@linux.ibm.com>
2967
2968	Backport from master
2969	2020-02-20  Peter Bergner  <bergner@linux.ibm.com>
2970
2971	PR target/93658
2972	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
2973	vector modes.
2974
29752020-02-23  Peter Bergner  <bergner@linux.ibm.com>
2976
2977	Backport from master
2978	2020-02-03  Michael Meissner  <meissner@linux.ibm.com>
2979
2980	* config/rs6000/rs6000.c (get_vector_offset): New helper function
2981	to calculate the offset in memory from the start of a vector of a
2982	particular element.  Add code to keep the element number in
2983	bounds if the element number is variable.
2984	(rs6000_adjust_vec_address): Move calculation of offset of the
2985	vector element to get_vector_offset.
2986	(rs6000_split_vec_extract_var): Do not do the initial AND of
2987	element here, move the code to get_vector_offset.
2988
2989	Backport from master
2990	2020-02-05  Michael Meissner  <meissner@linux.ibm.com>
2991
2992	PR target/93568
2993	* config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert
2994	to use MEM.
2995
29962020-02-23  Peter Bergner  <bergner@linux.ibm.com>
2997
2998	Backport from master
2999	2020-01-06  Michael Meissner  <meissner@linux.ibm.com>
3000
3001	* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
3002	Use 'Q' for doing vector extract from memory.
3003	(vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
3004	memory.
3005	(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
3006	doing vector extract from memory.
3007	(vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
3008	extract from memory.
3009
30102020-02-21  John David Anglin  <danglin@gcc.gnu.org>
3011
3012	* gcc/config/pa/pa.c (pa_function_value): Fix check for word and
3013	double-word size when handling aggregate return values.
3014	* gcc/config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate
3015	that homogeneous SFmode and DFmode aggregates are passed and returned
3016	in general registers.
3017
30182020-02-20  Uroš Bizjak  <ubizjak@gmail.com>
3019
3020	PR target/93828
3021	* config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
3022	to destination operand for shufps alternative.
3023	(*vec_extractv2si_1): Ditto.
3024
30252020-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3026
3027	* collect2.c (tool_cleanup): Avoid calling not signal-safe
3028	functions.
3029	(maybe_run_lto_and_relink): Avoid possible signal handler
3030	access to unintialzed memory (lto_o_files).
3031
30322020-02-20  H.J. Lu  <hongjiu.lu@intel.com>
3033
3034	Backport from master
3035	2020-02-13  H.J. Lu  <hongjiu.lu@intel.com>
3036
3037	PR target/93656
3038	* config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at
3039	the target function entry.
3040
30412020-02-17  Richard Biener  <rguenther@suse.de>
3042
3043	Backport from mainline
3044	2020-01-22  Richard Biener  <rguenther@suse.de>
3045
3046	PR tree-optimization/93381
3047	* tree-ssa-structalias.c (find_func_aliases): Assume offsetting
3048	throughout, handle all conversions the same.
3049
30502020-02-17  Richard Biener  <rguenther@suse.de>
3051
3052	Backport from mainline
3053	2020-01-28  Richard Biener  <rguenther@suse.de>
3054
3055	PR tree-optimization/93439
3056	* tree-parloops.c (create_loop_fn): Move clique bookkeeping...
3057	* tree-cfg.c (move_sese_region_to_fn): ... here.
3058	(verify_types_in_gimple_reference): Verify used cliques are
3059	tracked.
3060
30612020-02-17  Richard Biener  <rguenther@suse.de>
3062
3063	Backport from mainline
3064	2020-01-09  Richard Biener  <rguenther@suse.de>
3065
3066	PR middle-end/93054
3067	* gimplify.c (gimplify_expr): Deal with NOP definitions.
3068
30692020-02-17  Richard Biener  <rguenther@suse.de>
3070
3071	Backport from mainline
3072	2020-01-20  Richard Biener  <rguenther@suse.de>
3073
3074	PR debug/92763
3075	* dwarf2out.c (prune_unused_types): Unconditionally mark
3076	called function DIEs.
3077
30782020-02-17  Richard Biener  <rguenther@suse.de>
3079
3080	Backport from mainline
3081	2019-11-29  Richard Biener  <rguenther@suse.de>
3082
3083	PR tree-optimization/92704
3084	* tree-if-conv.c (combine_blocks): Deal with virtual PHIs
3085	in loops performing only loads.
3086
30872020-02-17  Richard Biener  <rguenther@suse.de>
3088
3089	Backport from mainline
3090	2019-11-27  Richard Biener  <rguenther@suse.de>
3091
3092	PR middle-end/92674
3093	* tree-inline.c (expand_call_inline): Delay purging EH/abnormal
3094	edges and instead record blocks in bitmap.
3095	(gimple_expand_calls_inline): Adjust.
3096	(fold_marked_statements): Delay EH cleanup until all folding is
3097	done.
3098	(optimize_inline_calls): Do EH/abnormal cleanup for calls after
3099	inlining finished.
3100
31012020-02-14 Hongtao Liu  <hongtao.liu@intel.com>
3102
3103	PR target/93724
3104	* config/i386/avx512vbmi2intrin.h
3105	(_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16,
3106	_mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
3107	_mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
3108	_m512_shrdi_epi64, _m512_mask_shrdi_epi64,
3109	_m512_maskz_shrdi_epi64, _mm512_shldi_epi16,
3110	_mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16,
3111	_mm512_shldi_epi32, _mm512_mask_shldi_epi32,
3112	_mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
3113	_mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo
3114	of lacking a closing parenthesis.
3115	* config/i386/avx512vbmi2vlintrin.h
3116	(_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16,
3117	_mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32,
3118	_mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32,
3119	_m256_shrdi_epi64, _m256_mask_shrdi_epi64,
3120	_m256_maskz_shrdi_epi64, _mm256_shldi_epi16,
3121	_mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
3122	_mm256_shldi_epi32, _mm256_mask_shldi_epi32,
3123	_mm256_maskz_shldi_epi32, _mm256_shldi_epi64,
3124	_mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64,
3125	_mm_shrdi_epi16, _mm_mask_shrdi_epi16,
3126	_mm_maskz_shrdi_epi16, _mm_shrdi_epi32,
3127	_mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32,
3128	_mm_shrdi_epi64, _mm_mask_shrdi_epi64,
3129	_m_maskz_shrdi_epi64, _mm_shldi_epi16,
3130	_mm_mask_shldi_epi16, _mm_maskz_shldi_epi16,
3131	_mm_shldi_epi32, _mm_mask_shldi_epi32,
3132	_mm_maskz_shldi_epi32, _mm_shldi_epi64,
3133	_mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto.
3134
31352020-02-15  Jakub Jelinek  <jakub@redhat.com>
3136
3137	PR tree-optimization/93744
3138	* match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): For
3139	GENERIC, make sure @2 in the first and @1 in the other patterns has no
3140	side-effects.
3141
31422020-02-14  Eric Botcazou  <ebotcazou@adacore.com>
3143
3144	PR target/93704
3145	* config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in
3146	conjunction with TARGET_GNU_TLS in early return.
3147
31482020-02-14  Jakub Jelinek  <jakub@redhat.com>
3149
3150	Backported from mainline
3151	2020-02-13  Jakub Jelinek  <jakub@redhat.com>
3152
3153	PR target/93696
3154	* config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8,
3155	_mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8,
3156	_mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8,
3157	_mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W,
3158	pass __A to the builtin followed by __W instead of __A followed by
3159	__B.
3160	* config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32,
3161	_mm512_mask_popcnt_epi64): Likewise.
3162	* config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32,
3163	_mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64,
3164	_mm256_mask_popcnt_epi64): Likewise.
3165
3166	PR target/93673
3167	* config/i386/sse.md (k<code><mode>): Drop mode from last operand and
3168	use const_0_to_255_operand predicate instead of immediate_operand.
3169	(avx512dq_fpclass<mode><mask_scalar_merge_name>,
3170	avx512dq_vmfpclass<mode><mask_scalar_merge_name>,
3171	vgf2p8affineinvqb_<mode><mask_name>,
3172	vgf2p8affineqb_<mode><mask_name>): Drop mode from
3173	const_0_to_255_operand predicated operands.
3174
3175	2020-02-12  Jakub Jelinek  <jakub@redhat.com>
3176
3177	PR target/93670
3178	* config/i386/sse.md (VI48F_256_DQ): New mode iterator.
3179	(avx512vl_vextractf128<mode>): Use it instead of VI48F_256.  Remove
3180	TARGET_AVX512DQ from condition.
3181	(vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition>
3182	instead of <mask_mode512bit_condition> in condition.  If
3183	TARGET_AVX512DQ is false, emit vextract*64x4 instead of
3184	vextract*32x8.
3185	(vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
3186	from condition.
3187
3188	2020-02-10  Jakub Jelinek  <jakub@redhat.com>
3189
3190	PR target/93637
3191	* config/i386/sse.md (VI_256_AVX2): New mode iterator.
3192	(vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256.
3193	Change condition from TARGET_AVX2 to TARGET_AVX.
3194
3195	2020-02-08  Uroš Bizjak  <ubizjak@gmail.com>
3196		    Jakub Jelinek  <jakub@redhat.com>
3197
3198	PR target/65782
3199	* config/i386/i386.h (CALL_USED_REGISTERS): Make
3200	xmm16-xmm31 call-used even in 64-bit ms-abi.
3201
3202	2020-02-06  Jakub Jelinek  <jakub@redhat.com>
3203
3204	PR libgomp/93515
3205	* omp-low.c (use_pointer_for_field): For nested constructs, also
3206	look for map clauses on target construct.
3207	(scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily
3208	taskreg_nesting_level.
3209
3210	2020-02-05  Jakub Jelinek  <jakub@redhat.com>
3211
3212	PR middle-end/93555
3213	* omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or
3214	simd_clone_create failed when i == 0, adjust clone->nargs by
3215	clone->inbranch.
3216
3217	2020-01-30  Jakub Jelinek  <jakub@redhat.com>
3218
3219	PR middle-end/93505
3220	* combine.c (simplify_comparison) <case ROTATE>: Punt on out of range
3221	rotate counts.
3222
3223	2020-01-23  Jakub Jelinek  <jakub@redhat.com>
3224
3225	PR rtl-optimization/93402
3226	* postreload.c (reload_combine_recognize_pattern): Don't try to adjust
3227	USE insns.
3228
3229	2020-01-22  Jakub Jelinek  <jakub@redhat.com>
3230
3231	PR target/91298
3232	* output.h (assemble_name_resolve): Declare.
3233	* varasm.c (assemble_name_resolve): New function.
3234	(assemble_name): Use it.
3235	* config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.
3236
3237	2020-01-21  Jakub Jelinek  <jakub@redhat.com>
3238
3239	PR target/93333
3240	* config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify
3241	the last two operands are CONST_INT_P before using them as such.
3242
3243	PR target/93073
3244	* config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
3245	compare_mode other than SFmode or DFmode.
3246
3247	2020-01-09  Jakub Jelinek  <jakub@redhat.com>
3248
3249	PR inline-asm/93202
3250	* config/riscv/riscv.c (riscv_print_operand_reloc): Use
3251	output_operand_lossage instead of gcc_unreachable.
3252	* doc/md.texi (riscv f constraint): Fix typo.
3253
3254	2020-01-03  Jakub Jelinek  <jakub@redhat.com>
3255
3256	PR rtl-optimization/93088
3257	* loop-iv.c (find_single_def_src): Punt after looking through
3258	128 reg copies for regs with single definitions.  Move definitions
3259	to first uses.
3260
3261	2020-01-02  Jakub Jelinek  <jakub@redhat.com>
3262
3263	PR ipa/93087
3264	* predict.c (compute_function_frequency): Don't call
3265	warn_function_cold on functions that already have cold attribute.
3266
3267	2019-12-14  Jakub Jelinek  <jakub@redhat.com>
3268
3269	PR ipa/92357
3270	* ipa-fnsummary.c (ipa_fn_summary_write): Use
3271	lto_symtab_encoder_iterator with lsei_start_function_in_partition and
3272	lsei_next_function_in_partition instead of walking all cgraph nodes
3273	in encoder.
3274
3275	PR tree-optimization/92930
3276	* ipa-pure-const.c (special_builtin_state): Don't handle
3277	BUILT_IN_APPLY.
3278
3279	2019-12-12  Jakub Jelinek  <jakub@redhat.com>
3280
3281	PR target/92904
3282	* config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and
3283	not need_temp, decrease alignment of the read because the GPR save
3284	area only guarantees 8-byte alignment.
3285
3286	2019-12-11  Jakub Jelinek  <jakub@redhat.com>
3287
3288	PR target/92723
3289	* tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not
3290	vect_internal_def, use oprnd1 as is, without trying to cast it.
3291	Formatting fix.
3292
3293	2019-11-27  Jakub Jelinek  <jakub@redhat.com>
3294
3295	PR debug/92664
3296	* dwarf2out.c (lookup_filename): Use "<stdin>" instead of "".
3297
3298	2019-11-23  Jakub Jelinek  <jakub@redhat.com>
3299
3300	PR target/92615
3301	* config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is
3302	GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not
3303	register_operand, force x into register before storing it into dest.
3304	Formatting fix.
3305
33062020-02-14  Richard Biener  <rguenther@suse.de>
3307
3308	Backport from mainline
3309	PR middle-end/93246
3310	* alias.c (record_component_aliases): Take superset to record
3311	into, recurse for alias-set zero fields.
3312	(record_component_aliases): New oveerload wrapping around the above.
3313
33142020-02-11  Tamar Christina  <tamar.christina@arm.com>
3315
3316	Backport from mainline
3317	2020-01-31  Tamar Christina  <tamar.christina@arm.com>
3318
3319	PR rtl-optimization/91838
3320	* simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
3321	to truncate if allowed or reject combination.
3322
33232020-01-27  Wilco Dijkstra  <wdijkstr@arm.com>
3324
3325	PR target/92692
3326	* config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
3327	Add assert to ensure prolog has been emitted.
3328	(aarch64_split_atomic_op): Likewise.
3329	* config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
3330	Use epilogue_completed rather than reload_completed.
3331	(aarch64_atomic_exchange<mode>): Likewise.
3332	(aarch64_atomic_<atomic_optab><mode>): Likewise.
3333	(atomic_nand<mode>): Likewise.
3334	(aarch64_atomic_fetch_<atomic_optab><mode>): Likewise.
3335	(atomic_fetch_nand<mode>): Likewise.
3336	(aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise.
3337	(atomic_nand_fetch<mode>): Likewise.
3338
33392020-01-19  Eric S. Raymond <esr@thyrsus.com>
3340	    Sandra Loosemore  <sandra@codesourcery.com>
3341
3342	Backport from mainline:
3343
3344	2020-01-19  Eric S. Raymond <esr@thyrsus.com>
3345
3346	* doc/contribute.texi: Update for SVN -> Git transition.
3347	* doc/install.texi: Likewise.
3348
33492020-01-15  Martin Liska  <mliska@suse.cz>
3350
3351	Backport from mainline
3352	2019-04-14  Jan Hubicka  <hubicka@ucw.cz>
3353
3354	PR lto/89358
3355	* ipa-devirt.c (skip_in_fields_list_p): New.
3356	(odr_types_equivalent_p): Use it.
3357
33582020-01-10  Martin Jambor  <mjambor@suse.cz>
3359
3360	Backport from mainline
3361	2019-12-17  Martin Jambor  <mjambor@suse.cz>
3362
3363        PR ipa/92971
3364        * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
3365          definition of values, release memory on exit.
3366
33672020-01-09  Martin Liska  <mliska@suse.cz>
3368
3369	Backport from mainline
3370	2019-12-12  Jan Hubicka  <hubicka@ucw.cz>
3371
3372	* ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering
3373	of execution of function call parameters.
3374
33752020-01-08  Georg-Johann Lay  <avr@gjlay.de>
3376
3377	Backport from 2020-01-08 trunk r279995.
3378
3379	Add -nodevicespecs option for avr.
3380
3381	PR target/93182
3382	* config/avr/avr.opt (-nodevicespecs): New driver option.
3383	* config/avr/driver-avr.c (avr_devicespecs_file): Only issue
3384	"-specs=device-specs/..." if that option is not set.
3385	* doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
3386
33872020-01-06  John David Anglin  <danglin@gcc.gnu.org>
3388
3389	* config/pa/pa.md: Revert change to use ordered_comparison_operator
3390	instead of cmpib_comparison_operator in cmpib patterns.
3391	* config/pa/predicates.md (cmpib_comparison_operator): Revert removal
3392	of cmpib_comparison_operator.  Revise comment.
3393
33942020-01-01  John David Anglin  <danglin@gcc.gnu.org>
3395
3396	PR target/93111
3397	* config/pa/pa.md (scc): Use ordered_comparison_operator instead of
3398	comparison_operator in B and S integer comparisons.  Likewise, use
3399	ordered_comparison_operator instead of cmpib_comparison_operator in
3400	cmpib patterns.
3401	* config/pa/predicates.md (cmpib_comparison_operator): Remove.
3402
34032019-12-28  Iain Sandoe  <iain@sandoe.co.uk>
3404
3405	Backport from mainline.
3406	2019-12-14 Iain Sandoe <iain@sandoe.co.uk>
3407
3408	* config/darwin.h (DARWIN_EXTRA_SPECS): Add new
3409	bundle spec. (DARWIN_BUNDLE1_SPEC): New.
3410	(STARTFILE_SPEC): Use darwin bundle spec.
3411	* config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New.
3412	(DARWIN_DYLIB1_SPEC): Delete duplicate.
3413
34142019-12-20  Roman Zhuykov  <zhroma@ispras.ru>
3415
3416	Backport from mainline
3417	2019-12-13  Roman Zhuykov  <zhroma@ispras.ru>
3418
3419	PR rtl-optimization/92591
3420	* modulo-sched.c (ps_add_node_check_conflicts): Improve checking
3421	for history > 0 case.
3422	* params.def (sms-dfa-history): Limit to 16.
3423
34242019-12-19  Georg-Johann Lay  <avr@gjlay.de>
3425
3426	Backport support for some AVR devices from avrxmega3 family
3427	from SVN trunk r279309, r278387, r278389, r278478.
3428
3429	PR target/92545
3430	* config/avr/avr-arch.h (avr_mcu_t) <flash_pm_offset>: New field.
3431	* config/avr/avr-devices.c (avr_mcu_types): Adjust initializers.
3432	* config/avr/avr-mcus.def (AVR_MCU): Add respective field.
3433	* config/avr/gen-avr-mmcu-specs.c (print_mcu)
3434	<*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code
3435	for spec definitions.
3436	* config/avr/gen-avr-mmcu-texi.c: Rewrite.
3437	* doc/avr-mmcu.texi: Regenerate.
3438
34392019-12-17  Andreas Krebbel  <krebbel@linux.ibm.com>
3440
3441	Backport from mainline
3442	2019-12-16  Andreas Krebbel  <krebbel@linux.ibm.com>
3443
3444	PR target/92950
3445	* config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy,
3446	and lhrl with llc.
3447
34482019-12-02  Wilco Dijkstra  <wdijkstr@arm.com>
3449
3450	* config/aarch64/aarch64-cores.def (ares): Define.
3451	(cortex-a76): Likewise.
3452	(neoverse-n1): Likewise.
3453	* config/aarch64/aarch64-tune.md: Regenerate.
3454	* doc/invoke.texi (AArch64 Options): Document ares, cortex-a75 and
3455	neoverse-n1.
3456
34572019-11-29  David Malcolm  <dmalcolm@redhat.com>
3458
3459	PR driver/89014
3460	* config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
3461	use-after-free of the result of
3462	aarch64_get_extension_string_for_isa_flags.
3463
34642019-11-21  Jakub Jelinek  <jakub@redhat.com>
3465
3466	PR tree-optimization/91355
3467	* tree-ssa-sink.c (select_best_block): Use >= rather than >
3468	for early_bb scaled count with best_bb count comparison.
3469
3470	Backported from mainline
3471	2019-11-20  Jakub Jelinek  <jakub@redhat.com>
3472
3473	PR middle-end/90840
3474	* expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM
3475	and has a mode that doesn't have corresponding integral type.
3476
3477	PR target/90867
3478	* config/i386/i386.c (ix86_valid_target_attribute_tree): Don't
3479	clear opts->x_ix86_isa_flags{,2} here...
3480	(ix86_valid_target_attribute_inner_p): ... but here when seeing
3481	arch=.  Also clear opts->x_ix86_isa_flags{,2}_explicit.
3482
3483	PR c/90898
3484	* tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove
3485	assertion.
3486	(insert_clobbers_for_var): Fix a typo in function comment.
3487
3488	2019-11-19  Jakub Jelinek  <jakub@redhat.com>
3489
3490	PR middle-end/91450
3491	* internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one
3492	operand is negative and one non-negative, compare the non-negative
3493	one against 0 rather than comparing s1 & s2 against 0.  Otherwise,
3494	don't compare (s1 & s2) == 0, but compare separately both s1 == 0
3495	and s2 == 0, unless one of them is known to be negative.  Remove
3496	tem2 variable, use tem where tem2 has been used before.
3497
3498	2019-11-08  Jakub Jelinek  <jakub@redhat.com>
3499
3500	PR c++/92384
3501	* function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't
3502	copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm
3503	slot.
3504	(assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type
3505	force creation of a unique data.stack_parm slot.
3506
3507	2019-10-17  Jakub Jelinek  <jakub@redhat.com>
3508
3509	PR tree-optimization/92056
3510	* tree-object-size.c (cond_expr_object_size): Return early if then_
3511	processing resulted in unknown size.
3512
3513	2019-09-07  Jakub Jelinek  <jakub@redhat.com>
3514
3515	PR tree-optimization/91665
3516	* tree-vect-loop.c (vectorizable_reduction): Punt if base has type
3517	incompatible with the type of PHI result.
3518
3519	2019-09-06  Jakub Jelinek  <jakub@redhat.com>
3520
3521	* function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
3522	before testing TYPE_TRANSPARENT_AGGR.
3523	* calls.c (initialize_argument_information, load_register_parameters):
3524	Likewise.
3525
3526	2019-09-05  Jakub Jelinek  <jakub@redhat.com>
3527
3528	PR middle-end/91001
3529	PR middle-end/91105
3530	PR middle-end/91106
3531	* calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
3532	types, use type of their first field instead of type of
3533	args[i].tree_value.
3534
3535	2019-09-01  Jakub Jelinek  <jakub@redhat.com>
3536
3537	PR middle-end/91623
3538	* optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
3539	EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
3540	zeros or negative elements and use NE_EXPR instead of LT_EXPR against
3541	zero vector.
3542
35432019-11-20  Peter Bergner <bergner@linux.ibm.com>
3544
3545	Backport from mainline
3546	2019-11-07  Peter Bergner <bergner@linux.ibm.com>
3547
3548	PR other/92090
3549	* config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT
3550	modes for integer constants.
3551
35522019-11-19  Eric Botcazou  <ebotcazou@adacore.com>
3553
3554	* doc/invoke.texi (-gno-internal-reset-location-views): Fix typo.
3555
35562019-11-14  Martin Liska  <mliska@suse.cz>
3557
3558	Backport from mainline
3559	2019-11-14  Martin Liska  <mliska@suse.cz>
3560
3561	PR target/92389
3562	* config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to
3563	PTA_ICELAKE_CLIENT which is later interited by
3564	PTA_ICELAKE_SERVER and PTA_TIGERLAKE.
3565
35662019-11-13  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
3567
3568	Backport from mainline
3569	* config/mips/mips.md (rotr<mode>3): Sanitize the constant argument
3570	instead of asserting its value.
3571
35722019-11-11  H.J. Lu  <hjl.tools@gmail.com>
3573
3574	Backport from trunk:
3575	PR target/87833
3576	* config/i386/intelmic-mkoffload.c (prepare_target_image): Put
3577	-fPIC and -shared the last to create offload image.
3578
35792019-11-11  Thomas Schwinge  <thomas@codesourcery.com>
3580
3581	Backport from trunk:
3582	* gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
3583	of 'offset'.
3584
3585	Backport from trunk:
3586	* Makefile.in (LANG_CONFIGUREFRAGS): Define.
3587	(config.status): Use/depend on it.
3588	* configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'.
3589	* configure: Regenerate.
3590
35912019-11-09  John David Anglin  <danglin@gcc.gnu.org>
3592
3593	Backport from mainline
3594	2019-11-07  John David Anglin  <danglin@gcc.gnu.org>
3595
3596	* config/pa/pa.md (memory_barrier): Revise to use ldcw barriers.
3597	Enhance comment.
3598	(memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New
3599	insn patterns using ldcw instruction.
3600	(memory_barrier): Remove insn pattern using sync instruction.
3601	* config/pa/pa.opt (coherent-ldcw): New option.
3602	(ordered): New option.
3603
36042019-11-08  Eric Botcazou  <ebotcazou@adacore.com>
3605
3606	PR target/92095
3607	* config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare.
3608	* config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest
3609 	change.
3610	(got_helper_needed): New static variable.
3611	(output_load_pcrel_sym): New function.
3612	(get_pc_thunk_name): Remove after inlining...
3613	(load_got_register): ...here.  Rework the initialization of the GOT
3614	register and of the GOT helper.
3615	(save_local_or_in_reg_p): Test the REGNO of the GOT register.
3616	(sparc_file_end): Test got_helper_needed to decide whether the GOT
3617	helper must be emitted.  Use output_asm_insn instead of fprintf.
3618	(sparc_init_pic_reg): In PIC mode, always initialize the PIC register
3619	if optimization is enabled.
3620	* config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly
3621	by calling output_load_pcrel_sym.
3622
36232019-11-06  John David Anglin  <danglin@gcc.gnu.org>
3624
3625	Backport from mainline
3626	2018-09-19  John David Anglin  <danglin@gcc.gnu.org>
3627
3628	PR rtl-optimization/85458
3629	* config/pa/pa.c (pa_adjust_priority): Delete.
3630	(TARGET_SCHED_ADJUST_PRIORITY): Delete define.
3631
36322019-11-05  Segher Boessenkool  <segher@kernel.crashing.org>
3633
3634	Backport from trunk
3635	2019-10-24  Segher Boessenkool  <segher@kernel.crashing.org>
3636
3637	* config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to...
3638	(uavg<mode>3_ceil): ... This.
3639	(altivec_vavgs<VI_char>): Rename to...
3640	(avg<mode>3_ceil): ... This.
3641	* config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH,
3642	VAVGUW, VAVGSW): Adjust.
3643
36442019-11-05  Segher Boessenkool  <segher@kernel.crashing.org>
3645
3646	Backport from trunk
3647	2019-10-26  Segher Boessenkool  <segher@kernel.crashing.org>
3648
3649	PR target/91289
3650	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't add an
3651	immediate to r0; use r11 instead.  Save and restore r11 to r0 around
3652	this.
3653
36542019-11-04  John David Anglin  <danglin@gcc.gnu.org>
3655
3656	Backport from mainline
3657	2019-10-03  John David Anglin  <danglin@gcc.gnu.org>
3658
3659	* config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.
3660
36612019-11-04  John David Anglin  <danglin@gcc.gnu.org>
3662
3663	Backport from mainline
3664	2019-10-03  John David Anglin  <danglin@gcc.gnu.org>
3665
3666	* config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
3667	(pa_attr_length_call): Adjust length for 64-bit plabel sequence.
3668
36692019-11-04 John David Anglin  <danglin@gcc.gnu.org>
3670
3671	Backport from mainline
3672	2019-10-12  John David Anglin  <danglin@gcc.gnu.org>
3673
3674	* config/pa/pa.c (pa_output_call): Load descriptor address to register
3675	%r22.  Load function address before global pointer.
3676	(pa_attr_length_indirect_call): Adjust length of inline versions of
3677	$$dyncall.
3678	(pa_output_indirect_call): Remove fast inline version of $$dyncall
3679	before normal cases.  Update inline $$dyncall sequences to preserve
3680	function descriptor address in register %r22.
3681	(TRAMPOLINE_CODE_SIZE): Adjust.
3682	(pa_asm_trampoline_template): Revise 32-bit trampoline.  Don't assume
3683	register %r22 contains trampoline address.
3684	(pa_trampoline_init): Adjust offsets.
3685	(pa_trampoline_adjust_address): Likewise.
3686	* config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size.
3687
3688	2019-10-17  John David Anglin  <danglin@gcc.gnu.org>
3689
3690	* config/pa/pa.c (pa_output_indirect_call): Fix typos in last change.
3691
36922019-11-1  Delia Burduv  <Delia.Burduv@arm.com>
3693
3694         Backport from trunk
3695         2019-02-20  Andre Vieira <andre.simoesdiasvieira@arm.com>
3696
3697         PR target/86487
3698         * lra-constraints.c(uses_hard_regs_p): Fix handling of
3699         paradoxical SUBREGS.
3700
37012019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
3702
3703	Backport from mainline
3704	2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
3705
3706	* config/darwin.c (machopic_indirection_name): Rework the
3707	function to emit linker-visible symbols only for indirections
3708	in the data section.  Clean up the code and update comments.
3709
37102019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
3711
3712	Backport from mainline
3713	2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
3714
3715	* config/darwin.c (darwin_override_options): Make the check for
3716	Objective-C ABI version more specific for 64bit code.
3717
3718	Backport from mainline
3719	2019-10-06  Iain Sandoe  <iain@sandoe.co.uk>
3720
3721	* config/darwin.c (darwin_override_options): Adjust objective-c
3722	ABI version error messages to avoid punctuation and contracted
3723	negations.
3724
37252019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
3726
3727	Backport from mainline
3728	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
3729
3730	* config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
3731	(STARTFILE_SPEC): Split crt3 into a separate spec.
3732	(DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
3733	(DARWIN_CRT2_SPEC): New.
3734	(DARWIN_CRT3_SPEC): New.
3735	(MIN_LD64_OMIT_STUBS): Revise to 62.1.
3736	* config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
3737	(DARWIN_CRT3_SPEC): New.
3738
37392019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
3740
3741	Backport from mainline
3742	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
3743
3744	* config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
3745	spec.
3746
3747	Backport from mainline
3748	2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>
3749
3750	* config/rs6000/darwin.h (ENDFILE_SPEC): New.
3751
37522019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
3753
3754	Backport from mainline
3755	2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
3756
3757	* config/darwin.c (darwin_emit_unwind_label): New default to false.
3758	(darwin_override_options): Set darwin_emit_unwind_label as needed.
3759
37602019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
3761
3762	Backport from mainline
3763	2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
3764
3765	* config/darwin.c (machopic_indirect_call_target): Rename symbol stub
3766	flag.
3767	(darwin_override_options): Likewise.
3768	* config/darwin.h: Likewise.
3769	* config/darwin.opt: Likewise.
3770	* config/i386/i386.c (output_pic_addr_const): Likewise.
3771	* config/rs6000/darwin.h: Likewise.
3772	* config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
3773	* config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
3774	... this TARGET_MACHO_SYMBOL_STUBS.
3775	(FUNCTION_PROFILER):Likewise.
3776	* config/i386/i386.h: Likewise.
3777
3778	Backport from mainline
3779	2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
3780
3781	* config/darwin.c (machopic_indirect_call_target): Use renamed
3782	darwin_picsymbol_stubs to decide on output.
3783	(darwin_override_options): Handle darwin_picsymbol_stubs.
3784	* config/darwin.h (MIN_LD64_OMIT_STUBS): New.
3785	(LD64_VERSION): Revise default.
3786	* config/darwin.opt: (mpic-symbol-stubs): New option.
3787	(darwin_picsymbol_stubs): New variable.
3788	* config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
3789	rename to TARGET_MACHO_PICSYM_STUBS.
3790	* config/i386/i386.c (output_pic_addr_const): Likewise.
3791	* config/i386/i386.h Likewise.
3792	* config/rs6000/darwin.h: Likewise.
3793	* config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
3794	darwin_picsymbol_stubs.
3795
37962019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
3797
3798	Backport from mainline
3799	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
3800
3801	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
3802	user-specified float mode choice for kernel mode code.
3803
38042019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
3805
3806	Backport from mainline
3807	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
3808
3809	* config/rs6000/darwin.h: Handle GCC target pragma.
3810
38112019-10-30  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
3812
3813	Backport from mainline
3814	2019-07-09  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
3815
3816	* cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
3817	for both call instructions.
3818
38192019-10-28  Iain Sandoe  <iain@sandoe.co.uk>
3820
3821	Backport from mainline
3822	2019-10-17  Iain Sandoe  <iain@sandoe.co.uk>
3823
3824	PR target/65342
3825	* config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
3826	(movdi_low_st): Delete.
3827	* config/rs6000/rs6000.c
3828	(darwin_rs6000_legitimate_lo_sum_const_p): New.
3829	(mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
3830	* config/rs6000/rs6000.md (movsi_low): Delete.
3831
38322019-10-28  Iain Sandoe  <iain@sandoe.co.uk>
3833
3834	Backport from mainline
3835	2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
3836
3837	PR target/67183
3838	* config/darwin.c (machopic_indirection): New field to flag
3839	non-lazy-symbol-pointers in the data section.
3840	(machopic_indirection_name): Compute if an indirection should
3841	appear in the data section.
3842	(machopic_output_data_section_indirection): New callback split
3843	from machopic_output_indirection.
3844	(machopic_output_stub_indirection): Likewise.
3845	(machopic_output_indirection): Retain the code for non-lazy
3846	symbol pointers in their regular section.
3847	(machopic_finish): Use the new callbacks to order the indirection
3848	output.
3849
38502019-10-28  Iain Sandoe  <iain@sandoe.co.uk>
3851
3852	Backport from mainline
3853	2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
3854
3855	* config/darwin-protos.h (machopic_finish): Delete.
3856	* config/darwin.c (machopic_finish): Make static.
3857
3858	Backport from mainline
3859	2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
3860
3861	* config/darwin.c (machopic_indirect_data_reference): Set flag to
3862	indicate that the new symbol is an indirection.
3863	(machopic_indirect_call_target): Likewise.
3864	* config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
3865	(MACHO_SYMBOL_INDIRECTION_P): New.
3866	(MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
3867
3868	Backport from mainline
3869	2019-10-08  Iain Sandoe  <iain@sandoe.co.uk>
3870
3871	* config/darwin.c (machopic_indirect_data_reference): Check for
3872	required indirections before making direct access to defined
3873	values.
3874	(machopic_output_indirection): Place the indirected pointes for
3875	required indirections into the non-lazy symbol pointers section.
3876	(darwin_encode_section_info):
3877	* config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
3878	(MACHO_SYMBOL_MUST_INDIRECT_P): New.
3879
3880	Backport from mainline
3881	2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
3882
3883	* config/darwin.c (machopic_output_indirection): Don't put
3884	hidden symbol indirections into the .data section, use the
3885	non-lazy symbol pointers section as normal.
3886	(darwin_encode_section_info): Record if a symbol is hidden.
3887	* config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
3888	(MACHO_SYMBOL_HIDDEN_VIS_P): New.
3889
3890	Backport from mainline
3891	2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
3892
3893	* config/darwin.c (machopic_symbol_defined_p): Use symbol flag
3894	predicates instead of accessing bits directly.
3895	(machopic_indirect_call_target): Likewise.
3896	(machopic_output_indirection): Likewise.
3897	(darwin_encode_section_info): Improve description.  Use renamed
3898	symbol flags.  Use predicate macros for variables and functions.
3899	* config/darwin.h:
3900	Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
3901	Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
3902	Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
3903	(MACHO_SYMBOL_VARIABLE_P): New.
3904	(MACHO_SYMBOL_DEFINED_P):New.
3905	(MACHO_SYMBOL_STATIC_P): New.
3906	* config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
3907	(SYMBOL_FLAG_SUBT_DEP): New.
3908	* config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
3909
39102019-10-28  Iain Sandoe  <iain@sandoe.co.uk>
3911
3912	Backport from mainline
3913	2019-10-05  Iain Sandoe  <iain@sandoe.co.uk>
3914
3915	PR target/59888
3916	* config/darwin.c (darwin_rodata_section): Add relocation flag,
3917	choose const_data section for constants with relocations.
3918	(machopic_select_section): Pass relocation flag to
3919	darwin_rodata_section ().
3920
39212019-10-28  Iain Sandoe  <iain@sandoe.co.uk>
3922
3923	Backport from mainline
3924	2019-09-21  Iain Sandoe  <iain@sandoe.co.uk>
3925
3926	* config/darwin.c (machopic_legitimize_pic_address): Check
3927	for lra, rather than reload.
3928
39292019-10-28  Peter Bergner <bergner@linux.ibm.com>
3930	    Jiufu Guo  <guojiufu@linux.ibm.com>
3931
3932	PR target/70010
3933	* config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if
3934	the callee explicitly disables some isa_flags the caller is using.
3935
39362019-10-25  Iain Sandoe  <iain@sandoe.co.uk>
3937
3938	* config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN):Guard
3939	against out of range max skip or log values.
3940
39412019-10-25  Richard Earnshaw  <rearnsha@arm.com>
3942
3943	Backport from mainline
3944	2019-05-08  Mihail Ionescu  <mihail.ionescu@arm.com>
3945	    Richard Earnshaw  <rearnsha@arm.com>
3946	PR target/88167
3947	* config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
3948	function.
3949	(thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
3950	(thumb1_compute_save_core_reg_mask): Don't force a spare work
3951	register if both the epilogue and prologue can use call-clobbered
3952	regs.
3953	(thumb1_unexpanded_epilogue): Use
3954	thumb1_epilogue_unused_call_clobbered_lo_regs.  Reverse the logic for
3955	picking temporaries for restoring high regs to match that of the
3956	prologue where possible.
3957	(thumb1_expand_prologue): Add any usable call-clobbered low registers to
3958	the list of work registers.  Detect if the return address is still live
3959	at the end of the prologue and avoid using it for a work register if so.
3960	If the return address is not live, add LR to the list of pushable regs
3961	after the first pass.
3962
39632019-10-23  Peter Bergner  <bergner@linux.ibm.com>
3964
3965	Backport from mainline
3966	2019-10-08  Tulio Magno Quites Machado Filho  <tuliom@linux.ibm.com>
3967
3968	* config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
3969	LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
3970	MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.
3971
39722019-10-23  Richard Biener  <rguenther@suse.de>
3973
3974	Backport from mainline
3975	2019-10-17  Richard Biener  <rguenther@suse.de>
3976
3977	PR debug/91887
3978	* dwarf2out.c (gen_formal_parameter_die): Also try to match
3979	context_die against a DW_TAG_GNU_formal_parameter_pack parent.
3980
3981	2019-09-19  Richard Biener  <rguenther@suse.de>
3982
3983	PR tree-optimization/91812
3984	* tree-ssa-phiprop.c (propagate_with_phi): Do not replace
3985	volatile loads.
3986
3987	2019-09-17  Richard Biener  <rguenther@suse.de>
3988
3989	PR debug/91772
3990	* dwarf2out.c (dwarf2out_late_global_decl): If early dwarf
3991	was missing generate locations only once.
3992
39932019-10-23  Eric Botcazou  <ebotcazou@adacore.com>
3994
3995	PR tree-optimization/92131
3996	* tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
3997	range would be symbolic, drop to varying for any explicit overflow
3998	in the constant part or if neither range is a singleton.
3999
40002019-10-20  Iain Sandoe  <iain@sandoe.co.uk>
4001
4002	Backport from mainline
4003	2019-10-03  Iain Sandoe  <iain@sandoe.co.uk>
4004
4005	PR target/87243
4006	* config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
4007	(darwin_driver_init): Use the sysroot provided by SDKROOT when that
4008	is available and the user has not set one on the command line.
4009
40102019-10-20  Iain Sandoe  <iain@sandoe.co.uk>
4011
4012	Backport from mainline
4013	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
4014
4015	* config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
4016	(RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
4017	(DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
4018	clauses.
4019	(LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
4020	DARWIN_NOPIE_SPEC.
4021
4022	Backport from mainline
4023	2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
4024
4025	* config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
4026	and DARWIN_NOPIE_SPEC.
4027	(RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
4028	(DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
4029	(DARWIN_NOPIE_SPEC): Collate from darwin10.h.
4030	(DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
4031	(DARWIN_EXPORT_DYNAMIC): Delete.
4032	* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
4033	and pie options processing to  darwin.h.
4034	* config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
4035
40362019-10-18  Georg-Johann Lay  <avr@gjlay.de>
4037
4038	Backport from 2019-10-18 trunk r277143.
4039
4040	PR target/86040
4041	* config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
4042
40432019-10-17  Segher Boessenkool  <segher@kernel.crashing.org>
4044
4045	Backport from trunk
4046	2019-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
4047
4048	PR rtl-optimization/89721
4049	* lra-constraints (invariant_p): Return false if side_effects_p holds.
4050
40512019-10-17  Richard Earnshaw  <rearnsha@arm.com>
4052
4053	Backport from mainline
4054	2019-05-03  Richard Earnshaw  <rearnsha@arm.com>
4055
4056	PR target/89400
4057	* config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
4058	Restrict 'all' variant to 32-bit configurations.
4059	(unaligned_loadhiu): Likewise.
4060	(unaligned_storehi): Likewise.
4061	(unaligned_storesi): Likewise.
4062	(unaligned_loadhis): Disable when compiling for thumb1.
4063
40642019-10-14  Will Schmidt  <will_schmidt@vnet.ibm.com>
4065
4066	Backport from trunk
4067	2019-09-26  Will Schmidt <will_schmidt@vnet.ibm.com>
4068
4069	* config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
4070	LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
4071	LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
4072	LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
4073	LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
4074	LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
4075	LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
4076	LD_ELEMREV_V16QI): Use the PURE attribute.
4077
40782019-10-10  Uroš Bizjak  <ubizjak@gmail.com>
4079
4080	PR target/92022
4081	* config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN.
4082
40832019-10-10  Oleg Endo  <olegendo@gcc.gnu.org>
4084
4085	Backport from mainline
4086	2019-10-10  Oleg Endo  <olegendo@gcc.gnu.org>
4087
4088	PR target/88630
4089	* config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
4090	* config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
4091	also for TARGET_FPU_SH4_300.
4092	(sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
4093	TARGET_SH4_300.
4094	* config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
4095	(negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
4096	(*negsf2_i): Split into ...
4097	(negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
4098	(abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
4099	(**abssf2_i): Split into ...
4100	(abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
4101	(negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
4102	(*negdf2_i): Split into ...
4103	(negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
4104	(absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
4105	(**abssf2_i): Split into ...
4106	(absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
4107
41082019-10-07  Bill Schmidt  <wschmidt@linux.ibm.com>
4109
4110	Backport from mainline
4111	2019-10-01  Bill Schmidt  <wschmidt@linux.ibm.com>
4112
4113	PR target/91275
4114	* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap
4115	vpmsumd.
4116
41172019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>
4118
4119	Backport from mainline
4120
4121	2019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>
4122
4123	PR target/88562
4124	* config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
4125	sh_check_add_incdec_notes to preserve REG_INC notes when replacing
4126	a memory access insn.
4127
41282019-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4129
4130	Backport from mainline
4131	2019-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4132
4133	* config/aarch64/aarch64.md (mov<mode>): Don't call
4134	aarch64_split_dimode_const_store on volatile MEM.
4135
41362019-10-01  Eric Botcazou  <ebotcazou@adacore.com>
4137
4138	PR target/91854
4139	Backport from mainline
4140	2019-09-20  Eric Botcazou  <ebotcazou@adacore.com>
4141
4142	PR target/91269
4143	* config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
4144
41452019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
4146
4147	Backport from mainline
4148	2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
4149
4150	PR target/80672
4151	* config/sh/sh.c (parse_validate_atomic_model_option): Use
4152	std::string::compare instead of std::string::find.
4153
41542019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
4155
4156	Backport from mainline
4157	2018-07-15  Jeff Law  <law@redhat.com>
4158
4159	PR target/85993
4160	* config/sh/sh.c (output_mi_thunk): Remove dead conditional
4161	block.
4162
41632019-09-26  Iain Sandoe  <iain@sandoe.co.uk>
4164
4165	Backport from mainline
4166	2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
4167
4168	* config/darwin.opt (prebind, noprebind, seglinkedit,
4169	noseglinkedit): Add RejectNegative.
4170
4171	Backport from mainline
4172	2019-06-14  Iain Sandoe  <iain@sandoe.co.uk>
4173
4174	* config/darwin.opt: Add RejectNegative where needed, reorder
4175	and add minimal functional descriptions.
4176
41772019-09-25  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4178
4179	Backport from mainline
4180	2019-08-22  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4181
4182	* config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
4183	intrinsics if __ARM_FP.
4184	Use __ARM_FEATURE_CRC32 ifdef guard.
4185
41862019-09-23  Max Filippov  <jcmvbkbc@gmail.com>
4187
4188	Backport from mainline
4189	2019-06-18  Max Filippov  <jcmvbkbc@gmail.com>
4190
4191	* config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
4192	pointer adjustment for the case of no callee-saved registers and
4193	stack frame bigger than 128 bytes.
4194
41952019-09-20  John David Anglin  <danglin@gcc.gnu.org>
4196
4197	* config/pa/pa.c (pa_trampoline_init): Remove spurious extended
4198	character.
4199
42002019-09-20  Andreas Krebbel  <krebbel@linux.ibm.com>
4201
4202	Backport from mainline
4203	2019-06-06  Andreas Krebbel  <krebbel@linux.ibm.com>
4204
4205	PR rtl-optimization/88751
4206	* ira.c (ira): Use the number of the actually referenced registers
4207	when calculating the threshold.
4208
42092019-09-11  Eric Botcazou  <ebotcazou@adacore.com>
4210
4211	PR rtl-optimization/89795
4212	* rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
4213	inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
4214
42152019-09-09  Jakub Jelinek  <jakub@redhat.com>
4216
4217	PR target/87853
4218	* config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
4219	instead of __v16qs.
4220
4221	PR target/91704
4222	* config/i386/avxintrin.h (__v32qs): New typedef.
4223	* config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
4224	instead of __v32qi.
4225
42262019-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
4227
4228	Backport from mainline
4229	2019-08-13  Wilco Dijkstra  <wdijkstr@arm.com>
4230
4231	PR target/81800
4232	* gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
4233	operand is larger than a long int.
4234
42352019-09-03  Iain Sandoe  <iain@sandoe.co.uk>
4236
4237	Backport from mainline
4238	2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>
4239
4240	PR pch/61250
4241	* ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
4242	and issue any diagnostics needed before collecting the pre-PCH
4243	state.
4244
42452019-09-01  Eric Botcazou  <ebotcazou@adacore.com>
4246
4247	PR target/91472
4248	* config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
4249	during LRA/reload in PIC mode if the PIC register hasn't been used yet.
4250	(sparc_pic_register_p): Test reload_in_progress for consistency's sake.
4251
42522019-08-30  Richard Biener  <rguenther@suse.de>
4253
4254	Backport from mainline
4255	2019-06-21  Richard Biener  <rguenther@suse.de>
4256
4257	PR tree-optimization/90930
4258	* tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
4259	flag on new stmts to avoid re-processing them.
4260
4261	2019-05-27  Richard Biener  <rguenther@suse.de>
4262
4263	PR tree-optimization/90637
4264	* tree-ssa-sink.c (statement_sink_location): Honor the
4265	computed sink location for single-uses.
4266
42672019-08-30  Richard Biener  <rguenther@suse.de>
4268
4269	Backport from mainline
4270	2019-07-08  Richard Biener  <rguenther@suse.de>
4271
4272	PR tree-optimization/91108
4273	* tree-ssa-sccvn.c: Include builtins.h.
4274	(vn_reference_lookup_3): Use only alignment constraints to
4275	verify same-valued store disambiguation.
4276
42772019-08-30  Segher Boessenkool  <segher@kernel.crashing.org>
4278
4279	Backport from trunk
4280	2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
4281
4282	PR target/91481
4283	* config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
4284	and UNSPEC_DARN_RAW.
4285	(unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
4286	UNSPECV_DARN_RAW.
4287	(darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
4288	(darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
4289	(darn): Use an unspec_volatile, and UNSPECV_DARN.
4290
42912019-08-30  Segher Boessenkool  <segher@kernel.crashing.org>
4292
4293	Backport from trunk
4294	2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
4295
4296	* config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
4297	UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
4298	* config/rs6000/rs6000.md (unspec): ... here.
4299	* config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
4300	*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
4301	cmpeqb, *cmpeqb_internal): Delete, move to...
4302	* config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
4303	*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
4304	cmpeqb, *cmpeqb_internal): ... here.
4305
43062019-08-30  Richard Biener  <rguenther@suse.de>
4307
4308	Backport from mainline
4309	2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
4310
4311	PR middle-end/88567
4312	* tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
4313	output vector directly to duplicate_and_interleave instead of
4314	going through a temporary.  Postpone insertion of ctor_seq to
4315	the end of the loop.
4316
4317	2018-12-04  Richard Biener  <rguenther@suse.de>
4318
4319	PR tree-optimization/88315
4320	* tree-vect-loop.c (get_initial_defs_for_reduction): Simplify
4321	and fix initialization vector for SAD and DOT_PROD SLP reductions.
4322
43232019-08-30  Richard Biener  <rguenther@suse.de>
4324
4325	Backport from mainline
4326	2019-06-18  Richard Biener  <rguenther@suse.de>
4327
4328	PR debug/90900
4329	* cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
4330	as if optimized away.
4331
4332	2019-04-29  Richard Biener  <rguenther@suse.de>
4333
4334	PR tree-optimization/90278
4335	* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
4336	EH on comparison simplification.
4337
4338	2019-04-25  Richard Biener  <rguenther@suse.de>
4339
4340	PR middle-end/90194
4341	* match.pd: Add pattern to simplify view-conversion of an
4342	empty constructor.
4343
43442019-08-30  Richard Biener  <rguenther@suse.de>
4345
4346	Backport from mainline
4347	2019-08-12  Richard Biener  <rguenther@suse.de>
4348
4349	PR lto/91375
4350	* tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
4351	flag_devirtualize.
4352
4353	2019-07-31  Richard Biener  <rguenther@suse.de>
4354
4355	PR tree-optimization/91293
4356	* tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
4357	of reduction stmts.
4358
4359	2019-07-31  Richard Biener  <rguenther@suse.de>
4360
4361	PR tree-optimization/91280
4362	* tree-ssa-structalias.c (get_constraint_for_component_ref):
4363	Decompose MEM_REF manually for offset handling.
4364
4365	2019-07-19  Richard Biener  <rguenther@suse.de>
4366
4367	PR tree-optimization/91200
4368	* tree-ssa-phiopt.c (cond_store_replacement): Check we have
4369	no PHI nodes in middle-bb.
4370
4371	2019-07-15  Richard Biener  <rguenther@suse.de>
4372
4373	PR middle-end/91162
4374	* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
4375	node make sure to replace all uses with something valid.
4376
4377	2019-07-11  Richard Biener  <rguenther@suse.de>
4378
4379	PR middle-end/91131
4380	* gimplify.c (gimplify_compound_literal_expr): Force a temporary
4381	when the object is volatile and we have not cleared it even though
4382	there are no nonzero elements.
4383
4384	2019-07-10  Richard Biener  <rguenther@suse.de>
4385
4386	PR tree-optimization/91126
4387	* tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust
4388	native encoding offset for BYTES_BIG_ENDIAN.
4389
43902019-08-30  Richard Biener  <rguenther@suse.de>
4391
4392	* lto-streamer.h (LTO_minor_version): Bump.
4393
4394	Backport from mainline
4395	2019-05-06  Richard Biener  <rguenther@suse.de>
4396
4397	PR tree-optimization/90328
4398	* tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
4399	* tree-data-ref.c (dr_may_alias_p): Check whether the clique
4400	is valid in the loop nest before using it.
4401	(initialize_data_dependence_relation): Adjust.
4402	* graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
4403	loop as loop-nest to dr_may_alias_p.
4404
4405	2019-03-08  Richard Biener  <rguenther@suse.de>
4406
4407	PR middle-end/89578
4408	* cfgloop.h (struct loop): Add owned_clique field.
4409	* cfgloopmanip.c (copy_loop_info): Copy it.
4410	* tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
4411	cliques.
4412	* tree-inline.c (copy_loops): Remap owned_clique.
4413	* lto-streamer-in.c (input_cfg): Stream owned_clique.
4414	* lto-streamer-out.c (output_cfg): Likewise.
4415
4416	2019-02-22  Richard Biener  <rguenther@suse.de>
4417
4418	PR tree-optimization/87609
4419	* tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
4420
4421	2019-02-22  Richard Biener  <rguenther@suse.de>
4422
4423	PR middle-end/87609
4424	* cfghooks.h (dependence_hash): New typedef.
4425	(struct copy_bb_data): New type.
4426	(cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
4427	(duplicate_block): Likewise.
4428	* cfghooks.c (duplicate_block): Pass down copy_bb_data.
4429	(copy_bbs): Create and pass down copy_bb_data.
4430	* cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
4431	(rtl_duplicate_bb): Likewise.
4432	* tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
4433	remap dependence info.
4434
4435	2019-02-22  Richard Biener  <rguenther@suse.de>
4436
4437	PR tree-optimization/87609
4438	* tree-core.h (tree_base): Document special clique values.
4439	* tree-inline.c (remap_dependence_clique): Do not use the
4440	special clique value of one.
4441	(maybe_set_dependence_info): Use clique one.
4442	(clear_dependence_clique): New callback.
4443	(compute_dependence_clique): Clear clique one from all refs
4444	before assigning it (again).
4445
44462019-08-30  Bin Cheng  <bin.linux@linux.alibaba.com>
4447
4448	Backport from mainline
4449	2019-07-18  Bin Cheng  <bin.linux@linux.alibaba.com>
4450
4451	PR tree-optimization/91137
4452	* tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
4453	(tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
4454	Init, use and fini the above new field.
4455	(determine_base_object_1): New function.
4456	(determine_base_object): Reimplement using walk_tree.
4457
44582019-08-30  Richard Biener  <rguenther@suse.de>
4459
4460	Backport from mainline
4461	2019-04-09  Richard Sandiford  <richard.sandiford@arm.com>
4462
4463	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
4464	use gimple_expr_type for load and store calls.  Skip over the
4465	condition argument in a conditional internal function.
4466	Protect use of TREE_INT_CST_LOW.
4467
4468	2019-04-08  Richard Biener  <rguenther@suse.de>
4469
4470	PR tree-optimization/90006
4471	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
4472	calls like lrint.
4473
4474	2019-04-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
4475
4476	PR tree-optimization/89725
4477	* tree-chrec.c (chrec_contains_symbols): New parameter.  Handle outer
4478	loop's chrec as invariant symbol.
4479	* tree-chrec.h (chrec_contains_symbols): New parameter.
4480	* tree-data-ref.c (analyze_miv_subscript): Pass new argument.
4481	(build_classic_dist_vector_1, add_other_self_distances): Bypass access
4482	function of loops not in DDR's loop_nest.
4483
4484	2019-03-26  Bin Cheng  <bin.cheng@linux.alibaba.com>
4485
4486	PR tree-optimization/81740
4487	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4488	In case of outer loop vectorization, check for backward dependence
4489	at the inner loop if outer loop dependence is reversed.
4490
44912019-08-30  Richard Biener  <rguenther@suse.de>
4492
4493	Backport from mainline
4494	2019-04-24  Richard Biener  <rguenther@suse.de>
4495
4496	PR middle-end/90213
4497	* gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
4498	by size and BITS_PER_UNIT on poly-wide-ints.
4499
4500	2019-04-11  Richard Biener  <rguenther@suse.de>
4501
4502	PR tree-optimization/90020
4503	* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
4504	* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
4505	* tree-ssa-pre.c (compute_avail): Use it to not put
4506	possibly trapping references after a call that might not
4507	return into EXP_GEN.
4508	* gcse.c (compute_hash_table_work): Do not elide
4509	marking a block containing a call if the call might not
4510	return.
4511
45122019-08-29  Iain Sandoe  <iain@sandoe.co.uk>
4513
4514	Backport from mainline
4515	2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>
4516
4517	PR bootstrap/87030
4518	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
4519
4520	PR bootstrap/87030
4521	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
4522	* config/i386/darwin32-biarch.h .. to here.
4523	* config/i386/darwin64-biarch.h: Adjust comments.
4524	* config/rs6000/darwin32-biarch.h: Likewise.
4525	* config/rs6000/darwin64-biarch.h: Likewise.
4526	* config.gcc: Missed commit from r273746
4527	(*-*-darwin*): Don't include CPU t-darwin here.
4528	(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
4529	an error message if i686-darwin configuration is attempted for
4530	Darwin >= 18.
4531
4532	Backport from mainline
4533	2019-07-23  Iain Sandoe  <iain@sandoe.co.uk>
4534
4535	PR bootstrap/87030
4536	* config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
4537	(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
4538	an error message if i686-darwin configuration is attempted for
4539	Darwin >= 18.
4540	(x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
4541	(powerpc-*-darwin*): Use biarch files where needed.
4542	(powerpc64-*-darwin*): Likewise.
4543	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
4544	(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
4545	arch case.
4546	* config/i386/darwin32-biarch.h: New.
4547	* config/i386/darwin64.h: Rename.
4548	* gcc/config/i386/darwin64-biarch.h: To this.
4549	* config/i386/t-darwin: Rename.
4550	* gcc/config/i386/t-darwin32-biarch: To this.
4551	* config/i386/t-darwin64: Rename.
4552	* gcc/config/i386/t-darwin64-biarch: To this.
4553	* config/rs6000/darwin32-biarch.h: New.
4554	* config/rs6000/darwin64.h: Rename.
4555	* config/rs6000/darwin64-biarch.h: To this.
4556	(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
4557	arch case.
4558	* config/rs6000/t-darwin8: Rename.
4559	* config/rs6000/t-darwin32-biarch: To this.
4560	* config/rs6000/t-darwin64 Rename.
4561	* config/rs6000/t-darwin64-biarch: To this.
4562
45632019-08-29  Jakub Jelinek  <jakub@redhat.com>
4564
4565	Backported from mainline
4566	2019-07-30  Jakub Jelinek  <jakub@redhat.com>
4567
4568	PR target/91150
4569	* config/i386/i386.c (expand_vec_perm_blend): Change mask type
4570	from unsigned to unsigned HOST_WIDE_INT.  For E_V64QImode cast
4571	comparison to unsigned HOST_WIDE_INT before shifting it left.
4572
4573	2019-07-04  Jakub Jelinek  <jakub@redhat.com>
4574
4575	PR middle-end/78884
4576	* gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
4577	(gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
4578	loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
4579	(gimplify_adjust_omp_clauses): Add safelen (1) clause if
4580	ctx->add_safelen1 is set.
4581
4582	PR rtl-optimization/90756
4583	* explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
4584	for VECTOR_TYPE_P.
4585
4586	2019-06-12  Jakub Jelinek  <jakub@redhat.com>
4587
4588	PR c/90760
4589	* symtab.c (symtab_node::set_section): Allow being called on aliases
4590	as long as they aren't analyzed yet.
4591
4592	2019-06-05  Jakub Jelinek  <jakub@redhat.com>
4593
4594	PR debug/90733
4595	* var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
4596	with VOIDmode inner operands.
4597
4598	2019-04-19  Jakub Jelinek  <jakub@redhat.com>
4599
4600	PR middle-end/90139
4601	* tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
4602	assign_temp instead of gen_reg_rtx.
4603
46042019-08-27  Iain Sandoe  <iain@sandoe.co.uk>
4605
4606	Backport from mainline
4607	2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
4608
4609	* config/darwin.c (darwin_override_options): Make a final check on PIC
4610	options.
4611
46122019-08-27  Iain Sandoe  <iain@sandoe.co.uk>
4613
4614	Backport from mainline
4615	2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
4616	* config/darwin.c (darwin_override_options): Don't jam symbol stubs
4617	on for kernel code.
4618
46192019-08-27  Iain Sandoe  <iain@sandoe.co.uk>
4620
4621	Backport from mainline
4622	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
4623
4624	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
4625	use longcall for 64b code.
4626
46272019-08-27  Iain Sandoe  <iain@sandoe.co.uk>
4628
4629	Backport from mainline
4630	2019-08-18  Iain Sandoe  <iain@sandoe.co.uk>
4631
4632	* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
4633	for cpu and machine.  Factor 64/32b builtins.
4634
4635	Backport from mainline
4636	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
4637
4638	* config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
4639
46402019-08-25  Iain Sandoe  <iain@sandoe.co.uk>
4641
4642	Backport from mainline
4643	2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
4644
4645	* config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
4646	in computing the number of options to be moved.
4647
4648	Backport from mainline
4649	2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
4650
4651	* config/darwin-driver.c (validate_macosx_version_min): New.
4652	(darwin_default_min_version): Cleanup and validate supplied version.
4653	(darwin_driver_init): Likewise and push cleaned version into opts.
4654
46552019-08-25  Uroš Bizjak  <ubizjak@gmail.com>
4656
4657	PR target/91533
4658	Backport from mainline
4659	2019-06-30  Uroš Bizjak  <ubizjak@gmail.com>
4660
4661	* config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
4662	* config/i386/i386-builtin.def (__builtin_ia32_pabsb):
4663	Use CODE_FOR_ssse3_absv8qi2.
4664	(__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
4665	(__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
4666
46672019-08-23  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
4668
4669	Backport from mainline
4670	2019-08-23  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
4671
4672	* config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
4673	machine mode for unspec_volatile operand.
4674
46752019-08-22  Iain Sandoe  <iain@sandoe.co.uk>
4676
4677	Backport from mainline
4678	2018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
4679
4680	* config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New.
4681
46822019-08-22  Iain Sandoe  <iain@sandoe.co.uk>
4683
4684	Backport from mainline
4685	2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>
4686
4687	* config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
4688
46892019-08-22  Iain Sandoe  <iain@sandoe.co.uk>
4690
4691	Backport from mainline
4692	2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
4693
4694	* config/darwin-c.c (darwin_register_objc_includes): Do not
4695	prepend the sysroot when building gnu-runtime header search
4696	paths.
4697
46982019-08-22  Iain Sandoe  <iain@sandoe.co.uk>
4699
4700	Backport from mainline
4701	2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
4702
4703	* config/darwin.c (darwin_file_end): Use switch_to_section ()
4704	instead of direct output of the asm.
4705
47062019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
4707
4708	PR rtl-optimization/91347
4709	* dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
4710	before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
4711
47122019-08-16  Iain Sandoe  <iain@sandoe.co.uk>
4713
4714	Backport from mainline
4715	2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>
4716
4717	* config/rs6000/rs6000.md (group_end_nop): Emit insn register
4718	names using operand format, rather than hard-wired.
4719	(speculation_barrier): Likewise.
4720
47212019-08-14  Iain Sandoe  <iain@sandoe.co.uk>
4722
4723	Backport from mainline
4724	2018-08-22 Iain Sandoe <iain@sandoe.co.uk>
4725
4726	* config/darwin.h (LINK_COMMAND_SPEC_A): Update lto options
4727	to match gcc/gcc.c.
4728
47292019-08-05  Kito Cheng  <kito.cheng@sifive.com>
4730
4731	Backport from mainline
4732	2019-08-05  Kito Cheng  <kito.cheng@sifive.com>
4733
4734	* config/riscv/riscv.c (riscv_promote_function_mode): New.
4735	(TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
4736
47372019-08-04  Segher Boessenkool  <segher@kernel.crashing.org>
4738
4739	Backport from trunk
4740	2019-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
4741
4742	* config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
4743	correct numbers for TFHAR, TFIAR, TEXASR.
4744
47452019-07-23  Matthew Beliveau  <mbelivea@redhat.com>
4746
4747	Backported from mainline
4748	2019-07-16  Jeff Law  <law@redhat.com>
4749
4750	PR rtl-optimization/91173
4751	* tree-ssa-address.c (addr_for_mem_ref): If the base is an
4752	SSA_NAME with a constant value, fold its value into the offset
4753	and clear the base before calling gen_addr_rtx.
4754	* g++.dg/pr91173.C: New test.
4755
47562019-07-23  Richard Biener  <rguenther@suse.de>
4757
4758	PR debug/91231
4759	* lto-streamer-in.c (input_function): Drop inline-entry markers
4760	that ended up with an unknown location block.
4761
47622019-07-22  Martin Liska  <mliska@suse.cz>
4763
4764	Backport from mainline
4765	2019-07-22  Martin Liska  <mliska@suse.cz>
4766
4767	PR driver/91172
4768	* opts-common.c (decode_cmdline_option): Decode
4769	argument of -Werror and check it for a wrong language.
4770	* opts-global.c (complain_wrong_lang): Remove such case.
4771
47722019-07-21  Richard Sandiford  <richard.sandiford@arm.com>
4773
4774	Backport from mainline
4775	2019-07-10  Richard Sandiford  <richard.sandiford@arm.com>
4776
4777	* fold-const.c (fold_relational_const): Fix folding of
4778	vector-to-scalar NE_EXPRs.
4779	(test_vector_folding): Add more tests.
4780
47812019-07-19  Jason Merrill  <jason@redhat.com>
4782
4783	PR c++/82081 - tail call optimization breaks noexcept
4784	* tree-tailcall.c (find_tail_calls): Don't turn a call from a
4785	nothrow function to a might-throw function into a tail call.
4786
47872019-07-16  Wilco Dijkstra  <wdijkstr@arm.com>
4788
4789	Backport from mainline
4790	PR target/89222
4791	* config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
4792	to decide when to split off a non-zero offset from a symbol.
4793	* config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
4794	in function symbols.
4795
47962019-07-16  Wilco Dijkstra  <wdijkstr@arm.com>
4797
4798	Backport from mainline
4799	2019-02-13  Wilco Dijkstra  <wdijkstr@arm.com>
4800	PR target/89190
4801	* config/arm/arm.c (ldm_stm_operation_p) Set
4802	addr_reg_in_reglist correctly for first register.
4803	(load_multiple_sequence): Remove dead base check.
4804	(gen_ldm_seq): Correctly set write_back for Thumb-1.
4805
48062019-07-15  Andreas Krebbel  <krebbel@linux.ibm.com>
4807
4808	Backport from mainline
4809	2019-07-01  Andreas Krebbel  <krebbel@linux.ibm.com>
4810
4811	* config/s390/vector.md: Fix shift count operand printing.
4812
48132019-07-15  Wilco Dijkstra  <wdijkstr@arm.com>
4814
4815	Backport from mainline
4816	2019-01-23  Bin Cheng  <bin.cheng@arm.com>
4817		    Steve Ellcey  <sellcey@marvell.com>
4818
4819	PR target/85711
4820	* recog.c (address_operand): Return false on wrong mode for address.
4821	(constrain_operands): Check for mode with 'p' constraint.
4822
48232019-07-12  Eric Botcazou  <ebotcazou@adacore.com>
4824
4825	PR rtl-optimization/91136
4826	* df-core.c (ACCESSING REFS): Fix typos in comment.
4827	* resource.c (mark_target_live_reg): Add artificial defs that occur at
4828	the beginning of the block to the initial set of live registers.
4829
48302019-07-04  Martin Liska  <mliska@suse.cz>
4831
4832	Backport from mainline
4833	2019-07-03  Martin Liska  <mliska@suse.cz>
4834
4835	PR middle-end/90899
4836	* multiple_target.c (create_dispatcher_calls): Add to comdat
4837	group only if set for ifunc.
4838
48392019-06-28  Jeff Law  <law@redhat.com>
4840
4841	Backport from mainline
4842	2019-06-21  Jeff Law  <law@redhat.com>
4843
4844	PR tree-optimization/90949
4845	* tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
4846	* tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
4847
48482019-06-26  Martin Jambor  <mjambor@suse.cz>
4849
4850	Backport from mainline
4851	2019-06-25  Martin Jambor  <mjambor@suse.cz>
4852
4853	PR ipa/90939
4854	* ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
4855
48562019-06-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4857
4858	Backport from mainline
4859	2019-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4860
4861	* configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
4862	alternative Solaris 11.4 format.
4863	* configure: Regenerate.
4864
48652019-06-16  Jeff Law  <law@redhat.com>
4866
4867	Backport from mainline
4868	2019-06-16  Prachi Godbole  <prachi.godbole@imgtec.com>
4869		    Robert Suchanek  <robert.suchanek@mips.com>
4870	* config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
4871	and 3rd operands of the fmadd/fmsub/maddv builtin.
4872
48732019-06-16  John David Anglin  <danglin@gcc.gnu.org>
4874
4875	PR middle-end/64242
4876	* config/pa/pa.md (nonlocal_goto): Restore frame pointer last.  Add
4877	frame clobbers and schedule block.
4878	(builtin_longjmp): Likewise.
4879
48802019-06-11  Jakub Jelinek  <jakub@redhat.com>
4881
4882	PR target/90811
4883	* config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
4884	instead of and.u%d.
4885
48862019-06-07  John David Anglin  <danglin@gcc.gnu.orig>
4887
4888	PR target/90751
4889	* config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
4890	Call pa_output_function_label.
4891	(TARGET_ASM_FUNCTION_PROLOGUE): define.
4892	* config/pa/pa-protos.h (pa_output_function_label): Declare.
4893	* config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
4894	to declaration.
4895	(pa_linux_output_function_prologue): Declare.
4896	(TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
4897	(pa_output_function_label): New.
4898	(pa_output_function_prologue): Revise to use pa_output_function_label.
4899	(pa_linux_output_function_prologue): New.
4900	* config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
4901
49022019-06-07  Iain Sandoe  <iain@sandoe.co.uk>
4903
4904	Backport from mainline.
4905	2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
4906
4907	PR target/82920
4908	* config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
4909	Darwin.
4910
49112019-06-07  Iain Sandoe  <iain@sandoe.co.uk>
4912
4913	Backport from mainline.
4914	2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
4915
4916	PR target/82920
4917	* config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
4918	(ix86_output_indirect_branch_via_reg): Use output mechanism
4919	accounting for __USER_LABEL_PREFIX__.
4920	(ix86_output_indirect_branch_via_push): Likewise.
4921	(ix86_output_function_return): Likewise.
4922	(ix86_output_indirect_function_return): Likewise.
4923
49242019-05-30  Jakub Jelinek  <jakub@redhat.com>
4925
4926	* tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
4927	to length.
4928
49292019-05-29  Jakub Jelinek  <jakub@redhat.com>
4930
4931	PR fortran/90329
4932	* lto-streamer.h (LTO_minor_version): Bump to 2.
4933
4934	Backported from mainline
4935	2019-05-16  Jakub Jelinek  <jakub@redhat.com>
4936
4937	PR fortran/90329
4938	* tree-core.h (struct tree_decl_common): Document
4939	decl_nonshareable_flag for PARM_DECLs.
4940	* tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
4941	* calls.c (expand_call): Don't try tail call if caller
4942	has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
4943	passed on the stack and callee needs to pass any arguments on the
4944	stack.
4945	* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
4946	else if instead of series of mutually exclusive ifs.  Handle
4947	DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
4948	* tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
4949
49502019-05-28  John David Anglin  <danglin@gcc.gnu.org>
4951
4952	* config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
4953
49542019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4955
4956	* dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
4957	and DW_OP_GNU_const_index opcodes.
4958
49592019-05-24  John David Anglin  <danglin@gcc.gnu.org>
4960
4961	PR target/90530
4962	* config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
4963	DImode to SImode in floating-point registers on 64-bit target.
4964	* config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
4965	register_operand in xmpyu patterns.
4966
49672019-05-24  Martin Liska  <mliska@suse.cz>
4968
4969	Backport from mainline
4970	2019-05-23  Martin Liska  <mliska@suse.cz>
4971
4972	PR sanitizer/90570
4973	* gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
4974	expression similarly to gimplify_decl_expr.
4975
49762019-05-23  Uroš Bizjak  <ubizjak@gmail.com>
4977
4978	Backport from mainline
4979	2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>
4980
4981	* config/i386/cpuid.h (__cpuid): For 32bit targets, zero
4982	%ebx and %ecx bafore calling cpuid with leaf 1 or
4983	non-constant leaf argument.
4984
4985	2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>
4986
4987	PR target/90547
4988	* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
4989	Avoid calling gen_lowpart with CONST operand.
4990
49912019-05-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4992
4993	Backported from mainline
4994	2019-05-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4995
4996	* config/arm/t-rtems: Replace ARMv7-M multilibs with Cortex-M
4997	multilibs.
4998
49992019-05-20  Jeff Law  <law@redhat.com>
5000
5001	Backport from mainline
5002	2019-05-17  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
5003
5004	* config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
5005	TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
5006	and fpxx modes.
5007
50082019-05-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5009
5010	Backport from mainline.
5011	2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5012
5013	PR target/89765
5014	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5015	In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
5016	to compute vector element selector for both constant and variable
5017	operands.
5018
50192019-05-15  David Edelsohn  <dje.gcc@gmail.com>
5020
5021	Backport from mainline
5022	2019-04-11  David Edelsohn  <dje.gcc@gmail.com>
5023	* xcoffout.h (xcoff_private_rodata_section_name): Declare.
5024	* xcoffout.c (xcoff_private_rodata_section_name): Define.
5025	* config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
5026	read_only_private_data_section using coff_private_rodata_section_name.
5027	(rs6000_xcoff_file_start): Generate coff_private_rodata_section_name.
5028
5029	2018-12-04  David Edelsohn  <dje.gcc@gmail.com>
5030	2018-12-13  David Edelsohn  <dje.gcc@gmail.com>
5031	PR target/61976
5032	* config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates
5033	in FPRs on AIX. Ensure type is non-NULL.
5034	(rs6000_arg_partial_bytes): Same.
5035
50362019-05-14  Martin Liska  <mliska@suse.cz>
5037
5038	Backport from mainline
5039	2019-05-13  Martin Liska  <mliska@suse.cz>
5040
5041	PR gcov-profile/90380
5042	* gcov.c (handle_cycle): Do not support zero cycle count,
5043	it should not be possible.
5044	(path_contains_zero_cycle_arc): New function.
5045	(circuit): Ignore zero cycle arc counts.
5046
50472019-05-14  Martin Liska  <mliska@suse.cz>
5048
5049	Backport from mainline
5050	2019-05-13  Martin Liska  <mliska@suse.cz>
5051
5052	PR gcov-profile/90380
5053	* gcov.c (enum loop_type): Remove the enum and
5054	the operator.
5055	(handle_cycle): Assert that we should not reach
5056	a negative count.
5057	(circuit): Use loop_found instead of a tri-state loop_type.
5058	(get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
5059	happen.
5060
50612019-05-11  Andreas Tobler <andreast@gcc.gnu.org>
5062
5063	Backport from mainline.
5064	2019-04-25  Andreas Tobler  <andreast@gcc.gnu.org>
5065
5066	* config/i386/freebsd64.h: Add bits for 32-bit multilib support.
5067	* config/i386/t-freebsd64: New file.
5068	* config.gcc: Add the t-freebsd64 for multilib support.
5069
50702019-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5071
5072	Backport from mainline.
5073	2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5074
5075	PR target/89424
5076	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
5077	handling of V1TImode.
5078
50792019-05-06  Richard Biener  <rguenther@suse.de>
5080
5081	PR bootstrap/90359
5082	Backport from mainline
5083	2019-03-11  Jakub Jelinek  <jakub@redhat.com>
5084
5085	PR middle-end/89655
5086	PR bootstrap/89656
5087	* vr-values.c (vr_values::update_value_range): If
5088	old_vr->varying_p (), don't update it, make new_vr also VARYING
5089	and return false.
5090
50912019-05-03  Richard Biener  <rguenther@suse.de>
5092
5093	Backport from mainline
5094	2019-03-14  Richard Biener  <rguenther@suse.de>
5095
5096	PR middle-end/89698
5097	* fold-const.c (operand_equal_p): For INDIRECT_REF check
5098	that the access types are similar.
5099
5100	2019-03-07  Richard Biener  <rguenther@suse.de>
5101
5102	PR tree-optimization/89595
5103	* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
5104	stmt iterator as reference, take boolean output parameter to
5105	indicate whether the stmt was removed and thus the iterator
5106	already advanced.
5107	(dom_opt_dom_walker::before_dom_children): Re-iterate over
5108	stmts created by folding.
5109
5110	2019-03-14  Richard Biener  <rguenther@suse.de>
5111
5112	PR tree-optimization/89710
5113	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
5114	safe_dyn_cast.
5115
5116	2019-04-15  Richard Biener  <rguenther@suse.de>
5117
5118	PR tree-optimization/90071
5119	* tree-ssa-reassoc.c (init_range_entry): Do not pick up
5120	abnormal operands from def stmts.
5121
5122	2018-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5123
5124	PR target/86984
5125	* expr.c (expand_assignment): Assert that bitpos is positive.
5126	(store_field): Likewise
5127	(expand_expr_real_1): Make sure that bitpos is positive.
5128	* config/alpha/alpha.h (CONSTANT_ADDRESS_P): Avoid signed
5129	integer overflow.
5130
5131	2019-03-14  Richard Biener  <rguenther@suse.de>
5132
5133	PR target/89711
5134	* config/i386/i386.c (make_resolver_func): Properly set
5135	DECL_CONTEXT on the RESULT_DECL.
5136	* config/rs6000/rs6000.c (make_resolver_func): Likewise.
5137
51382019-04-30  Jakub Jelinek  <jakub@redhat.com>
5139
5140	Backported from mainline
5141	2019-04-24  Jakub Jelinek  <jakub@redhat.com>
5142
5143	PR target/90193
5144	* rtl.c (classify_insn): Return JUMP_INSN for asm goto.
5145	* emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
5146
5147	PR target/90187
5148	* config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
5149	a register if both if_true and if_false are MEMs.
5150
5151	PR tree-optimization/90208
5152	* tree-cfg.c (remove_bb): Move forced labels from removed bbs
5153	after labels of new_bb, not before them.
5154
5155	2019-04-16  Jakub Jelinek  <jakub@redhat.com>
5156
5157	PR rtl-optimization/90082
5158	* dce.c (can_delete_call): New function.
5159	(deletable_insn_p, mark_insn): Use it.
5160
5161	PR tree-optimization/90090
5162	* tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
5163	throw internally.
5164	(is_division_by_square): Likewise.  Formatting fix.
5165
5166	2019-04-12  Jakub Jelinek  <jakub@redhat.com>
5167
5168	PR rtl-optimization/89965
5169	* dce.c: Include rtl-iter.h.
5170	(struct check_argument_load_data): New type.
5171	(check_argument_load): New function.
5172	(find_call_stack_args): Check for loads from stack slots still tracked
5173	in sp_bytes and punt if any is found.
5174
5175	PR c/89946
5176	* varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
5177	and gcc_unreachable if it fails, just call tree_to_uhwi which
5178	verifies that too.  Test TREE_CHAIN instead of list_length > 1.
5179	Start warning message with a lower-case letter.  Formatting fixes.
5180
5181	PR rtl-optimization/90026
5182	* cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
5183	successors, look for BARRIERs inside of the whole BB_FOOTER chain
5184	rather than just at the start of it.  If e->src BB_FOOTER is not NULL
5185	in cfglayout mode, use emit_barrier_after_bb.
5186
5187	2019-04-11  Jakub Jelinek  <jakub@redhat.com>
5188
5189	PR rtl-optimization/89965
5190	* dce.c (sp_based_mem_offset): New function.
5191	(find_call_stack_args): Use sp_based_mem_offset.
5192
5193	2019-04-10  Jakub Jelinek  <jakub@redhat.com>
5194
5195	PR c++/90010
5196	* gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
5197	with strlen in between hostsz-3 and hostsz-1 inclusive when no
5198	translation is needed, and when translation is needed, only append
5199	... if the string length is hostsz or more bytes long.  Avoid using
5200	strncpy or strcat.
5201
5202	2019-04-09  Jakub Jelinek  <jakub@redhat.com>
5203
5204	PR tree-optimization/89998
5205	* gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
5206	instead of integer_type_node if possible, don't add ranges if return
5207	type is not compatible with int.
5208	* gimple-fold.c (gimple_fold_builtin_sprintf,
5209	gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
5210	integer_type_node.
5211
5212	2019-03-29  Jakub Jelinek  <jakub@redhat.com>
5213
5214	PR c/89872
5215	* gimplify.c (gimplify_compound_literal_expr): Don't optimize a
5216	non-addressable complit into its initializer if it is volatile.
5217
5218	2019-03-28  Jakub Jelinek  <jakub@redhat.com>
5219
5220	PR middle-end/89621
5221	* tree-inline.h (struct copy_body_data): Add
5222	dont_remap_vla_if_no_change flag.
5223	* tree-inline.c (remap_type_3, remap_type_2): New functions.
5224	(remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
5225	and remap_type_2 returns false.
5226	* omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
5227
5228	2019-03-20  Jakub Jelinek  <jakub@redhat.com>
5229
5230	PR target/89752
5231	* lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
5232	update this_alternative nor this_alternative_set.
5233
5234	2019-03-19  Jakub Jelinek  <jakub@redhat.com>
5235
5236	PR rtl-optimization/89768
5237	* loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
5238	instead of GEN_INT.
5239	(unroll_loop_runtime_iterations): Likewise.
5240
5241	PR target/89752
5242	* gimplify.c (gimplify_asm_expr): For output argument with
5243	TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
5244	diagnose error.
5245
5246	PR target/89726
5247	* config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
5248	compensation use x2 += 1 instead of x2 -= -1 and when honoring
5249	signed zeros, do another copysign after the compensation.
5250
5251	2019-03-15  Jakub Jelinek  <jakub@redhat.com>
5252
5253	PR debug/89704
5254	* dwarf2out.c (add_const_value_attribute): Return false for MINUS,
5255	SIGN_EXTEND and ZERO_EXTEND.
5256
5257	2019-03-14  Jakub Jelinek  <jakub@redhat.com>
5258
5259	PR ipa/89684
5260	* multiple_target.c (create_dispatcher_calls): Change
5261	references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
5262	In the node->iterate_referring loop, push *ref rather than ref, call
5263	ref->remove_reference () and always pass 0 to iterate_referring.
5264
5265	PR rtl-optimization/89679
5266	* expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
5267	would contain a paradoxical SUBREG.
5268
5269	PR tree-optimization/89703
5270	* tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
5271	aren't compatible also with builtin_decl_explicit.  Check pure
5272	or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
5273	and BUILT_IN_STPNCPY{,_CHK}.
5274
5275	2019-03-13  Jakub Jelinek  <jakub@redhat.com>
5276
5277	PR debug/89498
5278	* dwarf2out.c (size_of_die): For dw_val_class_view_list always use
5279	DWARF_OFFSET_SIZE.
5280	(value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
5281
5282	PR middle-end/88588
5283	* omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
5284	(ipa_simd_modify_function_body): Handle PHIs.
5285
5286	2019-03-12  Jakub Jelinek  <jakub@redhat.com>
5287
5288	PR middle-end/89663
5289	* builtins.c (expand_builtin_int_roundingfn,
5290	expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
5291	gcc_unreachable if validate_arglist fails.
5292
5293	2019-03-09  Jakub Jelinek  <jakub@redhat.com>
5294
5295	PR c/88568
5296	* attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
5297	dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
5298
5299	2019-03-05  Jakub Jelinek  <jakub@redhat.com>
5300
5301	PR target/89587
5302	* config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
5303	if_multiarch.
5304
5305	PR middle-end/89590
5306	* builtins.c (maybe_emit_free_warning): Punt if free doesn't have
5307	exactly one argument.
5308
5309	2019-02-28  Jakub Jelinek  <jakub@redhat.com>
5310
5311	PR c/89520
5312	* convert.c (convert_to_real_1, convert_to_integer_1): Punt for
5313	builtins if they don't have a single scalar floating point argument.
5314	Formatting fixes.
5315
5316	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
5317
5318	PR middle-end/89412
5319	* expr.c (expand_assignment): If result is a MEM, use change_address
5320	instead of simplify_gen_subreg.
5321
5322	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
5323		    David Malcolm  <dmalcolm@redhat.com>
5324
5325	PR middle-end/89091
5326	* fold-const.c (decode_field_reference): Return NULL_TREE if
5327	lang_hooks.types.type_for_size returns NULL.  Check it before
5328	overwriting *exp_.  Use return NULL_TREE instead of return 0.
5329
5330	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
5331
5332	PR middle-end/88074
5333	PR middle-end/89415
5334	* toplev.c (do_compile): Double the emin/emax exponents to workaround
5335	buggy mpc_norm.
5336
5337	2019-02-19  Richard Biener  <rguenther@suse.de>
5338
5339        PR middle-end/88074
5340	* toplev.c (do_compile): Initialize mpfr's exponent range
5341	based on available float modes.
5342
53432019-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5344
5345	Backport from mainline.
5346	2019-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5347	PR target/86538
5348	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
5349	Define __ARM_FEATURE_ATOMICS.
5350
53512019-04-30  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
5352
5353	Backport from mainline
5354	2018-12-11  Richard Earnshaw  <Richard.Earnshaw@arm.com>
5355
5356	PR target/37369
5357	* config/aarch64/iterators.md (sizem1): Add sizes for
5358	SFmode and DFmode.
5359	(Vbtype): Add SFmode mapping.
5360	* config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete.
5361	(copysign<GPF:mode>3): New expand pattern.
5362	(copysign<GPF:mode>3_insn): New insn pattern.
5363
53642019-04-29  Richard Sandiford  <richard.sandiford@arm.com>
5365
5366	Backport from mainline:
5367	2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
5368
5369	PR middle-end/89037
5370	* varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
5371	instead of accessing TREE_INT_CST_ELT directly.
5372
53732019-04-29  Richard Sandiford  <richard.sandiford@arm.com>
5374
5375	Backport from mainline:
5376	2018-08-23  Richard Sandiford  <richard.sandiford@arm.com>
5377
5378	PR target/85910
5379	* config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Fix
5380	aarch64_evpc_tbl guard.
5381
53822019-04-29  Richard Sandiford  <richard.sandiford@arm.com>
5383
5384	Backport from mainline:
5385	2019-03-08  Richard Sandiford  <richard.sandiford@arm.com>
5386
5387	PR debug/89631
5388	* dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
5389	instead of POLY_INT_CST.
5390
53912019-04-26  Roman Zhuykov  <zhroma@ispras.ru>
5392
5393	Backport from mainline
5394	2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>
5395
5396	PR rtl-optimization/87979
5397	* modulo-sched.c (sms_schedule): Start ii value "mii" should
5398	not equal zero.
5399
5400	PR rtl-optimization/84032
5401	* modulo-sched.c (ps_insn_find_column): Change condition so that
5402	branch will always be the last insn in a row inside partial
5403	schedule.
5404
54052019-04-19  Pat Haugen  <pthaugen@us.ibm.com>
5406
5407	Backport from mainline:
5408	2019-04-16  Pat Haugen  <pthaugen@us.ibm.com>
5409
5410	PR target/84369
5411	* config/rs6000/power9.md: Add store forwarding bypass.
5412
54132019-04-17  Martin Jambor  <mjambor@suse.cz>
5414
5415	Backport from mainline
5416	2019-03-10  Martin Jambor  <mjambor@suse.cz>
5417
5418        PR tree-optimization/85762
5419        PR tree-optimization/87008
5420        PR tree-optimization/85459
5421        * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
5422        it points to if there is a type changing MEM_REF.  Adjust all callers.
5423        (build_accesses_from_assign): Disable total scalarization if
5424        contains_vce_or_bfcref_p returns true through the new parameter, for
5425        both rhs and lhs.
5426
54272019-04-17  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5428
5429	Backport from mainline
5430	2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5431
5432	PR target/87532
5433	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5434	When handling vec_extract, use modular arithmetic to allow
5435	constant selectors greater than vector length.
5436	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
5437	V1TImode vectors to have constant selector values greater than 0.
5438	Use modular arithmetic to compute vector index.
5439	(rs6000_split_vec_extract_var): Use modular arithmetic to compute
5440	index for in-memory vectors.  Correct code generation for
5441	in-register vectors.  Use inner mode of vector rather than mode of
5442	destination for move instruction.
5443	(altivec_expand_vec_ext_builtin): Use modular arithmetic to
5444	compute index.
5445
5446	2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5447
5448	PR target/87532
5449	* config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
5450	Use QI inner mode with V16QI vector mode.
5451
54522019-04-15  Martin Jambor  <mjambor@suse.cz>
5453
5454	Backport from mainline
5455	2019-04-15  Martin Jambor  <mjambor@suse.cz>
5456
5457	PR ipa/89693
5458	* cgraph.c (clone_of_p): Loop over clone chain for each step in
5459	the thunk chain.
5460
54612019-04-15  Martin Liska  <mliska@suse.cz>
5462
5463	Backport from mainline
5464	2019-01-18  Martin Liska  <mliska@suse.cz>
5465		    Richard Biener  <rguenther@suse.de>
5466
5467	PR middle-end/88587
5468	* cgraph.h (create_version_clone_with_body): Add new argument
5469	with attributes.
5470	* cgraphclones.c (cgraph_node::create_version_clone): Add
5471	DECL_ATTRIBUTES to a newly created decl.  And call
5472	valid_attribute_p so that proper cl_target_optimization_node
5473	is set for the newly created declaration.
5474	* multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
5475	for declaration.
5476	(expand_target_clones): Do not call valid_attribute_p, it must
5477	be already done.
5478	* tree-inline.c (copy_decl_for_dup_finish): Reset mode for
5479	vector types.
5480
54812019-04-11  Richard Biener  <rguenther@suse.de>
5482
5483	PR tree-optimization/90018
5484	* tree-vect-data-refs.c (vect_preserves_scalar_order_p):
5485	Test both SLP and interleaving variants.
5486
54872019-04-10  Matthew Malcomson  <matthew.malcomson@arm.com>
5488
5489	PR target/90024
5490	* config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
5491	* config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
5492	into three.
5493	* config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
5494	differences directly.
5495	(*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
5496
54972019-04-07  Uroš Bizjak  <ubizjak@gmail.com>
5498
5499	PR target/89945
5500	* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
5501	Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
5502
55032019-04-04  Martin Sebor  <msebor@redhat.com>
5504
5505	PR middle-end/89934
5506	* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
5507	out if the number of arguments is less than expected.
5508
55092019-04-03  Richard Biener  <rguenther@suse.de>
5510
5511	PR lto/89896
5512	* lto-wrapper.c (run_gcc): Avoid implicit rules making
5513	the all target phony.
5514
55152019-04-02  Uroš Bizjak  <ubizjak@gmail.com>
5516
5517	PR target/89902
5518	PR target/89903
5519	* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
5520	Return false for variable DImode shifts.
5521	(dimode_scalar_chain::compute_convert_gain): Do not handle
5522	register count operand in variable DImode shifts.
5523	(dimode_scalar_chain::make_vector_copies): Remove support to copy
5524	count argument of a variable shift instruction to a vector register.
5525	(dimode_scalar_chain::convert_reg): Remove support to convert
5526	count argument of a variable shift instruction.
5527
55282019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
5529
5530	Backport from mainline
5531	2019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
5532		    Eric Botcazou  <ebotcazou@adacore.com>
5533
5534	PR rtl-optimization/89862
5535	* rtl.h (word_register_operation_p): Exclude CONST_INT from operations
5536	that operates on the full registers for WORD_REGISTER_OPERATIONS
5537	architectures.
5538
55392019-03-28  Uroš Bizjak  <ubizjak@gmail.com>
5540
5541	PR target/89848
5542	* config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
5543	Also process XEXP (src, 0) of a shift insn.
5544
55452019-03-28  Martin Liska  <mliska@suse.cz>
5546
5547	Backport from mainline
5548	2018-11-05  Martin Liska  <mliska@suse.cz>
5549
5550	PR web/87829
5551	* doc/invoke.texi: Remove options that are
5552	not disabled with -Os.
5553
55542019-03-26  Uroš Bizjak  <ubizjak@gmail.com>
5555
5556	PR target/89827
5557	* config/i386/i386.c (dimode_scalar_chain::convert_reg):
5558	Also process XEXP (src, 0) of a shift insn.
5559
55602019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>
5561
5562	Backport from mainline
5563	2019-03-20  Andreas Krebbel  <krebbel@linux.ibm.com>
5564
5565	PR target/89775
5566	* config/s390/s390.c (global_not_special_regno_p): Move to make it
5567	available to ...
5568	(s390_optimize_register_info): Use global_not_special_regno_p to
5569	check for global regs.
5570
55712019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>
5572
5573	Backport from mainline
5574	2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>
5575
5576	* config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
5577
55782019-03-21  Bill Schmidt  <wschmidt@linux.ibm.com>
5579
5580        Backport from mainline
5581        2019-03-08  Bill Schmidt  <wschmidt@linux.ibm.com>
5582
5583        * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
5584        ud- and du-chains between phases.
5585
55862019-03-19  Richard Biener  <rguenther@suse.de>
5587
5588	PR debug/88389
5589	* opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
5590
55912019-03-19  Eric Botcazou  <ebotcazou@adacore.com>
5592
5593	PR rtl-optimization/89753
5594	* loop-unroll.c (decide_unroll_constant_iterations): Make guard for
5595	explicit unrolling factor even more robust.
5596
55972019-03-18  Martin Sebor  <msebor@redhat.com>
5598
5599	PR middle-end/88273
5600	* gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
5601	Handle anti-ranges the same as no range at all.
5602
56032019-03-18  Martin Jambor  <mjambor@suse.cz>
5604
5605	Backport from mainline
5606	2019-03-18  Martin Jambor  <mjambor@suse.cz>
5607
5608	PR tree-optimization/89546
5609	* tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
5610	any propagation to its children took place.
5611
56122019-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5613
5614	Backport from mainline
5615	2019-03-14  H.J. Lu  <hongjiu.lu@intel.com>
5616
5617	PR target/89523
5618	* config/i386/i386.c (ix86_print_operand): Handle 'M' to add
5619	addr32 prefix to VSIB address for X32.
5620	* config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
5621	"%M2" to opcode.
5622	(*avx512pf_gatherpf<mode>df_mask): Likewise.
5623	(*avx512pf_scatterpf<mode>sf_mask): Likewise.
5624	(*avx512pf_scatterpf<mode>df_mask): Likewise.
5625	(*avx2_gathersi<mode>): Prepend "%M3" to opcode.
5626	(*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
5627	(*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
5628	(*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
5629	(*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
5630	(*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
5631	(*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
5632	(*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
5633	(*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
5634	(*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
5635	(*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
5636	(*avx512f_scatterdi<mode>): Likewise.
5637
56382019-03-15  Richard Biener  <rguenther@suse.de>
5639
5640	Backport from mainline
5641	2018-11-30  Jakub Jelinek  <jakub@redhat.com>
5642
5643	PR testsuite/85368
5644	* params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param.
5645	* tree-ssa-ifcombine.c (ifcombine_ifandif): If
5646	--param logical-op-non-short-circuit is present, override
5647	LOGICAL_OP_NON_SHORT_CIRCUIT value from the param.
5648	* fold-const.c (fold_range_test, fold_truth_andor): Likewise.
5649
56502019-03-15  Martin Liska  <mliska@suse.cz>
5651
5652	PR other/89712
5653	* doc/invoke.texi: Remove -fdump-class-hierarchy option.
5654
56552019-03-14  Martin Jambor  <mjambor@suse.cz>
5656
5657	Backport from mainline
5658	2019-03-07  Martin Jambor  <mjambor@suse.cz>
5659
5660	PR lto/87525
5661	* ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
5662	for extern inline functions.
5663
56642019-03-14  Richard Biener  <rguenther@suse.de>
5665
5666	PR middle-end/89572
5667	* tree-scalar-evolution.c (get_loop_exit_condition): Use
5668	safe_dyn_cast.
5669	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
5670	Use gimple_location_safe.
5671
56722019-03-13  Vladimir Makarov  <vmakarov@redhat.com>
5673
5674	PR target/85860
5675	* lra-constraints.c (inherit_in_ebb): Update
5676	potential_reload_hard_regs along with live_hard_regs.
5677
56782019-03-14  Richard Biener  <rguenther@suse.de>
5679
5680	Backport from mainline
5681	2019-03-13  Richard Biener  <rguenther@suse.de>
5682
5683	PR middle-end/89677
5684	* tree-scalar-evolution.c (simplify_peeled_chrec): Do not
5685	throw FP expressions at tree-affine.
5686
5687	2019-03-01  Richard Biener  <rguenther@suse.de>
5688
5689	PR middle-end/89497
5690	* tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
5691	argument, defaulted to zero.
5692	* passes.c (execute_function_todo): Pass down SSA update flags
5693	to cleanup_tree_cfg.
5694	* tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
5695	(cleanup_tree_cfg_1): After cleanup_control_flow_pre update SSA
5696	form if requested.
5697	(cleanup_tree_cfg_noloop): Pass down SSA update flags.
5698	(cleanup_tree_cfg): Get and pass down SSA update flags.
5699
5700	2019-02-18  Richard Biener  <rguenther@suse.de>
5701
5702	PR tree-optimization/89296
5703	* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
5704	of no-warning flag to cases that might emit the bogus warning.
5705
57062019-03-13  Andreas Krebbel  <krebbel@linux.ibm.com>
5707
5708	Backport from mainline
5709	2019-03-11  Andreas Krebbel  <krebbel@linux.ibm.com>
5710
5711	* config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
5712	only on the else branch.
5713
57142019-03-13  Andreas Krebbel  <krebbel@linux.ibm.com>
5715
5716	Backport from mainline
5717	2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
5718
5719	* config/s390/s390-builtin-types.def: Add new types.
5720	* config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
5721	(s390_vec_xlw4): Make the memory operand into a const pointer.
5722	(s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
5723	float.
5724	* config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
5725	a new vector type with the alignment of the scalar memory operand.
5726
57272019-03-12  Richard Biener  <rguenther@suse.de>
5728
5729	PR tree-optimization/89664
5730	* tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
5731	free the occurance tree after the early out.
5732
57332019-03-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5734
5735	Backport from mainline
5736	2019-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5737
5738	* config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
5739	requirement.
5740
57412019-03-11  Eric Botcazou  <ebotcazou@adacore.com>
5742
5743	PR rtl-optimization/89588
5744	* loop-unroll.c (decide_unroll_constant_iterations): Make guard for
5745	explicit unrolling factor more robust.
5746
57472019-03-11  Martin Liska  <mliska@suse.cz>
5748
5749	Backport from mainline
5750	2019-03-08  Martin Liska  <mliska@suse.cz>
5751
5752	PR target/86952
5753	* config/i386/i386.c (ix86_option_override_internal): Disable
5754	jump tables when retpolines are used.
5755
57562019-03-11  Martin Liska  <mliska@suse.cz>
5757
5758	Backport from mainline
5759	2019-02-11  David Malcolm  <dmalcolm@redhat.com>
5760
5761	PR lto/88147
5762	* input.c (selftest::test_line_offset_overflow): New selftest.
5763	(selftest::input_c_tests): Call it.
5764
57652019-03-08  Martin Jambor  <mjambor@suse.cz>
5766
5767	Backport from mainline
5768	2019-03-07  Martin Jambor  <mjambor@suse.cz>
5769
5770	PR ipa/88235
5771	* cgraph.h (cgraph_node): New inline method former_thunk_p.
5772	* cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
5773	(clone_of_p): Treat expanded thunks like thunks, be optimistic if they
5774	have multiple callees.  At the end check if declarations match as
5775	opposed to cgraph_nodes.
5776
57772019-03-06  Tamar Christina  <tamar.christina@arm.com>
5778
5779	Backport from trunk.
5780	2019-02-25  Tamar Christina  <tamar.christina@arm.com>
5781
5782	PR target/88530
5783	* common/config/aarch64/aarch64-common.c
5784	(struct aarch64_option_extension): Add is_synthetic.
5785	(all_extensions): Use it.
5786	(TARGET_OPTION_INIT_STRUCT): Define hook.
5787	(struct gcc_targetm_common): Moved to end.
5788	(all_extensions_by_on): New.
5789	(opt_ext_cmp, typedef opt_ext): New.
5790	(aarch64_option_init_struct): New.
5791	(aarch64_contains_opt): New.
5792	(aarch64_get_extension_string_for_isa_flags): Output smallest set.
5793	* config/aarch64/aarch64-option-extensions.def
5794	(AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
5795	(fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
5796	sm4, fp16fml, sve):
5797	Set is_synthetic to false.
5798	(crypto): Set is_synthetic to true.
5799	* config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
5800	SYNTHETIC.
5801
58022019-03-06  Tamar Christina  <tamar.christina@arm.com>
5803
5804	Backport from trunk.
5805	2019-02-28  Tamar Christina  <tamar.christina@arm.com>
5806
5807	PR target/88530
5808	* config/aarch64/aarch64-option-extensions.def: Document it.
5809	* config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
5810	if empty hwcaps.
5811
58122019-03-06  Xiong Hu Luo  <luoxhu@linux.ibm.com>
5813
5814	Backport of r268834 from mainline to gcc-8-branch.
5815	2019-02-13  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
5816
5817	* config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
5818	vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
5819	* config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
5820	(crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
5821	* config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
5822	(VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
5823	New BU_CRYPTO_2.
5824	* config/rs6000/rs6000.c (builtin_function_type)
5825	<CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
5826	CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
5827	CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
5828	* doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
5829	vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
5830
58312019-03-05  Richard Biener  <rguenther@suse.de>
5832
5833	Backport from mainline
5834	2019-02-26  Richard Biener  <rguenther@suse.de>
5835
5836	PR tree-optimization/89505
5837	* tree-ssa-structalias.c (compute_dependence_clique): Make sure
5838	to handle restrict pointed-to vars with multiple subvars
5839	correctly.
5840
58412019-03-01  Tamar Christina  <tamar.christina@arm.com>
5842
5843	PR target/89517
5844	* config/aarch64/aarch64-option-extensions.def (fp, simd, crypto,
5845	fp16): Collapse line.
5846
58472019-03-01  Richard Biener  <rguenther@suse.de>
5848
5849	Backport from mainline
5850	2019-03-01  Jakub Jelinek  <jakub@redhat.com>
5851
5852	PR bootstrap/89539
5853	* dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
5854	early_lto_debug argument.
5855
5856	2019-02-27  Richard Biener  <rguenther@suse.de>
5857
5858	PR debug/88878
5859	* dwarf2out.c (use_debug_types): Disable when in_lto_p.
5860
5861	2019-02-27  Richard Biener  <rguenther@suse.de>
5862
5863	PR debug/88878
5864	* dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
5865	parameter, prefix section name with .gnu.debuglto_ if true.
5866	(dwarf2out_finish): Pass false to output_comdat_type_unit.
5867	(dwarf2out_early_finish): Pass true to output_comdat_type_unit.
5868
5869	2019-02-27  Richard Biener  <rguenther@suse.de>
5870
5871	PR debug/89514
5872	* dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
5873	rather than on use_debug_types, doing what output_die does.
5874	(value_format): Likewise.
5875
58762019-02-28  Eric Botcazou  <ebotcazou@adacore.com>
5877
5878	PR tree-optimization/89536
5879	* tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
5880	only whether bit #0 of the value is 0 instead of the entire value.
5881
58822019-02-28  Li Jia He  <helijia@linux.ibm.com>
5883
5884	Backport from trunk
5885	2019-02-20  Li Jia He  <helijia@linux.ibm.com>
5886
5887	PR target/88100
5888	* gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
5889	<case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
5890	ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
5891	range checking it.
5892
58932019-02-27  Uroš Bizjak  <ubizjak@gmail.com>
5894
5895	PR target/89397
5896	* config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
5897	TARGET_SSE in addition to TARGET_SSE_MATH.
5898
5899	(ix86_excess_precision): Ditto.
5900	(ix86_float_exceptions_rounding_supported_p): Ditto.
5901	(use_rsqrt_p): Ditto.
5902	* config/i386/sse.md (rsqrt<mode>2): Ditto.
5903
59042019-02-27  Jakub Jelinek  <jakub@redhat.com>
5905
5906	Backported from mainline
5907	2019-02-18  Jakub Jelinek  <jakub@redhat.com>
5908
5909	PR target/89361
5910	* config/s390/s390.c (s390_indirect_branch_attrvalue,
5911	s390_indirect_branch_settings): Define unconditionally.
5912	(s390_set_current_function): Likewise, but guard the whole body except
5913	the s390_indirect_branch_settings call with
5914	#if S390_USE_TARGET_ATTRIBUTE.
5915	(TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
5916
59172019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
5918
5919	Backport from mainline
5920	2019-02-19  Eric Botcazou  <ebotcazou@adacore.com>
5921
5922	* rtlanal.c (get_initial_register_offset): Fall back to the estimate
5923	as long as the epilogue isn't completed.
5924
59252019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
5926
5927	* tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
5928	and move around comment.
5929	<BIT_AND_EXPR>: Likewise.
5930	<BIT_NOT_EXPR>: Add specific handling for boolean types.
5931
59322019-02-24  Alan Modra  <amodra@gmail.com>
5933
5934	PR target/89271
5935	* config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
5936	output reg on add insn.
5937	(<bd>tf_<mode> split): Likewise.  Match predicates with insn.
5938
59392019-02-22  Jakub Jelinek  <jakub@redhat.com>
5940
5941	* BASE-VER: Set to 8.3.1.
5942
59432019-02-22  Release Manager
5944
5945	* GCC 8.3.0 released.
5946
59472019-02-15  Richard Biener  <rguenther@suse.de>
5948	    Jakub Jelinek  <jakub@redhat.com>
5949
5950	PR tree-optimization/89278
5951	* tree-loop-distribution.c: Include tree-eh.h.
5952	(generate_memset_builtin, generate_memcpy_builtin): Call
5953	rewrite_to_non_trapping_overflow on builtin->size before passing it
5954	to force_gimple_operand_gsi.
5955
59562019-02-15  Jakub Jelinek  <jakub@redhat.com>
5957
5958	PR other/89342
5959	* optc-save-gen.awk: Handle optimize_fast like optimize_size or
5960	optimize_debug.
5961	* opth-gen.awk: Likewise.
5962
59632019-02-14  David Malcolm  <dmalcolm@redhat.com>
5964
5965	Backport of r267957 from trunk.
5966	2019-01-15  David Malcolm  <dmalcolm@redhat.com>
5967
5968	PR c++/88795
5969	* tree.c (build_function_type): Assert that arg_types is not
5970	error_mark_node.
5971
59722019-02-14  Jakub Jelinek  <jakub@redhat.com>
5973
5974	PR rtl-optimization/89354
5975	* combine.c (make_extraction): Punt if extraction_mode is narrower
5976	than len bits.
5977
59782019-02-14  David Malcolm  <dmalcolm@redhat.com>
5979
5980	Backport of r263339 from trunk.
5981	2018-08-06  David Malcolm  <dmalcolm@redhat.com>
5982
5983	* function-tests.c (selftest::test_expansion_to_rtl): Call
5984	free_after_compilation.
5985
59862019-02-14  David Malcolm  <dmalcolm@redhat.com>
5987
5988	Backport of r263295 from trunk.
5989	2018-08-03  David Malcolm  <dmalcolm@redhat.com>
5990
5991	* doc/gcov.texi (-x): Remove duplicate "to".
5992	* doc/invoke.texi (-Wnoexcept-type): Remove duplicate "calls".
5993	(-Wif-not-aligned): Remove duplicate "is".
5994	(-flto): Remove duplicate "the".
5995	(MicroBlaze Options): In examples of "-mcpu=cpu-type", remove
5996	duplicate "v5.00.b".
5997	(MSP430 Options): Remove duplicate "and" from the description
5998	of "-mgprel-sec=regexp".
5999	(x86 Options): Remove duplicate copies of "vmldLog102" and
6000	vmlsLog104 from description of "-mveclibabi=type".
6001
60022019-02-14  David Malcolm  <dmalcolm@redhat.com>
6003
6004	Backport of r263275 from trunk.
6005	2018-08-02  David Malcolm  <dmalcolm@redhat.com>
6006
6007	* diagnostic-show-locus.c (diagnostic_show_locus): Use
6008	pp_take_prefix when saving the existing prefix.
6009	* diagnostic.c (diagnostic_append_note): Likewise.
6010	* langhooks.c (lhd_print_error_function): Likewise.
6011	* pretty-print.c (pp_set_prefix): Drop the "const" from "prefix"
6012	param's type.  Free the existing prefix.
6013	(pp_take_prefix): New function.
6014	(pretty_printer::pretty_printer): Drop the prefix parameter.
6015	Rename the length parameter to match the comment.
6016	(pretty_printer::~pretty_printer): Free the prefix.
6017	* pretty-print.h (pretty_printer::pretty_printer): Drop the prefix
6018	parameter.
6019	(struct pretty_printer): Drop the "const" from "prefix" field's
6020	type and clarify memory management.
6021	(pp_set_prefix): Drop the "const" from the 2nd param.
6022	(pp_take_prefix): New decl.
6023
60242019-02-14  Segher Boessenkool  <segher@kernel.crashing.org>
6025
6026	Backport from trunk
6027	2018-08-31  Segher Boessenkool  <segher@kernel.crashing.org>
6028
6029	PR target/86684
6030	PR target/87149
6031	* config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND.
6032
60332019-02-14  Segher Boessenkool  <segher@kernel.crashing.org>
6034
6035	Backport from trunk
6036	2019-01-18  Segher Boessenkool  <segher@kernel.crashing.org>
6037
6038	PR target/88892
6039	* config/rs6000/rs6000.md (*movsi_from_df): Allow only register
6040	operands.
6041
60422019-02-14  Segher Boessenkool  <segher@kernel.crashing.org>
6043
6044	Backport from trunk
6045	2018-07-26  Segher Boessenkool  <segher@kernel.crashing.org>
6046
6047	PR rtl-optimization/85805
6048	* combine.c (reg_nonzero_bits_for_combine): Only use the last set
6049	value for hard registers if that was written in the same mode.
6050
60512019-02-14  Martin Liska  <mliska@suse.cz>
6052
6053	Backport from mainline
6054	2019-02-14  Martin Liska  <mliska@suse.cz>
6055
6056	PR rtl-optimization/89242
6057	* dce.c (delete_unmarked_insns): Call free_dominance_info we
6058	process a transformation.
6059
60602019-02-14  Martin Liska  <mliska@suse.cz>
6061
6062	Backport from mainline
6063	2019-02-13  Martin Liska  <mliska@suse.cz>
6064
6065	PR lto/88858
6066	* cfgrtl.c (remove_barriers_from_footer): New function.
6067	(try_redirect_by_replacing_jump): Use it.
6068	(cfg_layout_redirect_edge_and_branch): Likewise.
6069
60702019-02-14  Martin Liska  <mliska@suse.cz>
6071
6072	Backport from mainline
6073	2019-02-11  Martin Liska  <mliska@suse.cz>
6074
6075	PR ipa/89009
6076	* ipa-cp.c (build_toporder_info): Remove usage of a param.
6077	* ipa-inline.c (inline_small_functions): Likewise.
6078	* ipa-pure-const.c (propagate_pure_const): Likewise.
6079	(propagate_nothrow): Likewise.
6080	* ipa-reference.c (propagate): Likewise.
6081	* ipa-utils.c (struct searchc_env): Remove unused field.
6082	(searchc): Always search across AVAIL_INTERPOSABLE.
6083	(ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
6084	the only called IPA pure const can properly not propagate
6085	across interposable boundary.
6086	* ipa-utils.h (ipa_reduced_postorder): Remove param.
6087
60882019-02-14  Jakub Jelinek  <jakub@redhat.com>
6089
6090	PR tree-optimization/89314
6091	* fold-const.c (fold_binary_loc): Cast strlen argument to
6092	const char * before dereferencing it.  Formatting fixes.
6093
6094	Backported from mainline
6095	2019-02-13  Jakub Jelinek  <jakub@redhat.com>
6096
6097	PR middle-end/89303
6098	* tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
6099	into pt->vars_contains_escaped_heap instead of setting
6100	pt->vars_contains_escaped_heap to it.
6101
6102	PR middle-end/89281
6103	* optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
6104	INTVAL (size), compare it to GET_MODE_MASK instead of
6105	1 << GET_MODE_BITSIZE.
6106
6107	PR target/89290
6108	* config/i386/predicates.md (x86_64_immediate_operand): Allow
6109	TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
6110	-mcmodel=large.
6111
6112	2019-02-09  Jakub Jelinek  <jakub@redhat.com>
6113
6114	PR middle-end/89246
6115	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6116	If !node->definition and TYPE_ARG_TYPES is non-NULL, use
6117	TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
6118
61192019-02-13  Bill Schmidt  <wschmidt@linux.ibm.com>
6120
6121        Backport from mainline
6122        2019-02-11  Bill Schmidt  <wschmidt@linux.ibm.com>
6123
6124        * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
6125        and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
6126        for correct semantics.
6127
61282019-02-13  Richard Biener  <rguenther@suse.de>
6129
6130	Backport from mainline
6131	2019-01-08  Richard Biener  <rguenther@suse.de>
6132
6133	PR tree-optimization/86554
6134	* tree-ssa-sccvn.c (visit_nary_op): When value-numbering to
6135	expressions with different overflow behavior make sure there's an
6136	available expression on the path.
6137
61382019-02-13  Martin Liska  <mliska@suse.cz>
6139
6140	PR lto/89260
6141	* lto-streamer.h (LTO_minor_version): Bump version due
6142	to r268698.
6143
61442019-02-13  Richard Biener  <rguenther@suse.de>
6145
6146	Backport from mainline
6147	2019-02-12  Richard Biener  <rguenther@suse.de>
6148
6149	PR tree-optimization/89253
6150	* tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
6151	duplicate the loop.
6152
6153	2019-02-08  Richard Biener  <rguenther@suse.de>
6154
6155	PR middle-end/89223
6156	* tree-data-ref.c (initialize_matrix_A): Fail if constant
6157	doesn't fit in HWI.
6158	(analyze_subscript_affine_affine): Handle failure from
6159	initialize_matrix_A.
6160
6161	2019-01-28  Richard Biener  <rguenther@suse.de>
6162
6163	PR tree-optimization/88739
6164	* tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
6165	BIT_FIELD_REFs of non-mode-precision integral operands.
6166
61672019-02-12  Jan Hubicka  <hubicka@ucw.cz>
6168
6169	Backport from mainline:
6170	2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
6171
6172	* ipa-visibility.c (localize_node): Also do not localize
6173	LDPR_PREVAILING_DEF_IRONLY_EXP.
6174
61752019-02-11  Stefan Agner  <stefan@agner.ch>
6176
6177	Backport from mainline.
6178	2019-01-10  Stefan Agner  <stefan@agner.ch>
6179
6180	PR target/88648
6181	* config/arm/arm.c (arm_option_override_internal): Force
6182	opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
6183
61842019-02-09  Jan Hubicka  <hubicka@ucw.cz>
6185
6186	Backport from mainline:
6187	2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
6188
6189	PR tree-opt/86020
6190	Revert:
6191	2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
6192
6193        * ipa-inline.c (edge_badness): Use inlined_time instead of
6194        inline_summaries->get.
6195
61962019-02-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
6197
6198	Backported from mainline
6199	2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
6200
6201	PR target/89112
6202	* config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
6203	for the long branch case.
6204
6205	2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
6206
6207	PR target/89112
6208	* config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
6209	expand_compare_loop, expand_block_compare_gpr,
6210	expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
6211	REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
6212	#include "profile-count.h" and "predict.h" for types and functions
6213	needed to work with REG_BR_PROB notes.
6214
6215	2019-02-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
6216
6217	* config/rs6000/rs6000-string.c (expand_compare_loop,
6218	expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
6219	memcmp/strncmp.
6220
62212019-02-09  Jakub Jelinek  <jakub@redhat.com>
6222
6223	Backported from mainline
6224	2019-01-16  David Malcolm  <dmalcolm@redhat.com>
6225
6226	PR target/88861
6227	* combine.c (delete_noop_moves): Convert to "bool" return,
6228	returning true if any edges are eliminated.
6229	(combine_instructions): Also return true if delete_noop_moves
6230	returns true.
6231
6232	2019-02-08  Jakub Jelinek  <jakub@redhat.com>
6233
6234	PR rtl-optimization/89234
6235	* except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
6236	is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
6237	(copy_reg_eh_region_note_backward): Likewise.
6238
62392019-02-09  Alan Modra  <amodra@gmail.com>
6240
6241	PR target/88343
6242	* config/rs6000/rs6000.c (save_reg_p): Match logic in
6243	rs6000_emit_prologue emitting pic_offset_table setup.
6244
62452019-02-08  Richard Biener  <rguenther@suse.de>
6246
6247	Backport from mainline
6248	2018-11-13  Richard Biener  <rguenther@suse.de>
6249
6250	PR tree-optimization/86991
6251	* tree-vect-loop.c (vect_is_slp_reduction): Delay reduction
6252	group building until we have successfully detected the SLP
6253	reduction.
6254	(vect_is_simple_reduction): Remove fixup code here.
6255
62562019-02-08  Richard Biener  <rguenther@suse.de>
6257
6258	Backport from mainline
6259	2019-02-03  Richard Biener  <rguenther@suse.de>
6260
6261	PR debug/87295
6262	* dwarf2out.c (copy_ancestor_tree): Register non-stubs as
6263	orig.
6264
6265	2019-01-29  Richard Biener  <rguenther@suse.de>
6266
6267	PR debug/87295
6268	* dwarf2out.c (collect_skeleton_dies): New helper.
6269	(copy_decls_for_unworthy_types): Call it.
6270	(build_abbrev_table): Do not try to replace
6271	DW_AT_signature refs with local refs.
6272
6273	2019-01-17  Richard Biener  <rguenther@suse.de>
6274
6275	PR lto/86736
6276	* dwarf2out.c (want_pubnames): Never generate pubnames sections
6277	and friends for the LTO part of debug info.
6278
6279	2019-01-24  Richard Biener  <rguenther@suse.de>
6280
6281	PR lto/87187
6282	* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
6283	When in "legacy" debug mode make sure to reset self-origins.
6284
6285	2019-01-15  Richard Biener  <rguenther@suse.de>
6286
6287	PR debug/88046
6288	* dwarf2out.c (gen_member_die): Do not generate inheritance
6289	DIEs late.
6290
6291	2018-11-22  Richard Biener  <rguenther@suse.de>
6292
6293	PR lto/87229
6294	PR lto/88112
6295	* lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs
6296	which can appear in size expressions.
6297	* tree-streamer-in.c (unpack_ts_base_value_fields): Stream
6298	CALL_EXPR_BY_DESCRIPTOR.
6299	(streamer_read_tree_bitfields): Stream CALL_EXPR_IFN.
6300	* tree-streamer-out.c (pack_ts_base_value_fields): Stream
6301	CALL_EXPR_BY_DESCRIPTOR.
6302	(streamer_write_tree_bitfields): Stream CALL_EXPR_IFN.
6303
63042019-02-08  Christophe Lyon  <christophe.lyon@linaro.org>
6305
6306	Backport from mainline
6307	2019-01-07  Christophe Lyon  <christophe.lyon@linaro.org>
6308
6309	PR target/85596
6310	* doc/install.texi (with-multilib-list): Document for aarch64.
6311
63122019-02-08  Richard Biener  <rguenther@suse.de>
6313
6314	Backport from mainline
6315	2018-12-10  Richard Biener  <rguenther@suse.de>
6316
6317	PR tree-optimization/88427
6318	* vr-values.c (vr_values::extract_range_from_phi_node):
6319	Handle symbolic ranges conservatively when trying to drop
6320	to Inf +- 1.
6321
6322	2018-11-28  Richard Biener  <rguenther@suse.de>
6323
6324	PR tree-optimization/88217
6325	* vr-values.c (vr_values::extract_range_from_phi_node): Make
6326	sure to handle results > +INF and < -INF correctly when
6327	trying to drop down to +INF - 1 or -INF + 1.
6328
6329	2018-11-23  Richard Biener  <rguenther@suse.de>
6330
6331	PR tree-optimization/88149
6332	* tree-vect-slp.c (vect_slp_analyze_node_operations): Detect
6333	the case where there are two different def types for the
6334	same operand at different operand position in the same stmt.
6335
63362019-02-07  Jakub Jelinek  <jakub@redhat.com>
6337
6338	Backported from mainline
6339	2019-02-05  Jakub Jelinek  <jakub@redhat.com>
6340
6341	PR target/89188
6342	* dce.c (delete_unmarked_insns): Don't remove no-op moves if they
6343	can throw, non-call exceptions are enabled and we can't delete
6344	dead exceptions or alter cfg.  Set must_clean if
6345	delete_insn_and_edges returns true, don't set it blindly for calls.
6346
6347	PR rtl-optimization/89195
6348	* combine.c (make_extraction): For MEMs, don't extract bytes outside
6349	of the original MEM.
6350
6351	PR target/89186
6352	* optabs.c (prepare_cmp_insn): Pass x and y to
6353	emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
6354
6355	2019-02-02  Jakub Jelinek  <jakub@redhat.com>
6356
6357	PR middle-end/87887
6358	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6359	Punt with warning on aggregate return or argument types.  Ignore
6360	type/mode checking for uniform arguments.
6361
6362	2019-02-01  Jakub Jelinek  <jakub@redhat.com>
6363
6364	PR tree-optimization/88107
6365	* tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
6366	instead of assertion that eh_region_outermost is non-NULL, if it
6367	is NULL, set *ALL to true and return NULL.
6368	(move_sese_region_to_fn): Adjust caller, if all is set, call
6369	duplicate_eh_regions with NULL region.
6370
6371	2019-01-31  Jakub Jelinek  <jakub@redhat.com>
6372
6373	PR sanitizer/89124
6374	* ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
6375	always_inline callees into no_sanitize_address callers.
6376
6377	2019-01-30  Jakub Jelinek  <jakub@redhat.com>
6378
6379	PR c++/89105
6380	* config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
6381	for arguments to functions that are TU-local and shouldn't be
6382	referenced by assembly.
6383
6384	2019-01-29  Jakub Jelinek  <jakub@redhat.com>
6385
6386	PR c++/66676
6387	PR ipa/89104
6388	* omp-simd-clone.c (simd_clone_clauses_extract)
6389	<case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
6390	OMP_CLAUSE_ALIGNED_ALIGNMENT.
6391
6392	2019-01-28  Jakub Jelinek  <jakub@redhat.com>
6393
6394	PR middle-end/89002
6395	* gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
6396	for lastprivate/linear IV, push gimplify context around gimplify_assign
6397	and, if it needed any temporaries, pop it into a gimple bind around the
6398	sequence.
6399
6400	PR target/89073
6401	* doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
6402	-madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
6403	x86 ISA options.
6404	(bmi2): Add missing @opindex.
6405	* doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
6406	options alphabetically.  Add missing 3dnow, 3dnowa, adx, avx, avx2,
6407	avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
6408	avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
6409	avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
6410	clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
6411	fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
6412	pku, prefetchwt1, prfchw, rdpid, rdrnd, rdseed, rtm, sahf,
6413	sgx, sha, shstk, tbm, vaes, vpclmulqdq, wbnoinvd, xsave,
6414	xsavec, xsaveopt and xsaves options.
6415
6416	2019-01-27  Jakub Jelinek  <jakub@redhat.com>
6417
6418	PR target/87214
6419	* config/i386/sse.md
6420	(<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
6421	avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
6422	first constants in pairs are multiples of 2.  Formatting fixes.
6423	(avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
6424	avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
6425	first constants in each quadruple are multiples of 4.  Formatting fixes.
6426
6427	2019-01-24  Jakub Jelinek  <jakub@redhat.com>
6428
6429	PR tree-optimization/88964
6430	* gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
6431	punt if HONOR_SNANS (chrec).
6432
6433	2019-01-23  Jakub Jelinek  <jakub@redhat.com>
6434
6435	PR tree-optimization/88964
6436	* gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
6437	build_zero_cst instead of build_int_cst.  Return false for loop
6438	invariants which honor signed zeros.
6439
6440	2019-01-22  Jakub Jelinek  <jakub@redhat.com>
6441
6442	PR target/88965
6443	* config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
6444	(rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
6445	is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
6446
6447	PR middle-end/88968
6448	* gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
6449	non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
6450
6451	PR target/88905
6452	* optabs.c (add_equal_note): Add op0_mode argument, use it instead of
6453	GET_MODE (op0).
6454	(expand_binop_directly, expand_doubleword_clz,
6455	expand_doubleword_popcount, expand_ctz, expand_ffs,
6456	expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
6457
6458	PR rtl-optimization/49429
6459	PR target/49454
6460	PR rtl-optimization/86334
6461	PR target/88906
6462	* expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
6463	addressable from here...
6464	(emit_block_op_via_libcall): ... to here.
6465
6466	2019-01-17  Jakub Jelinek  <jakub@redhat.com>
6467
6468	PR target/88734
6469	* config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
6470	(("..."))) with ("...").  Use arch=armv8.2-a+sha3 instead of
6471	arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
6472
6473	PR rtl-optimization/88870
6474	* dce.c (deletable_insn_p): Never delete const/pure calls that can
6475	throw if we can't alter the cfg or delete dead exceptions.
6476	(mark_insn): Don't call find_call_stack_args for such calls.
6477
6478	2019-01-11  Jakub Jelinek  <jakub@redhat.com>
6479
6480	PR bootstrap/88714
6481	* passes.c (finish_optimization_passes): Call print_combine_total_stats
6482	inside of pass_combine_1 dump rather than pass_profile_1.
6483
6484	2019-01-10  Jakub Jelinek  <jakub@redhat.com>
6485
6486	PR c/88568
6487	* attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
6488	DECL_EXTERNAL.
6489
6490	2019-01-07  Jakub Jelinek  <jakub@redhat.com>
6491
6492	PR debug/88723
6493	* dwarf2out.c (const_ok_for_output_1): Remove redundant call to
6494	const_not_ok_for_debug_p target hook.
6495	(mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
6496	on UNSPEC and subexpressions thereof if all subexpressions of the
6497	UNSPEC are CONSTANT_P.
6498
6499	2019-01-05  Jakub Jelinek  <jakub@redhat.com>
6500
6501	PR debug/88635
6502	* dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
6503	SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
6504	Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
6505	subexpressions of both operands.
6506	(mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
6507	subrtxes are CONSTANT_P.
6508
65092019-02-07  Richard Biener  <rguenther@suse.de>
6510
6511	Backport from mainline
6512	2018-11-20  Richard Biener  <rguenther@suse.de>
6513
6514	PR tree-optimization/88105
6515	* tree-ssa-dom.c (pass_dominator::execute): Do not walk
6516	backedges.
6517
6518	2018-11-28  Richard Biener  <rguenther@suse.de>
6519
6520	PR tree-optimization/88223
6521	* tree-ssa-sccvn.c (vn_reference_lookup_3): When skipping
6522	over a stored-same value may-alias store make sure to consider
6523	partial overlaps which are valid when TBAA reasonings do not
6524	apply and byte-granular overlaps are possible at all.
6525
65262019-02-07  Richard Biener  <rguenther@suse.de>
6527
6528	Backport from mainline
6529	2018-12-11  Richard Biener  <rguenther@suse.de>
6530
6531	PR middle-end/88448
6532	PR middle-end/88415
6533	* tree-complex.c (update_complex_assignment): Properly transfer
6534	or clean EH info around gimple_assign_set_rhs_with_ops.
6535
6536	2018-11-15  Richard Biener  <rguenther@suse.de>
6537
6538	PR tree-optimization/88030
6539	* tree-complex.c (need_eh_cleanup): New global.
6540	(update_complex_assignment): Mark blocks that need EH update.
6541	(expand_complex_comparison): Likewise.
6542	(tree_lower_complex): Allocate and deallocate need_eh_cleanup,
6543	perform EH cleanup and schedule CFG cleanup if that did anything.
6544
6545	2018-11-08  Richard Biener  <rguenther@suse.de>
6546
6547	PR tree-optimization/87929
6548	* tree-complex.c (expand_complex_comparison): Clean EH.
6549
65502019-02-06  Eric Botcazou  <ebotcazou@adacore.com>
6551
6552	* config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
6553	after restoring registers saved to allocate the frame on Windows.
6554
65552019-02-06  Richard Biener  <rguenther@suse.de>
6556
6557	Backport from mainline
6558	2019-01-31  Richard Biener  <rguenther@suse.de>
6559
6560	PR tree-optimization/89135
6561	* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
6562	with abnormal preds.
6563
6564	2019-01-18  Richard Biener  <rguenther@suse.de>
6565
6566	PR tree-optimization/88903
6567	* tree-vect-stmts.c (vectorizable_shift): Verify we see all
6568	scalar stmts a SLP shift amount is composed of when detecting
6569	shifts by scalars.
6570
65712019-02-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6572
6573	Backport from mainline.
6574	2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6575	* config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
6576	Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.  Coerce result to
6577	type of vector element when vec_extract is implemented by direct
6578	move.
6579
65802019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
6581
6582	Backport from mainline
6583	2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
6584
6585	PR target/88856
6586	* config/s390/s390.md: Remove load and test FP splitter.
6587
65882019-02-04  Bill Schmidt  <wshmidt@linux.ibm.com>
6589
6590	PR target/87064
6591	Backport from mainline
6592
6593	2019-01-30  Bill Schmidt  <wschmidt@linux.ibm.com>
6594
6595	PR target/87064
6596	* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
6597	Disable for little-endian.
6598
6599	2019-01-22  Jakub Jelinek  <jakub@redhat.com>
6600
6601	PR target/87064
6602	* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
6603	Disable for little endian.
6604
66052019-02-04  Eric Botcazou  <ebotcazou@adacore.com>
6606
6607	* config/sparc/sparc.h: Remove superfluous blank lines.
6608	* config/sparc/sparc.c (global_offset_table_rtx): Rename into...
6609	(got_register_rtx): ...this.
6610	(sparc_got): Adjust to above renaming.
6611	(sparc_tls_got): Likewise.
6612	(sparc_output_mi_thunk): Likewise.
6613	(sparc_init_pic_reg): Likewise.
6614	(save_local_or_in_reg_p): Fix test on the GOT register.
6615	(USE_HIDDEN_LINKONCE): Move around.
6616	(get_pc_thunk_name): Likewise.
6617	(gen_load_pcrel_sym): Likewise.
6618	(load_got_register): Likewise.
6619
66202019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
6621
6622	Backport from mainline
6623	2018-10-15  Bin Cheng  <bin.cheng@linux.alibaba.com>
6624
6625	PR tree-optimization/87022
6626	* tree-loop-distribution.c (pg_add_dependence_edges): Check all
6627	bits in dist vector rather than the first one.
6628
66292019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
6630
6631	Backport from mainline
6632	2019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
6633
6634	PR tree-optimization/88932
6635	* tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
6636
66372018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>
6638
6639	Backport from mainline
6640	2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>
6641
6642	PR tree-optimization/89008
6643	* gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
6644	process anything of the form X * 0.
6645
66462019-01-31  Richard Biener  <rguenther@suse.de>
6647
6648	Backport from mainline
6649	2019-01-31  Richard Biener  <rguenther@suse.de>
6650
6651	PR rtl-optimization/89115
6652	* lra.c (lra_rtx_hash): Properly hash CONST_INT values.
6653
6654	2019-01-30  Richard Biener  <rguenther@suse.de>
6655
6656	PR rtl-optimization/89115
6657	* opts.c (default_options_optimization): Reduce
6658	PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
6659	Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
6660	to the default.
6661
66622019-01-30  Kewen Lin  <linkw@gcc.gnu.org>
6663
6664	Backport from mainline.
6665	2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
6666
6667	* doc/extend.texi: Add four new prototypes for vec_ld and seven new
6668	prototypes for vec_st.
6669	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
6670	for scalar address type variants of altivec_vec_ld/altivec_vec_st,
6671	mainly on signed/unsigned long long and double.
6672
66732019-01-29  Vineet Gupta  <vgupta@synopsys.com>
6674
6675	Backport from mainline.
6676	* gcc/config.gcc: Force .init_array for ARC.
6677
66782019-01-29  Vineet Gupta  <vgupta@synopsys.com>
6679
6680	Backport from mainline.
6681	* config/arc/atomic.md: Add operand to DMB instruction.
6682
66832019-01-27  Uroš Bizjak  <ubizjak@gmail.com>
6684
6685	PR target/88948
6686	* rtl.h (prepare_copy_insn): New prototype.
6687	* gcse.c (prepare_copy_insn): New function, split out from
6688	process_insert_insn.
6689	(process_insert_insn): Use prepare_copy_insn.
6690	* store-motion.c (replace_store_insn): Use prepare_copy_insn
6691	instead of gen_move_insn.
6692
66932019-01-25  Richard Biener  <rguenther@suse.de>
6694
6695	PR tree-optimization/86865
6696	* graphite-scop-detection.c (scop_detection::can_represent_loop):
6697	Reject non-do-while loops.
6698
66992019-01-24  Uroš Bizjak  <ubizjak@gmail.com>
6700
6701	PR target/88998
6702	* config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
6703	Disparage MMX alternative.
6704	(sse2_cvtpd2pi): Ditto.
6705	(sse2_cvttpd2pi): Ditto.
6706
67072019-01-24  Richard Earnshaw  <rearnsha@arm.com>
6708
6709	PR target/88469
6710	* profile-count.h (profile_count): On ARM systems using GCC 6/7/8
6711	force the alignment of m_val.
6712
67132019-01-24  Richard Biener  <rguenther@suse.de>
6714
6715	Backport from mainline
6716	2019-01-23  Richard Biener  <rguenther@suse.de>
6717
6718	PR tree-optimization/89008
6719	* tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
6720	not leave another stray operand.
6721
67222019-01-22  Uroš Bizjak  <ubizjak@gmail.com>
6723
6724	PR target/88938
6725	* config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
6726	case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
6727
67282019-01-18  Richard Earnshaw  <rearnsha@arm.com>
6729
6730	PR target/88799
6731	* config/arm/arm-cpus.in (mp): New feature.
6732	(sec): New feature.
6733	(fgroup ARMv7ve): Add mp and sec features.
6734	(arch armv7-a): Add options to allow mp and sec extensions.
6735	(cpu generic-armv7-a): Add options to allow mp and sec extensions.
6736	(cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
6737	extenstions to the base architecture.
6738	(cpu cortex-a8): Add sec extension to the base architecture.
6739	(cpu marvell-pj4): Add mp and sec extensions to the base architecture.
6740	* config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
6741	variants down to the base v7-a varaint.
6742	* config/arm/t-multilib (v7_a_arch_variants): New variable.
6743	* doc/invoke.texi (ARM Options): Add +mp and +sec to the list
6744	of permitted extensions for -march=armv7-a and for
6745	-mcpu=generic-armv7-a.
6746
67472019-01-17  Uroš Bizjak  <ubizjak@gmail.com>
6748
6749	* config/alpha/alpha.c (alpha_gimplify_va_arg):
6750	Handle split indirect COMPLEX_TYPE arguments.
6751
67522019-01-17  Eric Botcazou  <ebotcazou@adacore.com>
6753
6754	* gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
6755	flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
6756	(stmt_uses_0_or_null_in_undefined_way): Likewise.
6757	* tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
6758
67592019-01-16  Aaron Sawdey  <acsawdey@linux.ibm.com>
6760
6761	Backported from mainline
6762	2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
6763	* config/rs6000/rs6000-string.c (expand_block_move): Don't use
6764	unaligned vsx and avoid lxvd2x/stxvd2x.
6765	(gen_lvx_v4si_move): New function.
6766
67672019-01-16  Martin Jambor  <mjambor@suse.cz>
6768
6769	Backported from mainline
6770	2018-12-10  Martin Jambor  <mjambor@suse.cz>
6771
6772	PR ipa/88214
6773	* ipa-prop.c (determine_locally_known_aggregate_parts): Make sure
6774	we check pointers against pointers.
6775
67762019-01-10  Jan Hubicka  <hubicka@ucw.cz>
6777
6778	Backported from mainline
6779	2018-12-27  Jan Hubicka  <hubicka@ucw.cz>
6780
6781	* ipa-devirt.c (polymorphic_call_target_d): Add n_odr_types.
6782	(polymorphic_call_target_hasher::hash): Hash it.
6783	(polymorphic_call_target_hasher::equal): Compare it.
6784	(possible_polymorphic_call_targets): Set it.
6785	* tree.c (free_lang_data): Rebuild type inheritance graph even on
6786	non-LTO path.
6787
67882019-01-03  Jan Hubicka  <hubicka@ucw.cz>
6789
6790	Backported from mainline
6791	2019-01-02  Richard Biener  <rguenther@suse.de>
6792
6793	PR ipa/85574
6794	* ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
6795	* ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
6796	function.
6797	(sem_item_optimizer::do_congruence_step_f): Sort the congruence
6798	set after UIDs before splitting them.
6799
68002019-01-03  Jan Hubicka  <hubicka@ucw.cz>
6801
6802	Backported from mainline
6803	2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
6804
6805	PR tree-optimization/85574
6806	* tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
6807	structure.
6808	(struct ssa_equip_hash_traits): Declare.
6809	(val_ssa_equiv): Use custom hash traits using operand_equal_p.
6810
68112019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
6812
6813	* config/sparc/sparc.md (*tablejump_sp32): Merge into...
6814	(*tablejump_sp64): Likewise.
6815	(*tablejump<P:mode>): ...this.
6816	(*call_address_sp32): Merge into...
6817	(*call_address_sp64): Likewise.
6818	(*call_address<P:mode>): ...this.
6819	(*call_symbolic_sp32): Merge into...
6820	(*call_symbolic_sp64): Likewise.
6821	(*call_symbolic<P:mode>): ...this.
6822	(call_value): Remove constraint and add predicate.
6823	(*call_value_address_sp32): Merge into...
6824	(*call_value_address_sp64): Likewise.
6825	(*call_value_address<P:mode>): ...this.
6826	(*call_value_symbolic_sp32): Merge into...
6827	(*call_value_symbolic_sp64): Likewise.
6828	(*call_value_symbolic<P:mode>): ...this.
6829	(*sibcall_symbolic_sp32): Merge into...
6830	(*sibcall_symbolic_sp64): Likewise.
6831	(*sibcall_symbolic<P:mode>): ...this.
6832	(sibcall_value): Remove constraint and add predicate.
6833	(*sibcall_value_symbolic_sp32): Merge into...
6834	(*sibcall_value_symbolic_sp64): Likewise.
6835	(*sibcall_value_symbolic<P:mode>): ...this.
6836	(window_save): Minor tweak.
6837	(*branch_sp32): Merge into...
6838	(*branch_sp64): Likewise.
6839	(*branch<P:mode>): ...this.
6840
68412019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
6842	    James Clarke  <jrtc27@jrtc27.com>
6843
6844	PR target/84010
6845	* config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
6846	consistently in TLS address generation and adjust code to the renaming
6847	of patterns.  Mark calls to __tls_get_addr as const.
6848	* config/sparc/sparc.md (tgd_hi22): Turn into...
6849	(tgd_hi22<P:mode>): ...this and use Pmode throughout.
6850	(tgd_lo10): Turn into...
6851	(tgd_lo10<P:mode>): ...this and use Pmode throughout.
6852	(tgd_add32): Merge into...
6853	(tgd_add64): Likewise.
6854	(tgd_add<P:mode>): ...this and use Pmode throughout.
6855	(tldm_hi22): Turn into...
6856	(tldm_hi22<P:mode>): ...this and use Pmode throughout.
6857	(tldm_lo10): Turn into...
6858	(tldm_lo10<P:mode>): ...this and use Pmode throughout.
6859	(tldm_add32): Merge into...
6860	(tldm_add64): Likewise.
6861	(tldm_add<P:mode>): ...this and use Pmode throughout.
6862	(tldm_call32): Merge into...
6863	(tldm_call64): Likewise.
6864	(tldm_call<P:mode>): ...this and use Pmode throughout.
6865	(tldo_hix22): Turn into...
6866	(tldo_hix22<P:mode>): ...this and use Pmode throughout.
6867	(tldo_lox10): Turn into...
6868	(tldo_lox10<P:mode>): ...this and use Pmode throughout.
6869	(tldo_add32): Merge into...
6870	(tldo_add64): Likewise.
6871	(tldo_add<P:mode>): ...this and use Pmode throughout.
6872	(tie_hi22): Turn into...
6873	(tie_hi22<P:mode>): ...this and use Pmode throughout.
6874	(tie_lo10): Turn into...
6875	(tie_lo10<P:mode>): ...this and use Pmode throughout.
6876	(tie_ld64): Use DImode throughout.
6877	(tie_add32): Merge into...
6878	(tie_add64): Likewise.
6879	(tie_add<P:mode>): ...this and use Pmode throughout.
6880	(tle_hix22_sp32): Merge into...
6881	(tle_hix22_sp64): Likewise.
6882	(tle_hix22<P:mode>): ...this and use Pmode throughout.
6883	(tle_lox22_sp32): Merge into...
6884	(tle_lox22_sp64): Likewise.
6885	(tle_lox22<P:mode>): ...this and use Pmode throughout.
6886	(*tldo_ldub_sp32): Merge into...
6887	(*tldo_ldub_sp64): Likewise.
6888	(*tldo_ldub<P:mode>): ...this and use Pmode throughout.
6889	(*tldo_ldub1_sp32): Merge into...
6890	(*tldo_ldub1_sp64): Likewise.
6891	(*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
6892	(*tldo_ldub2_sp32): Merge into...
6893	(*tldo_ldub2_sp64): Likewise.
6894	(*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
6895	(*tldo_ldsb1_sp32): Merge into...
6896	(*tldo_ldsb1_sp64): Likewise.
6897	(*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
6898	(*tldo_ldsb2_sp32): Merge into...
6899	(*tldo_ldsb2_sp64): Likewise.
6900	(*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
6901	(*tldo_ldub3_sp64): Use DImode throughout.
6902	(*tldo_ldsb3_sp64): Likewise.
6903	(*tldo_lduh_sp32): Merge into...
6904	(*tldo_lduh_sp64): Likewise.
6905	(*tldo_lduh<P:mode>): ...this and use Pmode throughout.
6906	(*tldo_lduh1_sp32): Merge into...
6907	(*tldo_lduh1_sp64): Likewise.
6908	(*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
6909	(*tldo_ldsh1_sp32): Merge into...
6910	(*tldo_ldsh1_sp64): Likewise.
6911	(*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
6912	(*tldo_lduh2_sp64): Use DImode throughout.
6913	(*tldo_ldsh2_sp64): Likewise.
6914	(*tldo_lduw_sp32): Merge into...
6915	(*tldo_lduw_sp64): Likewise.
6916	(*tldo_lduw<P:mode>): ...this and use Pmode throughout.
6917	(*tldo_lduw1_sp64): Use DImode throughout.
6918	(*tldo_ldsw1_sp64): Likewise.
6919	(*tldo_ldx_sp64): Likewise.
6920	(*tldo_stb_sp32): Merge into...
6921	(*tldo_stb_sp64): Likewise.
6922	(*tldo_stb<P:mode>): ...this and use Pmode throughout.
6923	(*tldo_sth_sp32): Merge into...
6924	(*tldo_sth_sp64): Likewise.
6925	(*tldo_sth<P:mode>): ...this and use Pmode throughout.
6926	(*tldo_stw_sp32): Merge into...
6927	(*tldo_stw_sp64): Likewise.
6928	(*tldo_stw<P:mode>): ...this and use Pmode throughout.
6929	(*tldo_stx_sp64): Use DImode throughout.
6930
69312019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
6932
6933	* doc/invoke.texi (-Os): Add reference to -finline-functions.
6934	(-finline-functions): Remove reference to -O2, add references
6935	to -fprofile-use and -fauto-profile.
6936
69372019-01-08  Jakub Jelinek  <jakub@redhat.com>
6938
6939	Backported from mainline
6940	2019-01-05  Jakub Jelinek  <jakub@redhat.com>
6941
6942	PR middle-end/82564
6943	PR target/88620
6944	* expr.c (expand_assignment): For calls returning VLA structures
6945	if to_rtx is not a MEM, force it into a stack temporary.
6946
6947	2019-01-04  Jakub Jelinek  <jakub@redhat.com>
6948
6949	PR target/88594
6950	* config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
6951	of GET_MODE (opN) as modes of the libcall arguments.
6952
6953	2019-01-03  Jakub Jelinek  <jakub@redhat.com>
6954
6955	PR debug/88644
6956	* dwarf2out.c (modified_type_die): If type is equal to sizetype,
6957	change it to qualified_type.
6958
6959	2018-12-21  Jakub Jelinek  <jakub@redhat.com>
6960
6961	PR middle-end/85594
6962	PR middle-end/88553
6963	* omp-expand.c (extract_omp_for_update_vars): Regimplify the condition
6964	if needed.
6965	(expand_omp_for_generic): Don't clobber t temporary for ordered loops.
6966
6967	PR target/88522
6968	* config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask,
6969	*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask,
6970	*avx512pf_scatterpf<mode>df_mask): Use %X5 instead of %5 for
6971	-masm=intel.
6972	(gatherq_mode): Remove mode iterator.
6973	(*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2): Use X instead
6974	of <xtg_mode>.
6975	(*avx512f_gatherdi<mode>): Use X instead of <gatherq_mode>.
6976	(*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>,
6977	*avx512f_scatterdi<mode>): Use %X5 for -masm=intel.
6978
6979	PR rtl-optimization/88563
6980	* expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode
6981	and mode arguments to convert_modes.  Likewise swap mode and word_mode
6982	arguments.  Handle both arguments with VOIDmode before convert_modes
6983	of one of them.  Formatting fixes.
6984
6985	2018-12-19  Jakub Jelinek  <jakub@redhat.com>
6986
6987	PR target/88541
6988	* config/i386/vpclmulqdqintrin.h (_mm256_clmulepi64_epi128): Enable
6989	for -mavx -mvpclmulqdq rather than just for -mavx512vl -mvpclmulqdq.
6990
6991	2018-12-14  Jakub Jelinek  <jakub@redhat.com>
6992
6993	PR c++/82294
6994	PR c++/87436
6995	* expr.h (categorize_ctor_elements): Add p_unique_nz_elts argument.
6996	* expr.c (categorize_ctor_elements_1): Likewise.  Compute it like
6997	p_nz_elts, except don't multiply it by mult.  Adjust recursive call.
6998	Fix up COMPLEX_CST handling.
6999	(categorize_ctor_elements): Add p_unique_nz_elts argument, initialize
7000	it and pass it through to categorize_ctor_elements_1.
7001	(mostly_zeros_p, all_zeros_p): Adjust categorize_ctor_elements callers.
7002	* gimplify.c (gimplify_init_constructor): Likewise.  Don't force
7003	ctor into readonly data section if num_unique_nonzero_elements is
7004	smaller or equal to 1/8 of num_nonzero_elements and size is >= 64
7005	bytes.
7006
7007	2018-12-13  Jakub Jelinek  <jakub@redhat.com>
7008
7009	PR rtl-optimization/88470
7010	* cfgcleanup.c (outgoing_edges_match): If the function is
7011	shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake
7012	edge to EXIT, return false.
7013
7014	PR rtl-optimization/88416
7015	* valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify
7016	even if !AUTO_INC_DEC.
7017
7018	2018-12-07  Jakub Jelinek  <jakub@redhat.com>
7019
7020	PR target/85593
7021	* final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage
7022	for functions with naked attribute.
7023
7024	2018-12-06  Jakub Jelinek  <jakub@redhat.com>
7025
7026	PR target/87598
7027	* config/aarch64/aarch64.c (aarch64_print_address_internal): Don't
7028	call output_operand_lossage on VOIDmode CONST_INTs.  After
7029	output_operand_lossage do return false.
7030
7031	2018-12-05  Jakub Jelinek  <jakub@redhat.com>
7032
7033	PR tree-optimization/87360
7034	* gimple-loop-jam.c (tree_loop_unroll_and_jam): On failure to analyze
7035	data dependencies, don't return false, just continue.
7036
7037	2018-11-29  Jakub Jelinek  <jakub@redhat.com>
7038
7039	PR target/88234
7040	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): For
7041	vec_add and vec_sub builtins, perform PLUS_EXPR or MINUS_EXPR
7042	in unsigned_type_for instead of vector integral type where overflow
7043	doesn't wrap.
7044
7045	2018-11-26  Jakub Jelinek  <jakub@redhat.com>
7046
7047	PR c++/86900
7048	* dwarf2out.c (secname_for_decl): For functions with
7049	DECL_SECTION_NAME if in_cold_section_p, try to return
7050	current_function_section's name if it is a named section.
7051
7052	2018-11-22  Jakub Jelinek  <jakub@redhat.com>
7053
7054	PR target/85644
7055	PR target/86832
7056	* config/i386/i386.c (ix86_option_override_internal): Default
7057	ix86_stack_protector_guard to SSP_TLS only if TARGET_THREAD_SSP_OFFSET
7058	is defined.
7059	* config/i386/i386.md (stack_protect_set, stack_protect_set_<mode>,
7060	stack_protect_test, stack_protect_test_<mode>): Use empty condition
7061	instead of TARGET_SSP_TLS_GUARD.
7062
7063	2018-11-20  Jakub Jelinek  <jakub@redhat.com>
7064
7065	PR tree-optimization/87895
7066	* omp-simd-clone.c (ipa_simd_modify_function_body): When removing
7067	or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT.
7068	(simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that
7069	redirects edges to EXIT to edges to incr_bb, iterate while EXIT
7070	has any preds and always use EDGE_PRED (, 0).
7071
7072	2018-11-19  Jakub Jelinek  <jakub@redhat.com>
7073
7074	PR tree-optimization/88071
7075	* tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead
7076	of false as last argument to gsi_remove.
7077	* tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of
7078	false as last argument to gsi_replace.
7079
7080	PR debug/87039
7081	* omp-expand.c: Don't include debug.h.
7082	(adjust_context_and_scope): Add REGION argument.  Find DECL_CONTEXT
7083	from innermost outer parallel, task, or target that has a
7084	child_fn set, or, if there is no such outer region, use
7085	current_function_decl.  Do the DECL_CONTEXT adjustment regardless of
7086	whether a suitable BLOCK is found or not.
7087	(expand_parallel_call): Don't call adjust_context_and_scope here.
7088	(grid_expand_target_grid_body): Revert 2017-01-25 changes.
7089	(expand_omp_taskreg, expand_omp_target): Likewise.  Call
7090	adjust_context_and_scope.
7091	* dwarf2out.c (dwarf2out_early_global_decl): For
7092	decl_function_context recurse instead of calling dwarf2out_decl.
7093
7094	2018-11-16  Jakub Jelinek  <jakub@redhat.com>
7095
7096	PR rtl-optimization/87475
7097	* cfgrtl.c (patch_jump_insn): Allow redirection failure for
7098	CROSSING_JUMP_P insns.
7099	(cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL.
7100
7101	2018-11-15  Jakub Jelinek  <jakub@redhat.com>
7102
7103	PR rtl-optimization/88018
7104	* cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge
7105	on the presence of fallthru edge, rather than if it is a USE or not.
7106
7107	2018-11-13  Jakub Jelinek  <jakub@redhat.com>
7108
7109	PR tree-optimization/87898
7110	* omp-simd-clone.c (ipa_simd_modify_function_body): Remove debug stmts
7111	where the first argument was changed into a non-decl.
7112
71132019-01-03  Jan Hubicka  <hubicka@ucw.cz>
7114
7115	Backport from mainline
7116	2019-01-02  Jan Hubicka  <hubicka@ucw.cz>
7117
7118	PR lto/88130
7119	* varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
7120	false at WPA time when body was removed.
7121
71222019-01-03  Jan Hubicka  <hubicka@ucw.cz>
7123
7124	Backport from mainline
7125	2018-08-29  Jan Hubicka  <jh@suse.cz>
7126
7127	PR lto/86517
7128	PR lto/88185
7129	* lto-opts.c (lto_write_options): Always stream PIC/PIE mode.
7130	* lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE.
7131
71322019-01-04  Aaron Sawdey  <acsawdey@linux.ibm.com>
7133
7134	Backport from mainline
7135	2018-11-28  Aaron Sawdey  <acsawdey@linux.ibm.com>
7136
7137	* config/rs6000/rs6000-string.c (expand_block_clear): Change how
7138	we determine if unaligned vsx is ok.
7139
71402019-01-03  Jan Hubicka  <hubicka@ucw.cz>
7141
7142	Backport from mainline
7143	2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
7144
7145	* ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
7146	(ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
7147
71482019-01-03  Martin Liska  <mliska@suse.cz>
7149
7150	Backport from mainline
7151	2019-01-01  Jan Hubicka  <hubicka@ucw.cz>
7152
7153	* coverage.c (get_coverage_counts): Use current_function_decl.
7154	* profile.c (read_thunk_profile): New function.
7155	(branch_prob): Add THUNK parameter.
7156	* tree-profile.c (tree_profiling): Handle thunks.
7157	* value-prof.c (init_node_map): Handle thunks.
7158	* value-prof.h (branch_prob): Upate prototype.
7159	(read_thunk_profile): Declare.
7160
71612019-01-03  Iain Sandoe  <iain@sandoe.co.uk>
7162
7163	revert:
7164	2018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
7165
7166	backport from mainline.
7167	2018-12-12 Segher Boessenkool  <segher@kernel.crashing.org>
7168		   Iain Sandoe  <iain@sandoe.co.uk>
7169
7170	PR target/88343
7171	* config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg
7172	unless it has been used.
7173	(first_reg_to_save): Remove dead code.
7174
71752019-01-02  Segher Boessenkool  <segher@kernel.crashing.org>
7176
7177	Backport from trunk
7178	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
7179
7180	PR inline-asm/55681
7181	* doc/extend.texi (Basic Asm): Update grammar.
7182	(Extended Asm): Update grammar.
7183
7184	Backport from trunk
7185	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
7186
7187	* doc/extend.texi (Using Assembly Language with C): Document asm inline.
7188	(Size of an asm): Fix typo.  Document asm inline.
7189	* gimple-pretty-print.c (dump_gimple_asm): Handle asm inline.
7190	* gimple.h (enum gf_mask): Add GF_ASM_INLINE.
7191	(gimple_asm_set_volatile): Fix typo.
7192	(gimple_asm_inline_p): New.
7193	(gimple_asm_set_inline): New.
7194	* gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from
7195	tree to gimple.
7196	* ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the
7197	gimple_asm_inline_p flag, too.
7198	* tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P
7199	in an ASM_EXPR.
7200	* tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return
7201	a minimum size for an asm.
7202	* tree.h (ASM_INLINE_P): New.
7203
72042018-12-28  Thomas Schwinge  <thomas@codesourcery.com>
7205	    Julian Brown  <julian@codesourcery.com>
7206
7207	* gimplify.c (gimplify_scan_omp_clauses): Fix known_eq typo/bug.
7208
72092018-12-27  Martin Liska  <mliska@suse.cz>
7210
7211	Backport from mainline
7212	2018-12-15  Jan Hubicka  <hubicka@ucw.cz>
7213
7214	PR ipa/88561
7215	* ipa-polymorphic-call.c
7216	(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Handle
7217	arguments of thunks correctly.
7218	(ipa_polymorphic_call_context::get_dynamic_context): Be ready for
7219	NULL instance pinter.
7220	* lto-cgraph.c (lto_output_node): Always stream thunk info.
7221
72222018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
7223
7224	backport from mainline.
7225	2018-12-12 Segher Boessenkool  <segher@kernel.crashing.org>
7226		   Iain Sandoe  <iain@sandoe.co.uk>
7227
7228	PR target/88343
7229	* config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg
7230	unless it has been used.
7231	(first_reg_to_save): Remove dead code.
7232
72332018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
7234
7235	Backport from mainline
7236	2018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
7237
7238	PR c++/87380
7239	* config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the
7240	default.
7241	* config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New.
7242
72432018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
7244
7245	Backport from mainline
7246	2018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
7247
7248	PR target/78444
7249	* config/i386/darwin.h (STACK_BOUNDARY): Remove macro.
7250	* config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b
7251	stack alignment in non-leaf functions.
7252
72532018-12-21  Uros Bizjak  <ubizjak@gmail.com>
7254
7255	Backport from mainline
7256	2018-12-10  Uros Bizjak  <ubizjak@gmail.com>
7257
7258	PR target/88418
7259	* config/i386/i386.c (ix86_expand_sse_cmp): For vector modes,
7260	check operand 1 with vector_operand predicate.
7261	(ix86_expand_sse_movcc): For vector modes, check op_true with
7262	vector_operand, not nonimmediate_operand.
7263
72642018-12-19  Bill Schmidt  <wschmidt@linux.ibm.com>
7265
7266	Backport from mainline
7267	2018-12-18  Bill Schmidt  <wschmidt@linux.ibm.com>
7268
7269	* doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
7270	Describe when a typedef name can be used as the type specifier for
7271	a vector type, and when it cannot.
7272
72732018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
7274
7275	Backport from trunk
7276	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
7277
7278	PR target/88213
7279	* config/rs6000/vsx.md (*vsx_extract_<P:mode>_<VSX_D:mode>_load):
7280	Require TARGET_POWERPC64.
7281
72822018-12-17  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
7283
7284	Backport from trunk
7285	2018-12-17  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
7286
7287	PR rtl-optimization/88253
7288	* combine.c (combine_simplify_rtx): Test for side-effects before
7289	substituting by zero.
7290
72912018-12-15  Segher Boessenkool  <segher@kernel.crashing.org>
7292
7293	Backport from trunk
7294	2018-12-14  Segher Boessenkool  <segher@kernel.crashing.org>
7295
7296	PR rtl-optimization/88001
7297	* function.c (match_asm_constraints_1): Don't invalidly share RTL.
7298
72992018-12-15  Jan Hubicka  <jh@suse.cz>
7300
7301	* ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET
7302	parameters.
7303	(cgraph_build_static_cdtor): Update.
7304	(build_cdtor): Use OPTIMIZATION and TARGET of the first real cdtor
7305	callsed.
7306
73072018-12-15  Jan Hubicka  <jh@suse.cz>
7308
7309	Backport from mainline
7310	2018-11-02  Richard Biener  <rguenther@suse.de>
7311
7312	* dwarf2out.c (build_abbrev_table): Guard lookup_external_ref call
7313	with is_type_die.
7314
73152018-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7316
7317	Backport from mainline
7318	2018-12-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7319
7320	* doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128
7321	behavior.
7322
73232018-12-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
7324
7325	Backport from mainline
7326	PR target/88224
7327	* config/arm/arm-cpus.in (armv7-r): Add FP16conv configurations.
7328	(cortex-r7, cortex-r8): Update fpu and add new configuration.
7329	* doc/invoke.texi (armv7-r): Add two new vfp options.
7330	(nofp.dp): Add cortex-r7 and cortex-r8 to the list of targets that
7331	support this option.
7332
73332018-12-13  H.J. Lu  <hongjiu.lu@intel.com>
7334
7335	Backport from mainline
7336	2018-11-05  Xuepeng Guo  <xuepeng.guo@intel.com>
7337
7338	PR target/87853
7339	* config/i386/emmintrin.h (__v16qs): New to cope with option
7340	-funsigned-char.
7341	(_mm_cmpeq_epi8): Replace __v16qi with __v16qs.
7342	(_mm_cmplt_epi8): Likewise.
7343	(_mm_cmpgt_epi8): Likewise.
7344
73452018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
7346
7347	Backport from mainline
7348	2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
7349
7350	* config/s390/s390-builtins.def (s390_vec_double_s64): Map to
7351	s390_vec_double_s64 instead of s390_vcdgb.
7352	(s390_vec_double_u64): Map to s390_vec_double_u64 instead of
7353	s390_vcdlgb.
7354
73552018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
7356
7357	Backport from mainline
7358	2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
7359
7360	* config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64")
7361	("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT.
7362	("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT.
7363
73642018-12-13  Eric Botcazou  <ebotcazou@adacore.com>
7365
7366	Backport from mainline
7367	2018-12-11  Eric Botcazou  <ebotcazou@adacore.com>
7368
7369	* config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define,
7370	accounting for STACK_BOUNDARY 128.
7371	(STACK_DYNAMIC_OFFSET): Likewise.
7372
73732018-12-12  Peter Bergner  <bergner@linux.ibm.com>
7374
7375	Backport from mainline
7376	2018-12-07  Peter Bergner  <bergner@linux.ibm.com>
7377
7378	PR target/87496
7379	* config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
7380	-mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128.
7381	Do not error for -mabi=ibmlongdouble and no ISA 2.06 support.
7382	* doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble
7383	require -mlong-double-128.
7384
73852018-12-05  Richard Biener  <rguenther@suse.de>
7386
7387	Backport from mainline
7388	2018-09-20  Richard Sandiford  <richard.sandiford@arm.com>
7389
7390	PR tree-optimization/87288
7391	* tree-vect-loop.c (vect_analyze_loop_2): Take PEELING_FOR_GAPS
7392	into account when determining PEELING_FOR_NITERS.
7393
73942018-12-05  Iain Sandoe  <iain@sandoe.co.uk>
7395
7396	Backport from mainline
7397	2018-08-18  Iain Sandoe  <iain@sandoe.co.uk>
7398
7399	* config/darwin.c (darwin_override_options): If -gsplit-dwarf is set,
7400	emit a diagnostic that it is not supported and reset the option.
7401	* config/darwin.h (DRIVER_SELF_SPECS): Note that gsplit-dwarf is not
7402	supported and consume the option.  (ASM_FINAL_SPEC): New.
7403
74042018-12-04  Iain Sandoe  <iain@sandoe.co.uk>
7405
7406	Backport from mainline
7407	2018-08-15  Iain Sandoe  <iain@sandoe.co.uk>
7408
7409	PR target/81685
7410	* config/darwin.h: (DEBUG_STR_OFFSETS_SECTION, DEBUG_LOCLISTS_SECTION,
7411	DEBUG_RNGLISTS_SECTION) new macros.  (DEBUG_PUBNAMES_SECTION,
7412	DEBUG_PUBTYPES_SECTION) update to include GNU variant.
7413
74142018-11-29  Peter Bergner  <bergner@linux.ibm.com>
7415
7416	Backport from mainline
7417	2018-11-29  Peter Bergner  <bergner@linux.ibm.com>
7418
7419	PR target/87496
7420	* config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
7421	-mabi=ieeelongdouble without both -mpopcntd and -mvsx.
7422
74232018-11-28  Aaron Sawdey  <acsawdey@linux.ibm.com>
7424
7425	Backport from mainline
7426	2018-10-25  Aaron Sawdey  <acsawdey@linux.ibm.com>
7427
7428	* config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Change to
7429	a shorter sequence with fewer branches.
7430	(emit_final_str_compare_gpr): Ditto.
7431
7432	Backport from mainline to allow the above code to go in:
7433	2018-06-14  Aaron Sawdey  <acsawdey@linux.ibm.com>
7434
7435	* config/rs6000/rs6000-string.c (do_and3, do_and3_mask,
7436	do_cmpb3, do_rotl3): New functions.
7437
74382018-11-28  Richard Biener  <rguenther@suse.de>
7439
7440	PR tree-optimization/79351
7441	* tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from
7442	empty CONSTRUCTORs ensure the store is at a constant position.
7443
74442018-11-28  Richard Biener  <rguenther@suse.de>
7445
7446	PR tree-optimization/88229
7447	* tree-ssa.c (non_rewritable_mem_ref_base): Check DECL_SIZE_UNIT
7448	is an INTEGER_CST before accessing it so.
7449
74502018-11-26  Andreas Krebbel  <krebbel@linux.ibm.com>
7451
7452	Backport from mainline
7453	2018-11-20  Andreas Krebbel  <krebbel@linux.ibm.com>
7454
7455	* config/s390/s390.md ("clztidi2"): Swap the RTX's written to the
7456	DImode parts of the target operand.
7457
74582018-11-26  Andreas Krebbel  <krebbel@linux.ibm.com>
7459
7460	Backport from mainline
7461	2018-11-26  Andreas Krebbel  <krebbel@linux.ibm.com>
7462
7463	* doc/invoke.texi: Document z14/arch12 -march option.
7464
74652018-11-23  Tamar Christina  <tamar.christina@arm.com>
7466
7467	Backported from mainline.
7468	2018-08-16  Tamar Christina  <tamar.christina@arm.com>
7469
7470	PR target/84711
7471	* config/arm/neon.md (movv4hf, movv8hf): Refactored to..
7472	(mov<mov>): ..this and enable unconditionally.
7473
74742018-11-22  Uros Bizjak  <ubizjak@gmail.com>
7475
7476	Backport from mainline
7477	2018-11-16  Uros Bizjak  <ubizjak@gmail.com>
7478
7479	PR target/88051
7480	* config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC.
7481	(movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec.
7482
74832018-11-20  Eric Botcazou  <ebotcazou@adacore.com>
7484
7485	PR rtl-optimization/85925
7486	* rtl.h (word_register_operation_p): New predicate.
7487	* combine.c (record_dead_and_set_regs_1): Only apply specific handling
7488	for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX.
7489	* rtlanal.c (nonzero_bits1): Likewise.  Adjust couple of comments.
7490	(num_sign_bit_copies1): Likewise.
7491
74922018-11-19  Martin Liska  <mliska@suse.cz>
7493
7494	PR gcov-profile/88045
7495	* coverage.c (coverage_begin_function): One can't relly on the
7496	fact that function ends on the same line it starts or later.
7497
74982018-11-18  Uros Bizjak  <ubizjak@gmail.com>
7499
7500	Backport from mainline
7501	2018-11-11  Uros Bizjak  <ubizjak@gmail.com>
7502
7503	PR target/87928
7504	* config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI
7505	instead of (TARGET_64BIT && ix86_abi == MS_ABI).
7506	* config/i386/darwin.h (STACK_BOUNDARY): Ditto.
7507	* config/i386/cygming.h (STACK_BOUNDARY): Remove.
7508
75092018-11-16  Eric Botcazou  <ebotcazou@adacore.com>
7510
7511	* tree-switch-conversion.c (emit_case_decision_tree): Pass location
7512	of switch statement to emit_case_nodes.
7513	(do_jump_if_equal): Add LOC parameter and set it on the newly built
7514	GIMPLE comparison statement.
7515	(emit_cmp_and_jump_insns): Likewise.
7516	(emit_case_nodes): Add LOC parameter and pass it to do_jump_if_equal
7517	as well as recursive calls.
7518
75192018-11-15  Nathan Sidwell  <nathan@acm.org>
7520
7521	PR debug/88006
7522	PR debug/87462
7523	* dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat
7524	type list.
7525
75262018-11-14  Paul A. Clarke  <pc@us.ibm.com>
7527
7528	Backport from mainline
7529	* config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian.
7530
75312018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
7532
7533	Backport from mainline
7534	PR target/85968
7535	* config/arc/arc.c (arc_return_address_register): Fix
7536	if-condition.
7537
75382018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
7539
7540	Backport from mainline
7541	* config/arc/arc.h (FUNCTION_PROFILER): Redefine to empty.
7542	* config/arc/elf.h (PROFILE_HOOK): Define.
7543	* config/arc/linux.h (PROFILE_HOOK): Likewise.
7544
75452018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
7546
7547	Backport from mainline
7548	* config/arc/arc.c (hwloop_optimize): Bailout when detecting a
7549	jump table data in the text section.
7550
75512018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
7552
7553	Backport from mainline
7554	* config/arc/arc.c (arc_eh_return_address_location): Repurpose it
7555	to fit the eh_return pattern.
7556	* config/arc/arc.md (eh_return): Define.
7557	(VUNSPEC_ARC_EH_RETURN): Likewise.
7558	* config/arc/arc-protos.h (arc_eh_return_address_location): Match
7559	new implementation.
7560	* config/arc/arc.h (EH_RETURN_HANDLER_RTX): Remove it.
7561
75622018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
7563
7564	Backport from mainline
7565	2018-09-17  Alexey Brodkin  <abrodkin@synopsys.com>
7566
7567	* config/arc/linux.h (LINK_EH_SPEC): Add missing space.
7568
75692018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
7570
7571	Backport from mainline
7572	* config/arc/linux.h (CLEAR_INSN_CACHE): Define.
7573
75742018-11-11  Uros Bizjak  <ubizjak@gmail.com>
7575
7576	Backport from mainline
7577	2018-11-04  Uros Bizjak  <ubizjak@gmail.com>
7578
7579	PR middle-end/58372
7580	* cfgexpand.c (pass_expand::execute): Move the call to
7581	finish_eh_generation in front of the call to expand_stack_alignment.
7582
75832018-11-07  Max Filippov  <jcmvbkbc@gmail.com>
7584
7585	Backport from mainline
7586	2018-11-05  Max Filippov  <jcmvbkbc@gmail.com>
7587
7588	* config/xtensa/uclinux.h (XTENSA_ALWAYS_PIC): Change to 0.
7589
75902018-11-05  Jakub Jelinek  <jakub@redhat.com>
7591
7592	PR tree-optimization/87859
7593	* gimple-ssa-store-merging.c (struct merged_store_group): Add
7594	first_nonmergeable_order member.
7595	(merged_store_group::merged_store_group): Initialize them.
7596	(imm_store_chain_info::coalesce_immediate_stores): Don't merge
7597	stores with order >= first_nonmergeable_order.
7598	Set merged_store->first_nonmergeable_order if we've skipped any
7599	stores.  Attempt to merge overlapping INTEGER_CST stores that
7600	we would otherwise skip.
7601
7602	PR sanitizer/87837
7603	* match.pd (X + Y < X): Don't optimize if TYPE_OVERFLOW_SANITIZED.
7604
7605	Backported from mainline
7606	2018-10-20  Jakub Jelinek  <jakub@redhat.com>
7607
7608	PR middle-end/87647
7609	* varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR.
7610
7611	2018-10-19  Jakub Jelinek  <jakub@redhat.com>
7612
7613	PR middle-end/85488
7614	PR middle-end/87649
7615	* omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without
7616	depend closely nested inside of loop with ordered clause with
7617	a parameter.
7618
76192018-10-29  Richard Biener  <rguenther@suse.de>
7620
7621	Backport from mainline
7622	2018-09-26  Richard Biener  <rguenther@suse.de>
7623
7624	PR debug/87428
7625	PR debug/87362
7626	* tree-inline.c (expand_call_inline): When the location
7627	of the call is UNKNOWN_LOCATION use DECL_SOURCE_LOCATION
7628	or BUILTINS_LOCATION for the BLOCK_SOURCE_LOCATION of
7629	the inserted BLOCK to make inlined_function_outer_scope_p
7630	recognize it.
7631	* dwarf2out.c (add_call_src_coords_attributes): Do not add
7632	coords for reserved locations.
7633
76342018-10-28  Iain Sandoe  <iain@sandoe.co.uk>
7635
7636	Backport from mainline
7637	2018-08-22  Iain Sandoe  <iain@sandoe.co.uk>
7638
7639	PR bootstrap/81033
7640	PR target/81733
7641	PR target/52795
7642	* gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New.
7643	(dwarf2out_switch_text_section): Generate a local label for the second
7644	function sub-section and apply it as the second FDE start label.
7645	* gcc/final.c (final_scan_insn_1): Emit second FDE label after the
7646	second sub-section start.
7647
76482018-10-28  Iain Sandoe  <iain@sandoe.co.uk>
7649
7650	Backport from mainline
7651	2018-08-15  Iain Sandoe  <iain@sandoe.co.uk>
7652
7653	* config/darwin.c
7654	(darwin_function_switched_text_sections): Delete.
7655	* gcc/config/darwin.h
7656	(TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): Likewise.
7657
76582018-10-28  Iain Sandoe  <iain@sandoe.co.uk>
7659
7660	backport from mainline.
7661	2018-10-28  Iain Sandoe  <iain@sandoe.co.uk>
7662
7663	PR target/85669
7664	* config/rs6000/darwin.h (STACK_BOUNDARY): New.
7665	(RS6000_STARTING_FRAME_OFFSET): Adjust to preserve 16byte alignment.
7666	(STACK_DYNAMIC_OFFSET): Likewise.
7667
76682018-10-26  Bill Schmidt  <wschmidt@linux.ibm.com>
7669
7670	Backport from mainline
7671	2018-10-19  Bill Schmidt  <wschmidt@linux.ibm.com>
7672
7673	PR tree-optimization/87473
7674	* gimple-ssa-strength-reduction.c (record_phi_increments_1): For
7675	phi arguments identical to the base expression of the phi
7676	candidate, record a phi-adjust increment of zero minus the index
7677	expression of the hidden basis.
7678	(phi_incr_cost_1): For phi arguments identical to the base
7679	expression of the phi candidate, the difference to compare against
7680	the increment is zero minus the index expression of the hidden
7681	basis, and there is no potential savings from replacing the (phi)
7682	statement.
7683	(ncd_with_phi): For phi arguments identical to the base expression
7684	of the phi candidate, the difference to compare against the
7685	increment is zero minus the index expression of the hidden basis.
7686	(all_phi_incrs_profitable_1): For phi arguments identical to the
7687	base expression of the phi candidate, the increment to be checked
7688	for profitability is zero minus the index expression of the hidden
7689	basis.
7690
76912018-10-25  Richard Biener  <rguenther@suse.de>
7692
7693	PR tree-optimization/87665
7694	PR tree-optimization/87745
7695	* tree-vectorizer.h (get_earlier_stmt): Remove.
7696	(get_later_stmt): Pick up UID from the original non-pattern stmt.
7697
76982018-10-24  Richard Biener  <rguenther@suse.de>
7699
7700	PR tree-optimization/87665
7701	* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust
7702	to reflect reality.
7703
77042018-10-23  Richard Biener  <rguenther@suse.de>
7705
7706	PR tree-optimization/87700
7707	* tree-ssa-copy.c (set_copy_of_val): Fix change detection logic.
7708
77092018-10-19  Richard Biener  <rguenther@suse.de>
7710
7711	PR middle-end/87645
7712	Backport from mainline
7713	2018-07-12  Richard Biener  <rguenther@suse.de>
7714
7715	* tree-ssa-sccvn.c (mprts_hook_cnt): Remove.
7716	(vn_lookup_simplify_result): Remove recursion limit applied
7717	here.
7718	(vn_nary_build_or_lookup_1): Adjust.
7719	(try_to_simplify): Likewise.
7720	* gimple-match-head.c (gimple_resimplify1): Instead apply one
7721	here.
7722	(gimple_resimplify2): Likewise.
7723	(gimple_resimplify3): Likewise.
7724	(gimple_resimplify4): Likewise.
7725
77262018-10-19  Andreas Krebbel  <krebbel@linux.ibm.com>
7727
7728	Backport from mainline
7729	2018-10-15  Andreas Krebbel  <krebbel@linux.ibm.com>
7730
7731	* config/s390/s390.c (s390_expand_vec_init): Force vector element
7732	into reg if it isn't a general operand.
7733
77342018-10-18  Richard Biener  <rguenther@suse.de>
7735
7736	PR middle-end/87087
7737	Revert
7738	2018-02-07  Richard Biener  <rguenther@suse.de>
7739
7740	PR tree-optimization/84204
7741	* tree-chrec.c (chrec_fold_plus_1): Remove size limiting in
7742	this place.
7743
77442018-10-17  Eric Botcazou  <ebotcazou@adacore.com>
7745
7746	PR middle-end/87623
7747	* fold-const.c (fold_truth_andor_1): If the right side is not constant,
7748	bail out if both sides do not have the same storage order.
7749
77502018-10-17  Richard Biener  <rguenther@suse.de>
7751
7752	Backport from mainline
7753	2018-10-08  Richard Sandiford  <richard.sandiford@arm.com>
7754
7755	PR middle-end/63155
7756	* gimple-ssa-backprop.c (backprop::intersect_uses): Use
7757	FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT.
7758
77592018-10-16  Richard Biener  <rguenther@suse.de>
7760
7761	Backport from mainline
7762	2018-10-08  Richard Biener  <rguenther@suse.de>
7763
7764	PR tree-optimization/63155
7765	* tree-ssa-propagate.c (add_ssa_edge): Do cheap check first.
7766	(ssa_propagation_engine::ssa_propagate): Remove redundant
7767	bitmap bit clearing.
7768
7769	2018-10-05  Richard Biener  <rguenther@suse.de>
7770
7771	PR tree-optimization/63155
7772	* tree-ssa-ccp.c (ccp_propagate::visit_phi): Avoid excess
7773	vertical space in dumpfiles.
7774	* tree-ssa-propagate.h
7775	(ssa_propagation_engine::process_ssa_edge_worklist): Remove.
7776	* tree-ssa-propagate.c (cfg_blocks_back): New global.
7777	(ssa_edge_worklist_back): Likewise.
7778	(curr_order): Likewise.
7779	(cfg_blocks_get): Remove abstraction.
7780	(cfg_blocks_add): Likewise.
7781	(cfg_blocks_empty_p): Likewise.
7782	(add_ssa_edge): Add to current or next worklist based on
7783	RPO index.
7784	(add_control_edge): Likewise.
7785	(ssa_propagation_engine::process_ssa_edge_worklist): Fold
7786	into ...
7787	(ssa_propagation_engine::ssa_propagate): ... here.  Unify
7788	iteration from CFG and SSA edge worklist so we process
7789	everything in RPO order, prioritizing forward progress
7790	over iteration.
7791	(ssa_prop_init): Allocate new worklists, do not dump
7792	immediate uses.
7793	(ssa_prop_fini): Free new worklists.
7794
7795	2018-09-24  Richard Biener  <rguenther@suse.de>
7796
7797	PR tree-optimization/63155
7798	* tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to
7799	the worklist when the edge of the respective argument isn't
7800	executable.
7801
78022018-10-16  Wilco Dijkstra  <wdijkstr@arm.com>
7803
7804	Backported from mainline
7805	PR target/87511
7806	* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
7807	Use HOST_WIDE_INT_1U for shift.
7808
78092018-10-16  Richard Biener  <rguenther@suse.de>
7810
7811	Backport from mainline
7812	2018-09-18  Richard Biener  <rguenther@suse.de>
7813
7814	PR middle-end/63155
7815	* tree-ssa-coalesce.c (tree_int_map_hasher): Remove.
7816	(compute_samebase_partition_bases): Likewise.
7817	(coalesce_ssa_name): Always use compute_optimized_partition_bases.
7818	(gimple_can_coalesce_p): Simplify.
7819
78202018-10-16  Richard Biener  <rguenther@suse.de>
7821
7822	Backport from mainline
7823	2018-10-15  Richard Biener  <rguenther@suse.de>
7824
7825	PR middle-end/87610
7826	* tree-ssa-structalias.c (struct vls_data): Add escaped_p member.
7827	(visit_loadstore): When a used restrict tag escaped verify that
7828	the points-to solution of "other" pointers do not include
7829	escaped.
7830	(compute_dependence_clique): If a used restrict tag escaped
7831	communicated that down to visit_loadstore.
7832
7833	2018-10-01  Richard Biener  <rguenther@suse.de>
7834
7835	PR tree-optimization/87465
7836	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix typo
7837	causing branch miscounts.
7838
78392018-10-11  Jakub Jelinek  <jakub@redhat.com>
7840
7841	Backported from mainline
7842	2018-10-10  Jakub Jelinek  <jakub@redhat.com>
7843
7844	PR target/87550
7845	* config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set
7846	to special_args set.
7847
7848	2018-09-26  Jakub Jelinek  <jakub@redhat.com>
7849
7850	PR target/87414
7851	* config/i386/i386.c: Include debug.h and dwarf2out.h.
7852	(output_indirect_thunk): Emit DW_CFA_def_cfa_offset after the
7853	call.
7854
7855	2018-09-12  Jakub Jelinek  <jakub@redhat.com>
7856		    Andreas Krebbel  <krebbel@linux.ibm.com>
7857
7858	PR tree-optimization/86844
7859	* gimple-ssa-store-merging.c
7860	(imm_store_chain_info::coalesce_immediate): For overlapping stores, if
7861	there are any overlapping stores in between them, make sure they are
7862	also coalesced or we give up completely.
7863
78642018-10-09  Will Schmidt <will_schmidt@vnet.ibm.com>
7865
7866	Backport from trunk.
7867	2018-09-06  Will Schmidt  <will_schmidt@vnet.ibm.com>
7868
7869	PR target/86731
7870	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Update logic
7871	around folding of vec_sl to handle out of range shift values.
7872
78732018-10-09  H.J. Lu  <hongjiu.lu@intel.com>
7874
7875	Backport from mainline
7876	2018-09-29  H.J. Lu  <hongjiu.lu@intel.com>
7877
7878	PR target/87370
7879	* config/i386/i386.c (construct_container): Use TImode for
7880	BLKmode values in 2 integer registers.
7881
78822018-10-08  H.J. Lu  <hongjiu.lu@intel.com>
7883
7884	Backport from mainline
7885	2018-10-08  H.J. Lu  <hongjiu.lu@intel.com>
7886
7887	PR target/87517
7888	* config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd):
7889	Defined with __builtin_ia32_vfmaddsubpd512_mask.
7890
78912018-10-05  H.J. Lu  <hongjiu.lu@intel.com>
7892
7893	Backport from mainline
7894	2018-10-05  H.J. Lu  <hongjiu.lu@intel.com>
7895
7896	PR target/87522
7897	* config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to
7898	assembler for -mavx.
7899	* config/i386/gnu-user64.h (ASM_SPEC): Likewise.
7900
79012018-10-03  Uros Bizjak  <ubizjak@gmail.com>
7902
7903	Backport from mainline
7904	2018-09-28  Uros Bizjak  <ubizjak@gmail.com>
7905
7906	* config/i386/i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG.
7907	(GET_SSE_REGNO): Rename from SSE_REGNO.  Update all uses for rename.
7908
79092018-10-03  Jonathan Wakely  <jwakely@redhat.com>
7910
7911	PR other/87353
7912	* doc/invoke.texi (Link Options): Fix formatting and grammar.
7913
79142018-10-03  Martin Liska  <mliska@suse.cz>
7915
7916	Backport from mainline
7917	2018-10-03  Martin Liska  <mliska@suse.cz>
7918
7919	PR gcov-profile/86109
7920	* coverage.c (coverage_begin_function): Do not
7921	mark lambdas as artificial.
7922	* tree-core.h (struct GTY): Remove tm_clone_flag
7923	and introduce new lambda_function.
7924	* tree.h (DECL_LAMBDA_FUNCTION): New macro.
7925
79262018-10-02  H.J. Lu  <hongjiu.lu@intel.com>
7927
7928	Backport from mainline
7929	2018-09-24  H.J. Lu  <hongjiu.lu@intel.com>
7930
7931	PR target/82699
7932	* config/i386/i386.c (rest_of_insert_endbranch): Set
7933	endbr_queued_at_entrance to true and don't insert ENDBR if
7934	x86_function_profiler will be called.
7935	(x86_function_profiler): Insert ENDBR if endbr_queued_at_entrance
7936	is true.
7937	* config/i386/i386.h (machine_function): Add
7938	endbr_queued_at_entrance.
7939
79402018-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7941
7942	Backport from mainline
7943	2018-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7944
7945	* config/arm/arm.c (output_move_double): Don't allow STRD instructions
7946	if starting source register is not even.
7947
79482018-09-29  Jakub Jelinek  <jakub@redhat.com>
7949
7950	PR target/87467
7951	* config/i386/avx512fintrin.h (_mm512_abs_pd, _mm512_mask_abs_pd): Use
7952	__m512d type for __A argument rather than __m512.
7953
79542018-09-27  Michael Meissner  <meissner@linux.ibm.com>
7955
7956	Backport from mainline
7957	2018-08-20  Michael Meissner  <meissner@linux.ibm.com>
7958
7959	PR target/87033
7960	* config/rs6000/rs6000.md (extendsi<mode>2): Change constraints
7961	from 'Y' to 'YZ' to enable the LWAX instruction to be generated
7962	for indexed loads.
7963
79642018-09-25  Martin Liska  <mliska@suse.cz>
7965
7966	Backport from mainline
7967	2018-09-24  Martin Liska  <mliska@suse.cz>
7968
7969	PR sanitizer/85774
7970	* asan.c: Make asan_handled_variables extern.
7971	* asan.h: Likewise.
7972	* cfgexpand.c (expand_stack_vars): Make sure
7973	a representative is unpoison if another
7974	variable in the partition is handled by
7975	use-after-scope sanitization.
7976
79772018-09-24  Andrew Pinski  <apinski@marvell.com>
7978
7979	*  config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Don't
7980	access prev before checking it for NULLness in the
7981	AARCH64_FUSE_CMP_BRANCH case.
7982
79832018-09-21  Eric Botcazou  <ebotcazou@adacore.com>
7984
7985	* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false
7986	if the call takes a static chain.
7987
79882018-09-19  John David Anglin  <danglin@gcc.gnu.org>
7989
7990	* config/pa/pa.md (atomic_storeqi): Restore deleted expander.
7991	(atomic_storehi): Likewise.
7992	(atomic_storesi): Likewise.
7993	(atomic_loaddi): Restore compare and swap exchange loop code.
7994
79952018-09-18  Segher Boessenkool  <segher@kernel.crashing.org>
7996
7997	Backport from trunk
7998	2018-09-18  Segher Boessenkool  <segher@kernel.crashing.org>
7999
8000	PR rtl-optimization/86882
8001	* rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER.
8002
80032018-09-18  Martin Liska  <mliska@suse.cz>
8004
8005	Backport from mainline
8006	2018-09-17  Martin Liska  <mliska@suse.cz>
8007
8008	PR gcov-profile/85871
8009	* gcov.c (output_intermediate_file): Fix out of bounds
8010	access.
8011
80122018-09-16  Hans-Peter Nilsson  <hp@bitrange.com>
8013
8014	PR target/85666
8015	* config/mmix/mmix.c (mmix_assemble_integer): Handle byte-size
8016	non-CONST_INT rtx:es using assemble_integer_with_op ".byte".
8017	(MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): Don't call
8018	leaf_function_p, instead use has_hard_reg_initial_val.
8019
80202018-09-14  John David Anglin  <danglin@gcc.gnu.org>
8021
8022	PR middle-end/87188
8023	* dojump.c (do_compare_and_jump): Canonicalize function pointers
8024	when one operand is a function pointer.  Use POINTER_TYPE_P and
8025	FUNC_OR_METHOD_TYPE_P.
8026	* expr.c (do_store_flag): Use POINTER_TYPE_P and FUNC_OR_METHOD_TYPE_P.
8027	* fold-const.c (build_range_check): Likewise.
8028	* match.pd (simple_comparison): Likewise.
8029
80302018-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
8031
8032	Backport from trunk
8033	2018-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
8034
8035	PR target/87224
8036	* config/rs6000/rs6000.md (*mov<mode>_hardfloat64): Add Z to the Y
8037	alternatives.
8038
80392018-09-14  Carl Love  <cel@us.ibm.com>
8040
8041	Backport from trunk
8042	2018-09-14  Carl Love  <cel@us.ibm.com>
8043
8044	* config/rs6000/emmintrin.h: Add _MM_SHUFFLE2.
8045	* config/rs6000/xmmintrin.h: Add _MM_SHUFFLE.
8046
80472018-09-12  Segher Boessenkool  <segher@kernel.crashing.org>
8048
8049	Backport from trunk
8050	2018-08-24  Segher Boessenkool  <segher@kernel.crashing.org>
8051
8052	PR target/86989
8053	* config/rs6000/rs6000.c (toc_relative_expr_p): Check that the base is
8054	the TOC register.
8055
80562018-09-12  Segher Boessenkool  <segher@kernel.crashing.org>
8057
8058	Backport from trunk
8059	2018-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
8060
8061	PR rtl-optimization/86771
8062	* combine.c (try_combine): Do not allow splitting a resulting PARALLEL
8063	of two SETs into those two SETs, one to be placed at i2, if that SETs
8064	destination is modified between i2 and i3.
8065
80662018-09-12  Andreas Krebbel  <krebbel@linux.ibm.com>
8067
8068	Backport from mainline
8069	2018-09-12  Andreas Krebbel  <krebbel@linux.ibm.com>
8070
8071	* config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New
8072	constants.
8073	("trunc<BFP:mode><DFP_ALL:mode>2")
8074	("trunc<DFP_ALL:mode><BFP:mode>2")
8075	("extend<BFP:mode><DFP_ALL:mode>2")
8076	("extend<DFP_ALL:mode><BFP:mode>2"): Set proper rounding mode
8077	according to the target operand type.
8078
80792018-09-12  Jakub Jelinek  <jakub@redhat.com>
8080
8081	PR middle-end/87248
8082	* fold-const.c (fold_ternary_loc) <case COND_EXPR>: Verify also that
8083	BIT_AND_EXPR's second operand is a power of two.  Formatting fix.
8084
80852018-09-05  Nathan Sidwell  <nathan@acm.org>
8086
8087	PR c++/87137
8088	* stor-layout.c (place_field): Scan forwards to check last
8089	bitfield when ms_bitfield_placement is in effect.
8090
80912018-09-05  Richard Biener  <rguenther@suse.de>
8092
8093	PR bootstrap/87225
8094	* tree-vect-stmts.c (vectorizable_simd_clone_call): Fix bogus
8095	return.
8096
80972018-09-05  Jakub Jelinek  <jakub@redhat.com>
8098
8099	Backported from mainline
8100	2018-09-04  Jakub Jelinek  <jakub@redhat.com>
8101
8102	PR target/87198
8103	* common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET,
8104	OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use
8105	OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE.
8106	(OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET
8107	and OPTION_MASK_ISA_XSAVEC_UNSET.
8108
8109	2018-08-31  Jakub Jelinek  <jakub@redhat.com>
8110
8111	PR middle-end/87138
8112	* expmed.c (expand_mult_const): Use immed_wide_int_const instead of
8113	gen_int_mode.  Formatting fixes.
8114
8115	2018-08-11  Jakub Jelinek  <jakub@redhat.com>
8116
8117	PR tree-optimization/86835
8118	* tree-ssa-math-opts.c (insert_reciprocals): Even when inserting
8119	new_stmt after def_gsi, make sure to insert new_square_stmt after
8120	that stmt, not 2 stmts before it.
8121
81222018-09-04  Max Filippov  <jcmvbkbc@gmail.com>
8123
8124	Backport from mainline
8125	2018-09-04  Max Filippov  <jcmvbkbc@gmail.com>
8126
8127	* config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and
8128	XOR operations in NAND case.
8129
81302018-09-04  Jonathan Wakely  <jwakely@redhat.com>
8131
8132	* doc/invoke.texi (Option Summary): Add -Waligned-new.
8133
81342018-09-03  Tom de Vries  <tdevries@suse.de>
8135
8136	backport from trunk:
8137	2018-06-21  Tom de Vries  <tdevries@suse.de>
8138
8139	PR tree-optimization/85859
8140	* tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call
8141	test with comment from bb_no_side_effects_p.
8142
81432018-09-01  Michael Matz  <matz@suse.de>
8144
8145	Backport from mainline
8146	PR tree-optimization/87074
8147	* gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit
8148	PHIs for outer-loop uses.
8149
81502018-08-31  Richard Biener  <rguenther@suse.de>
8151
8152	Backport from mainline
8153	2018-08-27  Richard Biener  <rguenther@suse.de>
8154
8155	PR tree-optimization/86927
8156	* tree-vect-loop.c (vect_create_epilog_for_reduction): Properly
8157	use const cond reduction code.
8158
8159	2018-08-23  Richard Biener  <rguenther@suse.de>
8160
8161	PR middle-end/87024
8162	* tree-inline.c (copy_bb): Drop unused __builtin_va_arg_pack_len
8163	calls.
8164
8165	2018-08-22  Richard Biener  <rguenther@suse.de>
8166
8167	PR tree-optimization/86945
8168	* tree-cfg.c (generate_range_test): Use unsigned arithmetic.
8169
8170	2018-08-17  Richard Biener  <rguenther@suse.de>
8171
8172	PR middle-end/86505
8173	* tree-inline.c (copy_bb): When inlining __builtin_va_arg_pack_len ()
8174	across a va-arg-pack using call adjust its return value accordingly.
8175
8176	2018-08-02  Richard Biener  <rguenther@suse.de>
8177
8178	PR tree-optimization/86816
8179	* tree-ssa-tail-merge.c (tail_merge_valueize): New function
8180	which checks for value availability before querying it.
8181	(gvn_uses_equal): Use it.
8182	(same_succ_hash): Likewise.
8183	(gimple_equal_p): Likewise.
8184
8185	2018-07-17  Richard Biener  <rguenther@suse.de>
8186
8187	PR lto/86456
8188	* dwarf2out.c (init_sections_and_labels): Always generate
8189	a debug_line_str_section for early LTO debug.
8190	(dwarf2out_finish): Reset debug_line_str_hash output early.
8191	Bump counter for extra dwarf5 .debug_loc labels to not conflict
8192	with fat LTO part.
8193	(dwarf2out_early_finish): Output debug_line_str.
8194
81952018-08-29  Luis Machado  <luis.machado@linaro.org>
8196
8197	* config/aarch64/aarch64.c (qdf24xx_vector_cost): New static global.
8198	(qdf24xx_tunings): Set vector cost structure to qdf24xx_vector_cost.
8199
82002018-08-29  Luis Machado  <luis.machado@linaro.org>
8201
8202	* config/aarch64/aarch64.c (qdf24xx_addrcost_table)
8203	<register_sextend>: Set to 3.
8204
82052018-08-27  Martin Sebor  <msebor@redhat.com>
8206
8207	PR tree-optimization/86914
8208	* tree-ssa-strlen.c (maybe_set_strlen_range): Avoid MEM_REF.
8209
82102018-08-28  Jakub Jelinek  <jakub@redhat.com>
8211
8212	PR middle-end/87099
8213	* calls.c (maybe_warn_nonstring_arg): Punt early if
8214	warn_stringop_overflow is zero.  Don't call get_range_strlen
8215	on 3rd argument, keep iterating until lenrng[1] is INTEGER_CST.
8216	Only use lenrng[1] if non-NULL and INTEGER_CST.  Don't uselessly
8217	increment lenrng[0].
8218
82192018-08-27  Jakub Jelinek  <jakub@redhat.com>
8220
8221	PR rtl-optimization/87065
8222	* combine.c (simplify_if_then_else): Formatting fix.
8223	(if_then_else_cond): Guard MULT optimization with SCALAR_INT_MODE_P
8224	check.
8225	(known_cond): Don't return const_true_rtx for vector modes.  Use
8226	CONST0_RTX instead of const0_rtx.  Formatting fixes.
8227
82282018-08-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
8229
8230	Backport from mainline
8231	PR target/86662
8232	* gcc/tree.c (build_common_tree_nodes): Initialize integer_types array
8233	with all enabled __intN types.
8234
8235	* gcc/testsuite/gcc.target/msp430/pr86662.c: New test.
8236
82372018-08-21  H.J. Lu  <hongjiu.lu@intel.com>
8238
8239	Backport from mainline
8240	2018-08-20  H.J. Lu  <hongjiu.lu@intel.com>
8241
8242	PR target/87014
8243	* config/i386/i386.md (eh_return): Always update EH return
8244	address in word_mode.
8245
82462018-08-17  John David Anglin  <danglin@gcc.gnu.org>
8247
8248	Backport from mainline
8249	2018-08-11  John David Anglin  <danglin@gcc.gnu.org>
8250
8251	* config/pa/pa.md (UNSPEC_MEMORY_BARRIER): New unspec enum.
8252	Update comment for atomic instructions.
8253	(atomic_storeqi, atomic_storehi, atomic_storesi, atomic_storesf,
8254	atomic_loaddf, atomic_loaddf_1, atomic_storedf, atomic_storedf_1):
8255	Remove.
8256	(atomic_loaddi): Revise fence expansion to only emit fence prior to
8257	load for __ATOMIC_SEQ_CST model.
8258	(atomic_loaddi_1): Remove float register target.
8259	(atomic_storedi): Handle CONST_INT values.
8260	(atomic_storedi_1): Remove float register source.  Add special case
8261	for zero value.
8262	(memory_barrier): New expander and insn.
8263
82642018-08-16  Tamar Christina <tamar.christina@arm.com>
8265
8266	Backport from mainline
8267	2018-07-30  Segher Boessenkool  <segher@kernel.crashing.org>
8268
8269	PR target/86640
8270	* config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode
8271	instead of GEN_INT.
8272
82732018-08-16  Martin Liska  <mliska@suse.cz>
8274
8275	Backport from mainline
8276	2018-08-02  Martin Liska  <mliska@suse.cz>
8277
8278	PR gcov-profile/86817
8279	* gcov.c (process_all_functions): New function.
8280	(main): Call it.
8281	(process_file): Move functions processing to
8282	process_all_functions.
8283
82842018-08-14  Siddhesh Poyarekar  <siddhesh@sourceware.org>
8285
8286	Backport from mainline
8287	2018-08-03  Siddhesh Poyarekar  <siddhesh@sourceware.org>
8288
8289	* config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move
8290	neon_dup_q to...
8291	(falkor_am_1_gtov_gtov): ... a new insn reservation.
8292
82932018-08-13  Liu Hao  <lh_mouse@126.com>
8294
8295	Backport from mainline
8296	2018-08-13  Liu Hao  <lh_mouse@126.com>
8297
8298	* pretty-print.c (eat_esc_sequence): Swap the foreground and
8299	background colors if the COMMON_LVB_REVERSE_VIDEO flag is set,
8300	and clear it thereafter, as it only works for DBCS.
8301
83022018-08-13  Liu Hao  <lh_mouse@126.com>
8303
8304	Backport from mainline
8305	2018-08-13  Liu	Hao  <lh_mouse@126.com>
8306
8307	* pretty-print.c (mingw_ansi_fputs): Do not call _close() on the
8308	handle returned by _get_osf_handle().
8309
83102018-08-14  Richard Sandiford  <richard.sandiford@arm.com>
8311
8312	Backport from mainline
8313	2018-08-09  Richard Sandiford  <richard.sandiford@arm.com>
8314
8315	PR tree-optimization/86871
8316	* tree-vect-stmts.c (vect_transform_stmt): Use gimple_get_lhs
8317	instead of gimple_assign_lhs.
8318
83192018-08-07  H.J. Lu  <hongjiu.lu@intel.com>
8320
8321	Backport from mainline
8322	2018-08-05  H.J. Lu  <hongjiu.lu@intel.com>
8323
8324	PR target/86386
8325	* config/i386/i386.c (ix86_finalize_stack_frame_flags): Set
8326	cfun->machine->max_used_stack_alignment if needed.
8327
83282018-08-02  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
8329
8330	Backport from mainline
8331	2018-07-31  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
8332
8333	PR middle-end/86705
8334	* gcc/cfgexpand.c (set_parm_rtl): Use the alignment of Pmode when
8335	MAX_SUPPORTED_STACK_ALIGNMENT would otherwise be exceeded by the
8336	requested variable alignment.
8337	(expand_one_ssa_partition): Likewise.
8338	(expand_one_var): Likewise.
8339
83402018-08-02  Andreas Schwab  <schwab@linux-m68k.org>
8341
8342	Backport from mainline
8343	2018-07-17  Andreas Schwab  <schwab@linux-m68k.org>
8344
8345	PR target/86820
8346	* config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart)
8347	(smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT.
8348
83492018-08-01  Richard Biener  <rguenther@suse.de>
8350
8351	PR bootstrap/86724
8352	* graphite.h: Include isl/id.h and isl/space.h to allow build
8353	with ISL 0.20.
8354
83552018-08-01 Jan Willem Jagersma  <jwjagersma@gmail.com>
8356
8357	PR target/86651
8358	* dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO
8359	mode for COFF targets.
8360	* defaults.h (TARGET_COFF): Define.
8361	* config/i386/djgpp.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END,
8362	TARGET_COFF): Define.
8363	(i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): Declare.
8364	* config/i386/djgpp.c (saved_debug_info_level): New static variable.
8365	(i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): New functions.
8366
83672018-07-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8368
8369	Backport from mainline
8370	2018-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8371
8372	PR c/86617
8373	* genmatch.c (dt_operand::gen_match_op): Avoid folding volatile values.
8374
83752018-07-29  John David Anglin  <danglin@gcc.gnu.org>
8376
8377	* config/pa/pa.c (pa_output_addr_vec): Align address table.
8378	* config/pa/pa.h (JUMP_TABLES_IN_TEXT_SECTION): Revise comment.
8379	* config/pa/pa32-linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
8380
83812018-07-26  Uros Bizjak  <ubizjak@gmail.com>
8382
8383	Backport from mainline
8384	2018-07-16  Uros Bizjak  <ubizjak@gmail.com>
8385
8386	PR target/86511
8387	* expmed.c (emit_store_flag): Do not emit setcc followed by a
8388	conditional move when trapping comparison was split to a
8389	non-trapping one (and vice versa).
8390
83912018-07-26  Jakub Jelinek  <jakub@redhat.com>
8392
8393	Backported from mainline
8394	2018-07-24  Jakub Jelinek  <jakub@redhat.com>
8395
8396	PR middle-end/86627
8397	* expmed.c (expand_divmod): Punt if d == HOST_WIDE_INT_MIN
8398	and size > HOST_BITS_PER_WIDE_INT.  For size > HOST_BITS_PER_WIDE_INT
8399	and abs_d == d, do the power of two handling if profitable.
8400
8401	2018-07-17  Jakub Jelinek  <jakub@redhat.com>
8402
8403	PR middle-end/86542
8404	* omp-low.c (create_task_copyfn): Copy over also fields corresponding
8405	to _looptemp_ clauses, other than the first two.
8406
8407	PR middle-end/86539
8408	* gimplify.c (gimplify_omp_for): Ensure taskloop firstprivatized init
8409	and cond temporaries don't have reference type if iterator has
8410	pointer type.  For init use &for_pre_body instead of pre_p if
8411	for_pre_body is non-empty.
8412
84132018-07-26  Jakub Jelinek  <jakub@redhat.com>
8414
8415	PR middle-end/86660
8416	* omp-low.c (scan_sharing_clauses): Don't ignore map clauses for
8417	declare target to variables if they have always,{to,from,tofrom} map
8418	kinds.
8419
8420	* BASE-VER: Set to 8.2.1.
8421
84222018-07-26  Release Manager
8423
8424	* GCC 8.2.0 released.
8425
84262018-07-18  Martin Sebor  <msebor@redhat.com>
8427
8428	PR middle-end/85602
8429	* calls.c (maybe_warn_nonstring_arg): Handle strncat.
8430	* tree-ssa-strlen.c (is_strlen_related_p): Make extern.
8431	Handle integer subtraction.
8432	(maybe_diag_stxncpy_trunc): Handle nonstring source arguments.
8433	* tree-ssa-strlen.h (is_strlen_related_p): Declare.
8434	* doc/invoke.texi (-Wstringop-truncation): Update.
8435
8436gcc/testsuite/ChangeLog:
8437
84382018-07-16  Claudiu Zissulescu  <claziss@synopsys.com>
8439
8440	Backport from mainline
8441	2017-03-24  Claudiu Zissulescu  <claziss@synopsys.com>
8442
8443	* config/arc/arc-protos.h (arc_pad_return): Remove.
8444	* config/arc/arc.c (machine_function): Remove force_short_suffix
8445	and size_reason.
8446	(arc_print_operand): Adjust printing of '&'.
8447	(arc_verify_short): Remove conditional printing of short suffix.
8448	(arc_final_prescan_insn): Remove reference to size_reason.
8449	(pad_return): New function.
8450	(arc_reorg): Call pad_return.
8451	(arc_pad_return): Remove.
8452	(arc_init_machine_status): Remove reference to force_short_suffix.
8453	* config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE.
8454	(attr length): When attribute iscompact is true force to 2
8455	regardless; in the case of maybe check if we want to force the
8456	instruction to have 4 bytes length.
8457	(nopv): Change it to generate 4 byte long nop as well.
8458	(blockage): New pattern.
8459	(simple_return): Remove call to arc_pad_return.
8460	(p_return_i): Likewise.
8461
84622018-07-19  Richard Biener  <rguenther@suse.de>
8463
8464	Backport from mainline
8465	2018-07-13  Richard Biener  <rguenther@suse.de>
8466
8467	PR debug/86452
8468	* dwarf2out.c (gen_type_die_with_usage): Use scope_die_for
8469	instead of get_context_die.
8470
8471	2018-07-11  Richard Biener  <rguenther@suse.de>
8472
8473	PR debug/86457
8474	* dwarf2out.c (init_sections_and_labels): Use
8475	output_asm_line_debug_info consistently.
8476	(dwarf2out_early_finish): Likewise.
8477	(dwarf2out_finish): Remove DW_AT_stmt_list from early generated
8478	type units.
8479
84802018-07-16  Richard Biener  <rguenther@suse.de>
8481
8482	Backport from mainline
8483	2018-07-13  Richard Biener  <rguenther@suse.de>
8484
8485	PR middle-end/85974
8486	* match.pd (addr1 - addr2): Allow either of the operand to
8487	have a conversion.
8488
8489	2018-06-15  Richard Biener  <rguenther@suse.de>
8490
8491	PR middle-end/86076
8492	* tree-cfg.c (move_stmt_op): unshare invariant addresses
8493	before adjusting their block.
8494
8495	2018-06-06  Richard Biener  <rguenther@suse.de>
8496
8497	PR tree-optimization/85935
8498	* graphite-scop-detection.c (find_params_in_bb): Analyze
8499	condition operands with respect to the correct loop.  Assert
8500	the analysis doesn't fail.
8501
85022018-07-16  Eric Botcazou  <ebotcazou@adacore.com>
8503
8504	PR tree-optimization/86514
8505	* tree-ssa-reassoc.c (init_range_entry) <CASE_CONVERT>: Return for a
8506	conversion to a boolean type from a type with greater precision.
8507
85082018-07-15  Bill Schmidt  <wschmidt@linux.ibm.com>
8509
8510	Backport from mainline
8511	2018-07-13  Bill Schmidt  <wschmidt@linux.ibm.com>
8512		    Steve Munroe  <munroesj52@gmail.com>
8513
8514	* config/rs6000/emmintrin.h (_mm_and_si128): New function.
8515	(_mm_andnot_si128): Likewise.
8516	(_mm_or_si128): Likewise.
8517	(_mm_xor_si128): Likewise.
8518
85192018-07-14  Martin Sebor  <msebor@redhat.com>
8520
8521	PR tree-optimization/86274
8522	* gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify
8523	precondition.
8524	(format_floating): Correct handling of infinities and NaNs.
8525
85262018-07-13  H.J. Lu  <hongjiu.lu@intel.com>
8527
8528	Backport from mainline
8529	2018-07-13  H.J. Lu  <hongjiu.lu@intel.com>
8530		    Sunil K Pandey  <sunil.k.pandey@intel.com>
8531
8532	PR target/84413
8533	* config/i386/i386.c (m_CORE_AVX512): New.
8534	(m_CORE_AVX2): Likewise.
8535	(m_CORE_ALL): Add m_CORE_AVX2.
8536	* config/i386/x86-tune.def: Replace m_HASWELL with m_CORE_AVX2.
8537	Replace m_SKYLAKE_AVX512 with m_CORE_AVX512 on avx256_optimal
8538	and remove the rest of m_SKYLAKE_AVX512.
8539
85402018-07-13  Marek Polacek  <polacek@redhat.com>
8541
8542	Backport from trunk
8543	2018-07-03  Marek Polacek  <polacek@redhat.com>
8544
8545	PR middle-end/86202
8546	* gimple-fold.c (size_must_be_zero_p): Check the type of the size.
8547
85482018-07-12  Richard Biener  <rguenther@suse.de>
8549
8550	PR target/84829
8551	* config/gnu-user.h (GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC):
8552	Remove -mieee-fp handling.
8553
85542018-07-12  Jakub Jelinek  <jakub@redhat.com>
8555
8556	PR tree-optimization/86492
8557	* gimple-ssa-store-merging.c
8558	(imm_store_chain_info::coalesce_immediate_stores): Call
8559	check_no_overlap even for the merge_overlapping case.
8560
85612018-07-11  Jakub Jelinek  <jakub@redhat.com>
8562
8563	* config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask):
8564	Use __mmask64 type instead of __mmask8 for __M argument.
8565	* config/i386/avx512fintrin.h (_mm512_mask_xor_epi64,
8566	_mm512_maskz_xor_epi64): Use __mmask8 type instead of __mmask16 for
8567	__U argument.
8568	(_mm512_mask_cmpneq_epi64_mask): Use __mmask8 type instead of
8569	__mmask16 for __M argument.
8570	(_mm512_maskz_insertf32x4, _mm512_maskz_inserti32x4,
8571	_mm512_mask_insertf32x4, _mm512_mask_inserti32x4): Cast last argument
8572	to __mmask16 instead of __mmask8.
8573	* config/i386/avx512vlintrin.h (_mm_mask_add_ps, _mm_maskz_add_ps,
8574	_mm256_mask_add_ps, _mm256_maskz_add_ps, _mm_mask_sub_ps,
8575	_mm_maskz_sub_ps, _mm256_mask_sub_ps, _mm256_maskz_sub_ps,
8576	_mm256_maskz_cvtepi32_ps, _mm_maskz_cvtepi32_ps): Use __mmask8 type
8577	instead of __mmask16 for __U argument.
8578	* config/i386/avx512vlbwintrin.h (_mm_mask_cmp_epi8_mask): Use
8579	__mmask16 instead of __mmask8 for __U argument.
8580	(_mm256_mask_cmp_epi8_mask): Use __mmask32 instead of __mmask16 for
8581	__U argument.
8582	(_mm256_cmp_epi8_mask): Use __mmask32 return type instead of
8583	__mmask16.
8584	(_mm_mask_cmp_epu8_mask): Use __mmask16 instead of __mmask8 for __U
8585	argument.
8586	(_mm256_mask_cmp_epu8_mask): Use __mmask32 instead of __mmask16 for
8587	__U argument.
8588	(_mm256_cmp_epu8_mask): Use __mmask32 return type instead of
8589	__mmask16.
8590	(_mm_mask_cmp_epi16_mask): Cast last argument to __mmask8 instead
8591	of __mmask16.
8592	(_mm256_mask_cvtepi8_epi16): Use __mmask16 instead of __mmask32 for
8593	__U argument.
8594	(_mm_mask_cvtepi8_epi16): Use __mmask8 instead of __mmask32 for
8595	__U argument.
8596	(_mm256_mask_cvtepu8_epi16): Use __mmask16 instead of __mmask32 for
8597	__U argument.
8598	(_mm_mask_cvtepu8_epi16): Use __mmask8 instead of __mmask32 for
8599	__U argument.
8600	(_mm256_mask_cmpneq_epu8_mask, _mm256_mask_cmplt_epu8_mask,
8601	_mm256_mask_cmpge_epu8_mask, _mm256_mask_cmple_epu8_mask): Change
8602	return type as well as __M argument type and all casts from __mmask8
8603	to __mmask32.
8604	(_mm256_mask_cmpneq_epu16_mask, _mm256_mask_cmplt_epu16_mask,
8605	_mm256_mask_cmpge_epu16_mask, _mm256_mask_cmple_epu16_mask): Change
8606	return type as well as __M argument type and all casts from __mmask8
8607	to __mmask16.
8608	(_mm256_mask_cmpneq_epi8_mask, _mm256_mask_cmplt_epi8_mask,
8609	_mm256_mask_cmpge_epi8_mask, _mm256_mask_cmple_epi8_mask): Change
8610	return type as well as __M argument type and all casts from __mmask8
8611	to __mmask32.
8612	(_mm256_mask_cmpneq_epi16_mask, _mm256_mask_cmplt_epi16_mask,
8613	_mm256_mask_cmpge_epi16_mask, _mm256_mask_cmple_epi16_mask): Change
8614	return type as well as __M argument type and all casts from __mmask8
8615	to __mmask16.
8616	* config/i386/avx512vbmi2vlintrin.h (_mm_mask_shrdi_epi32,
8617	_mm_mask_shldi_epi32): Cast last argument to __mmask8 instead of
8618	__mmask16.
8619
86202018-07-11  Grazvydas Ignotas  <notasas@gmail.com>
8621
8622	* config/i386/avx512bwintrin.h: (_mm512_mask_cmp_epi8_mask,
8623	_mm512_mask_cmp_epu8_mask): Use __mmask64 type instead of __mmask32
8624	for __U argument.
8625
86262018-07-05  Martin Sebor  <msebor@redhat.com>
8627
8628	PR c++/86400
8629	* tree-ssa-strlen.c (maybe_set_strlen_range): Use type size rather
8630	than its domain to compute its the upper bound of a char array.
8631
86322018-07-03  Carl Love  <cel@us.ibm.com>
8633
8634	Backport from trunk
8635	2018-07-03  Carl Love  <cel@us.ibm.com>
8636
8637	* config/rs6000/rs6000-c.c: Map ALTIVEC_BUILTIN_VEC_UNPACKH for
8638	float argument to VSX_BUILTIN_DOUBLEH_V4SF.
8639	Map ALTIVEC_BUILTIN_VEC_UNPACKL for float argument to
8640	VSX_BUILTIN_DOUBLEL_V4SF.
8641
86422018-07-04  Luis Machado  <luis.machado@linaro.org>
8643
8644	* config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static
8645	global.
8646	(qdf24xx_tunings) <addr_costs>: Set to qdf24xx_addrcost_table.
8647
86482018-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
8649
8650	Backport from trunk
8651	2018-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
8652
8653	PR target/86285
8654	* config/rs6000/rs6000.c (rs6000_init_builtins): Do not set
8655	ieee128_float_type_node to long_double_type_node unless
8656	TARGET_LONG_DOUBLE_128 is set.
8657
86582018-07-02  Eric Botcazou  <ebotcazou@adacore.com>
8659
8660	* config/i386/i386.c (ix86_finalize_stack_frame_flags): Do not overrule
8661	-fno-omit-frame-pointer when not optimizing.
8662
86632018-06-30  Alexandre Oliva  <aoliva@redhat.com>
8664
8665	PR debug/86064
8666	* dwarf2out.c (loc_list_has_views): Adjust comments.
8667	(dw_loc_list): Split single cross-partition range with
8668	nonzero locview.
8669
86702018-06-29  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8671
8672	Backport from mainline
8673	2018-06-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8674
8675	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
8676	behavior of vec_pack (vector double, vector double) to match
8677	behavior of vec_float2 (vector double, vector double).
8678
86792018-06-29  Jakub Jelinek  <jakub@redhat.com>
8680
8681	* config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H.
8682
86832018-06-28  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8684
8685	Backport from mainline
8686	2017-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
8687
8688	* doc/sourcebuild.texi (Endianness): New subsubsection.
8689
86902018-06-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8691
8692	Backport from mainline
8693	2018-06-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8694
8695	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
8696	behavior of vec_packsu (vector unsigned long long, vector unsigned
8697	long long) to match behavior of vec_packs with same signature.
8698
86992018-06-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
8700
8701	Backport from trunk
8702	2018-06-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
8703
8704	* config/rs6000/rs6000-string.c (expand_block_clear): Don't use
8705	unaligned vsx for 16B memset.
8706
87072018-06-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
8708
8709	Backport from trunk
8710	2018-06-22  Aaron Sawdey  <acsawdey@linux.ibm.com>
8711
8712	PR target/86222
8713	* config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32
8714	correctly.
8715
87162018-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
8717
8718	Backport from trunk
8719	2018-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
8720
8721	PR rtl-optimization/85645
8722	* regrename.c (build_def_use): Also kill the chains that include the
8723	destination of a REG_CFA_REGISTER note.
8724
87252018-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
8726
8727	Backport from trunk
8728	2018-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
8729
8730	PR rtl-optimization/85645
8731	*  regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an
8732	insn that has a REG_CFA_REGISTER note.
8733
87342018-06-26  Robin Dapp  <rdapp@linux.ibm.com>
8735
8736	* config/s390/s390.h (enum processor_flags): Do not use
8737	default tune parameter when -march was specified.
8738
87392018-06-26  Jakub Jelinek  <jakub@redhat.com>
8740
8741	PR target/86314
8742	* config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s):
8743	Check reg_overlap_mentioned_p in addition to reg_set_p with the same
8744	operands.
8745
87462018-06-25  Michael Meissner  <meissner@linux.ibm.com>
8747
8748	Back port from trunk
8749	2018-06-25  Michael Meissner  <meissner@linux.ibm.com>
8750
8751	* config.gcc (powerpc64le*): Revert January 16th, 2018 patch that
8752	added IEEE/IBM long double multilib support on PowerPC little
8753	endian Linux systems.
8754	* config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise.
8755	(MULTILIB_DEFAULTS): Likewise.
8756	* config/rs6000/rs6000.c (rs6000_option_override_internal):
8757	Likewise.
8758	* config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise.
8759	* config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used.
8760	* config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used.
8761
87622018-06-25  Segher Boessenkool  <segher@kernel.crashing.org>
8763
8764	Backport from trunk
8765	2018-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
8766
8767	* config/rs6000/rs6000.md (abs<mode>2): Handle IFmode.
8768
87692018-05-02  Jan Hubicka  <jh@suse.cz>
8770
8771	Backport from mainline
8772	2018-04-30  Jan Hubicka  <jh@suse.cz>
8773
8774	* lto-wrapper.c (ltrans_priorities): New static var.
8775	(cmp_priority): New.
8776	(run_gcc): Read priorities and if doing parallel build order
8777	the Makefile by them.
8778
87792018-06-25  Segher Boessenkool  <segher@kernel.crashing.org>
8780
8781	Backport from trunk
8782	2018-06-19  Segher Boessenkool  <segher@kernel.crashing.org>
8783
8784	PR target/86197
8785	* config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An
8786	ieee128 argument takes up only one (vector) register, not two (floating
8787	point) registers.
8788
87892018-06-23  Richard Sandiford  <richard.sandiford@linaro.org>
8790
8791	PR tree-optimization/85989
8792	* gimple-ssa-backprop.c (backprop::m_visited_phis): New member
8793	variable.
8794	(backprop::intersect_uses): Check it when deciding whether this
8795	is a backedge reference.
8796	(backprop::process_block): Add each phi to m_visited_phis
8797	after visiting it, then clear it at the end.
8798
87992018-06-22  David Edelsohn  <dje.gcc@gmail.com>
8800
8801	Backport from mainline
8802
8803	2018-06-19  Tony Reix  <tony.reix@atos.com>
8804	    Damien Bergamini  <damien.bergamini@atos.com>
8805	    David Edelsohn  <dje.gcc@gmail.com>
8806
8807	* collect2.c (static_obj): New variable.
8808	(static_libs): New variable.
8809	(is_in_list): Uncomment declaration.
8810	(main): Track AIX libraries linked statically.
8811	(is_in_list): Uncomment definition.
8812	(scan_prog_file): Don't add AIX shared libraries initializer
8813	to constructor list if linking statically.
8814
88152018-06-22  Michael Meissner  <meissner@linux.ibm.com>
8816
8817	Back port from trunk
8818	2018-06-21  Michael Meissner  <meissner@linux.ibm.com>
8819
8820	* config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit
8821	conversion insn that shows up when pr85657-3.c is compiled using
8822	IEEE 128-bit long double.
8823
8824	Back port from trunk
8825	2018-06-21  Michael Meissner  <meissner@linux.ibm.com>
8826
8827	* config/rs6000/rs6000.c (init_float128_ieee): Prevent complex
8828	multiply and divide external functions from being created more
8829	than once.
8830
8831	Back port from trunk
8832	2018-06-21  Michael Meissner  <meissner@linux.ibm.com>
8833
8834	* config/rs6000/rs6000.md (neg<mode>2_internal): Use the correct
8835	mode to check whether the mode is IBM extended.
8836
8837	2018-06-18  Michael Meissner  <meissner@linux.ibm.com>
8838
8839	PR target/85358
8840	* config/rs6000/rs6000-modes.def (toplevel): Rework the 128-bit
8841	floating point modes, so that IFmode is numerically greater than
8842	TFmode, which is greater than KFmode using FRACTIONAL_FLOAT_MODE
8843	to declare the ordering.  This prevents IFmode from being
8844	converted to TFmode when long double is IEEE 128-bit on an ISA 3.0
8845	machine.  Include rs6000-modes.h to share the fractional values
8846	between genmodes* and the rest of the compiler.
8847	(IFmode): Likewise.
8848	(KFmode): Likewise.
8849	(TFmode): Likewise.
8850	* config/rs6000/rs6000-modes.h: New file.
8851	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Change the
8852	meaning of rs6000_long_double_size so that 126..128 selects an
8853	appropriate 128-bit floating point type.
8854	(rs6000_option_override_internal): Likewise.
8855	* config/rs6000/rs6000.h (toplevel): Include rs6000-modes.h.
8856	(TARGET_LONG_DOUBLE_128): Change the meaning of
8857	rs6000_long_double_size so that 126..128 selects an appropriate
8858	128-bit floating point type.
8859	(LONG_DOUBLE_TYPE_SIZE): Update comment.
8860	* config/rs6000/rs6000.md (trunciftf2): Correct the modes of the
8861	source and destination to match the standard usage.
8862	(truncifkf2): Likewise.
8863	(copysign<mode>3, IEEE iterator): Rework copysign of float128 on
8864	ISA 2.07 to use an explicit clobber, instead of passing in a
8865	temporary.
8866	(copysign<mode>3_soft): Likewise.
8867
8868	Back port from trunk
8869	2018-06-08  David Edelsohn  <dje.gcc@gmail.com>
8870
8871	* config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if
8872	TARGET_ELF.
8873
8874	Back port from trunk
8875	2018-06-04  Michael Meissner  <meissner@linux.ibm.com>
8876
8877	* config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to
8878	track if we pass or return IEEE 128-bit floating point.
8879	(ieee128_mangling_gcc_8_1): New boolean to say whether to generate
8880	C++ mangling that is compatible with GCC 8.1.
8881	(TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook.
8882	(init_cumulative_args): Note if we pass or return IEEE 128-bit
8883	floating point types.
8884	(rs6000_function_arg_advance_1): Likewise.
8885	(rs6000_mangle_type): Optionally generate mangled names that match
8886	what GCC 8.1 generated for IEEE 128-bit floating point types.
8887	(rs6000_globalize_decl_name): If we have an external function that
8888	passes or returns IEEE 128-bit types, generate a weak reference
8889	from the mangled name used in GCC 8.1 to the current mangled
8890	name.
8891	(rs6000_init_builtins): Make __ibm128 use the long double type if
8892	long double is IBM extended double.  Make __float128 use the long
8893	double type if long double is IEEE 128-bit.
8894
8895	PR target/85657
8896	* config/rs6000/rs6000-builtin.def (BU_IBM128_2): New helper
8897	macro for __ibm128 built-in functions.
8898	(PACK_IF): Add __ibm128 pack/unpack functions.
8899	(UNPACK_IF): Likewise.
8900	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Do not
8901	enable long double built-in functions if long double is IEEE
8902	128-bit floating point.
8903	(rs6000_invalid_builtin): Update long double built-in function
8904	error message.
8905	(rs6000_expand_builtin): For PACK_IF and UNPACK_IF built-in
8906	functions, adjust the built-in function to use the long double
8907	built-in function if __ibm128 and long double are the same type.
8908	* doc/extend.texi (PowerPC builtins): Update documention for
8909	__builtin_{,un}pack_longdouble.  Add documentation for
8910	__builtin_{,un}pack_ibm128.
8911
8912	Back port from trunk
8913	2018-06-01  Segher Boessenkool  <segher@kernel.crashing.org>
8914
8915	* config/rs6000/rs6000.c (rs6000_mangle_type): Change the mangling of
8916	the 128-bit floating point types.  Fix function comment.
8917
89182018-06-22  Michael Meissner  <meissner@linux.ibm.com>
8919
8920	Back port from trunk
8921	2018-05-21  Michael Meissner  <meissner@linux.ibm.com>
8922
8923	PR target/85657
8924	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
8925	define __ibm128 as long double.
8926	* config/rs6000/rs6000.c (rs6000_init_builtins): Create __ibm128
8927	as a distinct type with IEEE 128-bit floating point is supported.
8928	(init_float128_ieee): Fix up conversions between IFmode and IEEE
8929	128-bit types to use the correct functions.
8930	(rs6000_expand_float128_convert): Use explicit FLOAT_EXTEND to
8931	convert between 128-bit floating point types that have different
8932	modes but the same representation, instead of using gen_lowpart to
8933	makean alias.
8934	* config/rs6000/rs6000.md (IFKF): New iterator for IFmode and
8935	KFmode.
8936	(IFKF_reg): New attributes to give the register constraints for
8937	IFmode and KFmode.
8938	(extend<mode>tf2_internal): New insns to mark an explicit
8939	conversion between 128-bit floating point types that have a
8940	different mode but share the same representation.
8941
89422018-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8943
8944	PR target/85994
8945	* config/i386/sol2.h (CPP_SPEC): Don't pass -P for
8946	-x assembler-with-cpp.
8947
89482018-06-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8949
8950	Backported from mainline
8951	2018-06-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8952
8953	* config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom
8954	multilibs for *-*-rtems*.
8955	* config/riscv/t-rtems: New file.
8956
89572018-06-20  Jakub Jelinek  <jakub@redhat.com>
8958
8959	Backported from mainline
8960	2018-06-16  Jakub Jelinek  <jakub@redhat.com>
8961
8962	PR rtl-optimization/86108
8963	* bb-reorder.c (create_forwarder_block): Renamed to ...
8964	(create_eh_forwarder_block): ... this.  Split OLD_BB after labels and
8965	jump from new landing pad to the second part.
8966	(sjlj_fix_up_crossing_landing_pad, dw2_fix_up_crossing_landing_pad):
8967	Adjust callers.
8968
89692018-06-20  Jakub Jelinek  <jakub@redhat.com>
8970
8971	PR debug/86194
8972	* var-tracking.c (use_narrower_mode_test): Check if shift amount can
8973	be narrowed.
8974
8975	PR tree-optimization/86231
8976	* tree-vrp.c (union_ranges): For (  [  )  ] or (   )[   ] range and
8977	anti-range don't overwrite *vr0min before using it to compute *vr0max.
8978
89792018-06-19  Max Filippov  <jcmvbkbc@gmail.com>
8980
8981	Backport from mainline
8982	2018-06-19  Max Filippov  <jcmvbkbc@gmail.com>
8983
8984	* config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec
8985	constant.
8986	(allocate_stack, frame_blockage, *frame_blockage): New patterns.
8987
89882018-06-19  Eric Botcazou  <ebotcazou@adacore.com>
8989
8990	* gimplify.c (gimplify_init_constructor): Really never clear for an
8991	incomplete constructor if CONSTRUCTOR_NO_CLEARING is set.
8992
89932018-06-18  Martin Sebor  <msebor@redhat.com>
8994
8995	PR c/82063
8996	* calls.c (alloc_max_size): Correct a logic error/typo.
8997	Treat excessive arguments as infinite.  Warn for invalid arguments.
8998	* doc/invoke.texi (-Walloc-size-larger-than): Update.
8999
90002018-06-16  Jakub Jelinek  <jakub@redhat.com>
9001
9002	PR middle-end/86095
9003	* common.opt (Wunsafe-loop-optimizations): Add Ignore, remove Var,
9004	documented as preserved for backward compatibility only.
9005	* doc/invoke.texi: Remove -Wunsafe-loop-optimizations documentation.
9006
90072018-06-15  Jakub Jelinek  <jakub@redhat.com>
9008
9009	PR middle-end/85878
9010	* expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P
9011	check from first store_expr, use to_mode instead of GET_MODE (to_rtx).
9012	Only call store_expr for halves if the mode is the same.
9013
9014	PR middle-end/86123
9015	* match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions.
9016	Fix up comment formatting.
9017
90182018-06-14  Jakub Jelinek  <jakub@redhat.com>
9019
9020	PR middle-end/86122
9021	* match.pd ((A +- CST1) +- CST2): Punt if last resort
9022	unsigned_type_for returns NULL.
9023
9024	PR target/85945
9025	* lower-subreg.c (find_decomposable_subregs): Don't decompose float
9026	subregs of multi-word pseudos unless the float mode has word size.
9027
90282018-06-14  Richard Biener  <rguenther@suse.de>
9029
9030	PR middle-end/86139
9031	* tree-vect-generic.c (build_word_mode_vector_type): Remove
9032	duplicate and harmful type_hash_canon.
9033	* tree.c (type_hash_canon): Assert we didn't find ourselves.
9034
90352018-06-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9036
9037	Backport from mainline
9038	2018-06-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9039
9040	* config/rtems.h (STDINT_LONG32): Define.
9041
90422018-05-05  Roland McGrath  <mcgrathr@google.com>
9043
9044	PR other/77609
9045	* varasm.c (default_section_type_flags): Set SECTION_NOTYPE for
9046	any section for which we don't know a specific type it should have,
9047	regardless of name.  Previously this was done only for the exact
9048	names ".init_array", ".fini_array", and ".preinit_array".
9049	(default_elf_asm_named_section): Add comment about
9050	relationship with default_section_type_flags and SECTION_NOTYPE.
9051	(get_section): Don't consider it a type conflict if one side has
9052	SECTION_NOTYPE and the other doesn't, as long as neither has the
9053	SECTION_BSS et al used in the default_section_type_flags logic.
9054
90552018-06-13  Martin Sebor  <msebor@redhat.com>
9056
9057	PR tree-optimization/86114
9058	* gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS
9059	of integer types.
9060	* tree-ssa-strlen.c (maybe_set_strlen_range): Same.
9061
90622018-06-13  Eric Botcazou  <ebotcazou@adacore.com>
9063
9064	PR target/86048
9065	* config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative
9066	offsets for register save directives.  Emit a second batch of save
9067	directives, if need be, when the function accesses prior frames.
9068
90692018-06-11  Jason Merrill  <jason@redhat.com>
9070
9071	PR c++/80485 - inline function non-zero address.
9072	* symtab.c (nonzero_address): Check DECL_COMDAT.
9073
90742018-06-11  Peter Bergner  <bergner@vnet.ibm.com>
9075
9076	Backport from mainline
9077	2018-06-08  Peter Bergner  <bergner@vnet.ibm.com>
9078
9079	PR target/85755
9080	* config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC
9081	addresses.
9082
90832018-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
9084
9085	Backport from trunk
9086	2018-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
9087
9088	PR target/85755
9089	* config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers
9090	on the correct operand.
9091	(*movdi_internal64): Ditto.
9092
90932018-06-08  Carl Love  <cel@us.ibm.com>
9094
9095	Backport from mainline
9096	* gcc/config/rs6000/vsx.md (vextract_fp_from_shorth,
9097	vextract_fp_from_shortl): Add BE support.
9098
90992018-06-08  Carl Love  <cel@us.ibm.com>
9100
9101	Backport from mainline
9102	* gcc/config/rs6000/vsx.md (first_match_index_<mode>):
9103	Calculate index using natureal element order.
9104	(first_match_or_eos_index_<mode>):
9105	Calculate index using natural element order.
9106	(first_match_index_<mode>):
9107	Calculate index using natural element order.
9108	(first_match_or_eos_index_<mode>):
9109	Calculate index using natural order.
9110	(define_insn vclzlsbb): Change to define_insn vclzlsbb_<mode>.
9111	for BE and LE modes.
9112	* gcc/config/rs6000/rs6000-c.c: Rename P9V_BUILTIN_VCLZLSBB,
9113	P9V_BUILTIN_VCLZLSBB_V16QI.
9114	* gcc/config/rs6000/rs6000-builtin.def: Make VCLZLSBB mode
9115	specific.
9116
91172018-06-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9118
9119	Backport from mainline
9120	2018-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9121
9122	PR target/81497
9123	* config/arm/arm-builtins.c (arm_type_qualifiers): Add
9124	qualifier_void_pointer and qualifier_const_void_pointer.
9125	(arm_ldc_qualifiers, arm_stc_qualifiers): Use the above.
9126	(arm_init_builtins): Handle the above.
9127	* config/arm/arm_acle.h (__arm_cdp, __arm_ldc, __arm_ldcl, __arm_stc,
9128	__arm_stcl, __arm_mcr, __arm_cdp2, __arm_ldc2, __arm_ldcl2, __arm_stc2,
9129	__arm_stcl2,__arm_mcr2, __arm_mcrr, __arm_mcrr2): Remove return for
9130	void intrinsics.
9131
91322018-06-07  Uros Bizjak  <ubizjak@gmail.com>
9133
9134	PR target/85684
9135	* config/i386/i386.c (ix86_expand_builtin) <case IX86_BUILTIN_RDPID>:
9136	Generate SImode target register for null target.
9137	<case IX86_BUILTIN_XGETBV>: Ditto.
9138	<case IX86_BUILTIN_XSETBV>: Optimize LSHIFTRT generation.
9139	* config/i386/xsaveintrin.h (_xgetbv): Add missing return.
9140
91412018-06-07  Peter Bergner  <bergner@vnet.ibm.com>
9142
9143	Backport from mainline
9144	2018-06-06  Peter Bergner  <bergner@vnet.ibm.com>
9145
9146	PR target/63177
9147	* /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9.
9148	Don't handle -mcpu=power8 if -mpower9-vector is also used.
9149
91502018-06-06  Richard Biener  <rguenther@suse.de>
9151
9152	Backport from mainline
9153	2018-06-04  Richard Biener  <rguenther@suse.de>
9154
9155	PR tree-optimization/86038
9156	* tracer.c (find_best_successor): Check probability for
9157	being initialized, bail out if not.
9158
9159	2018-05-30  Richard Biener  <rguenther@suse.de>
9160
9161	PR tree-optimization/85964
9162	* tracer.c (better_p): Drop initialized count check, we only
9163	call the function with initialized counts now.
9164	(find_best_successor): Do find a best edge if one
9165	has uninitialized count.
9166	(find_best_predecessor): Likewise.  Do BB frequency check only
9167	if count is initialized.
9168
9169	2018-05-28  Richard Biener  <rguenther@suse.de>
9170
9171	PR tree-optimization/85934
9172	* tree-vect-generic.c (expand_vector_operations_1): Hoist
9173	vector boolean check before scalar optimization.
9174
9175	2018-05-22  Richard Biener  <rguenther@suse.de>
9176
9177	PR tree-optimization/85863
9178	* tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant
9179	comparisons when vectype is specified.
9180	(vectorizable_condition): Do not specify vectype for
9181	vect_is_simple_cond when SLP vectorizing.
9182
91832018-06-05  Andreas Krebbel  <krebbel@linux.ibm.com>
9184
9185	Backport from mainline
9186	2018-06-05  Andreas Krebbel  <krebbel@linux.ibm.com>
9187
9188	* config/s390/s390-builtin-types.def: Add void function type.
9189	* config/s390/s390-builtins.def: Use the function type for the
9190	tbeginc builtin.
9191
91922018-06-04  Martin Sebor  <msebor@redhat.com>
9193
9194	PR c/85623
9195	* calls.c (maybe_warn_nonstring_arg): Use string length to set
9196	or ajust the presumed bound on an operation to avoid unnecessary
9197	warnings.
9198
91992018-06-04  Richard Earnshaw  <rearnsha@arm.com>
9200
9201	PR target/86003
9202	* config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list
9203	of bits to ignore when comparing architectures.
9204
92052018-06-04  Jakub Jelinek  <jakub@redhat.com>
9206
9207	PR c++/86025
9208	* tree.c (inchash::add_expr): Handle IDENTIFIER_NODE.
9209
92102018-06-01  Bill Schmidt  <wschmidt@linux.ibm.com>
9211
9212	PR tree-optimization/85712
9213	Backport from mainline:
9214	2018-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
9215
9216	PR tree-optimization/85712
9217	* gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
9218	first_interp field.
9219	(alloc_cand_and_find_basis): Initialize first_interp field.
9220	(slsr_process_mul): Modify first_interp field.
9221	(slsr_process_add): Likewise.
9222	(slsr_process_cast): Modify first_interp field for each new
9223	interpretation.
9224	(slsr_process_copy): Likewise.
9225	(dump_candidate): Dump first_interp field.
9226	(replace_mult_candidate): Process all interpretations, not just
9227	subsequent ones.
9228	(replace_rhs_if_not_dup): Likewise.
9229	(replace_one_candidate): Likewise.
9230
9231	Backport from mainline:
9232	2018-05-25  Bill Schmidt  <wschmidt@linux.ibm.com>
9233
9234	PR tree-optimization/85712
9235	* gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if
9236	this candidate has already been replaced in-situ by a copy.
9237
92382018-05-31  Uros Bizjak  <ubizjak@gmail.com>
9239
9240	PR target/85950
9241	* config/i386/i386.md (l<rounding_insn><MODEF:mode><SWI48:mode>2):
9242	Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q}
9243	sequence.
9244	(sse4_1_round<mode>2): Use nonimmediate_operand
9245	for operand 1 predicate.
9246
92472018-05-31  Jakub Jelinek  <jakub@redhat.com>
9248
9249	PR target/85984
9250	* bb-reorder.c (pass_partition_blocks::gate): Return false for
9251	functions with naked attribute.
9252
92532018-05-31  H.J. Lu  <hongjiu.lu@intel.com>
9254
9255	PR target/85829
9256	* config/i386/x86-tune.def: Re-enable partial_reg_dependency
9257	and movx for Haswell.
9258
92592018-05-30  Jakub Jelinek  <jakub@redhat.com>
9260
9261	Backported from mainline
9262	2018-05-14  Jakub Jelinek  <jakub@redhat.com>
9263
9264	PR target/85756
9265	* config/i386/i386.md: Disallow non-commutative arithmetics in
9266	last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim
9267	optimization.  Use COMMUTATIVE_ARITH_P test rather than != MINUS
9268	in the peephole2 before it.
9269
9270	2018-05-08  Jakub Jelinek  <jakub@redhat.com>
9271
9272	PR target/85683
9273	* config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0
9274	after cmpelim optimization.
9275
92762018-05-28  H.J. Lu  <hongjiu.lu@intel.com>
9277
9278	Backport from mainline
9279	2018-05-26  H.J. Lu  <hongjiu.lu@intel.com>
9280
9281	PR target/85900
9282	PR target/85345
9283	* varasm.c (assemble_alias): Lookup ifunc attribute on error.
9284
9285	2018-05-24  H.J. Lu  <hongjiu.lu@intel.com>
9286
9287	PR target/85900
9288	PR target/85345
9289	* varasm.c (assemble_alias): Check ifunc_resolver only on
9290	FUNCTION_DECL.
9291
9292	2018-05-22  H.J. Lu  <hongjiu.lu@intel.com>
9293
9294	PR target/85345
9295	* cgraph.h (cgraph_node::create): Set ifunc_resolver for ifunc
9296	attribute.
9297	(cgraph_node::create_alias): Likewise.
9298	(cgraph_node::get_availability): Check ifunc_resolver instead
9299	of looking up ifunc attribute.
9300	* cgraphunit.c (maybe_diag_incompatible_alias): Likewise.
9301	* varasm.c (do_assemble_alias): Likewise.
9302	(assemble_alias): Likewise.
9303	(default_binds_local_p_3): Likewise.
9304	* cgraph.h (cgraph_node): Add ifunc_resolver.
9305	(cgraph_node::only_called_directly_or_aliased_p): Return false
9306	for IFUNC resolver.
9307	* lto-cgraph.c (input_node): Set ifunc_resolver for ifunc
9308	attribute.
9309	* symtab.c (symtab_node::verify_base): Verify that ifunc_resolver
9310	is equivalent to lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)).
9311	(symtab_node::binds_to_current_def_p): Check ifunc_resolver
9312	instead of looking up ifunc attribute.
9313
93142018-05-27  John David Anglin  <danglin@gcc.gnu.org>
9315
9316	* config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0.
9317
93182018-05-25  Richard Biener  <rguenther@suse.de>
9319
9320	PR c++/85912
9321	* tree-dump.c (dequeue_and_dump): Remove access to removed
9322	operand 2 of a SWITCH_EXPR.
9323
93242018-05-24  Uros Bizjak  <ubizjak@gmail.com>
9325
9326	* config/i386/sse.md (cvtusi2<ssescalarmodesuffix>64<round_name>):
9327	Add {q} suffix to insn mnemonic.
9328
93292018-05-24  Uros Bizjak  <ubizjak@gmail.com>
9330
9331	PR target/85903
9332	* config/i386/sse.md (movdi_to_sse): Do not generate pseudo
9333	when memory input operand is handled.
9334
93352018-05-23  Bin Cheng  <bin.cheng@arm.com>
9336
9337	Backport from mainline
9338	2018-05-17  Bin Cheng  <bin.cheng@arm.com>
9339	    Richard Biener  <rguenther@suse.de>
9340
9341	PR tree-optimization/85793
9342	* tree-vect-stmts.c (vectorizable_load): Handle 1 element-wise load
9343	for VMAT_ELEMENTWISE.
9344
93452018-05-23  Richard Biener  <rguenther@suse.de>
9346
9347	PR middle-end/85874
9348	* tree-data-ref.c (create_runtime_alias_checks): Defer
9349	and ignore overflow warnings.
9350
93512018-05-23  Martin Liska  <mliska@suse.cz>
9352
9353	Backport from mainline
9354	2018-05-23  Yury Gribov  <tetra2005@gmail.com>
9355
9356	PR tree-optimization/85822
9357	* tree-vrp.c (is_masked_range_test): Fix handling of negative
9358	constants.
9359
93602018-05-23  Martin Liska  <mliska@suse.cz>
9361
9362	Backport from mainline
9363	2018-05-11  Martin Liska  <mliska@suse.cz>
9364
9365	PR sanitizer/85556
9366	* doc/extend.texi: Document LLVM style format for no_sanitize
9367	attribute.
9368
93692018-05-22  Martin Sebor  <msebor@redhat.com>
9370
9371	PR middle-end/85643
9372	* calls.c (get_attr_nonstring_decl): Handle MEM_REF.
9373
93742018-05-22  Richard Sandiford  <richard.sandiford@linaro.org>
9375
9376	PR tree-optimization/85814
9377	* tree-ssa-strlen.c (get_stridx_plus_constant): Cope with
9378	a null return from get_strinfo when unsharing the next
9379	strinfo in the chain.
9380
93812018-05-21  Pat Haugen  <pthaugen@us.ibm.com>
9382
9383	Backport from mainline
9384	2018-05-17  Pat Haugen  <pthaugen@us.ibm.com>
9385		    Segher Boessenkool  <segher@kernel.crashing.org>
9386
9387	PR target/85698
9388	* config/rs6000/rs6000.c (rs6000_output_move_128bit): Check dest operand.
9389
93902018-05-18  Toon Moene  <toon@moene.org>
9391
9392	* doc/invoke.texi: Move -floop-unroll-and-jam documentation
9393	directly after that of -floop-interchange. Indicate that both
9394	options are enabled by default when specifying -O3.
9395
93962018-05-11  Martin Jambor  <mjambor@suse.cz>
9397
9398	PR ipa/85655
9399	* ipa-cp.c (intersect_with_plats): Check that the lattice contains
9400	single const.
9401
94022018-05-11  Richard Earnshaw  <rearnsha@arm.com>
9403
9404	PR target/85733
9405	* config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature.
9406
94072018-05-11  Richard Earnshaw  <rearnsha@arm.com>
9408
9409	PR target/85606
9410	* config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now
9411	equivalent.
9412	(cortex-m0): Use armv6s-m isa.
9413	(cortex-m0plus): Likewise.
9414	(cortex-m1): Likewise.
9415	(cortex-m0.small-multiply): Likewise.
9416	(cortex-m0plus.small-multiply): Likewise.
9417	(cortex-m1.small-multiply): Likewise.
9418
94192018-05-09  Eric Botcazou  <ebotcazou@adacore.com>
9420
9421	PR rtl-optimization/85638
9422	* bb-reorder.c: Include common/common-target.h.
9423	(create_forwarder_block): New function extracted from...
9424	(fix_up_crossing_landing_pad): ...here.  Rename into...
9425	(dw2_fix_up_crossing_landing_pad): ...this.
9426	(sjlj_fix_up_crossing_landing_pad): New function.
9427	(find_rarely_executed_basic_blocks_and_crossing_edges): In SJLJ mode,
9428	call sjlj_fix_up_crossing_landing_pad if there are incoming EH edges
9429	from both partitions and exit the loop after one iteration.
9430
94312018-05-08  Richard Biener  <rguenther@suse.de>
9432
9433	Backport from mainline
9434	2018-05-04  Richard Biener  <rguenther@suse.de>
9435
9436	PR middle-end/85588
9437	* fold-const.c (negate_expr_p): Restrict negation of operand
9438	zero of a division to when we know that can happen without
9439	overflow.
9440	(fold_negate_expr_1): Likewise.
9441
9442	2018-05-03  Richard Biener  <rguenther@suse.de>
9443
9444	PR tree-optimization/85615
9445	* tree-ssa-threadupdate.c (thread_block_1): Only allow exits
9446	to loops not nested in BBs loop father to avoid creating multi-entry
9447	loops.
9448
9449	2018-05-02  Richard Biener  <rguenther@suse.de>
9450
9451	PR middle-end/85567
9452	* gimplify.c (gimplify_save_expr): When in SSA form allow
9453	SAVE_EXPRs to compute to SSA vars.
9454
9455	2018-05-02  Richard Biener  <rguenther@suse.de>
9456
9457	PR tree-optimization/85597
9458	* tree-vect-stmts.c (vectorizable_operation): For ternary SLP
9459	do not use split vect_get_vec_defs call but call vect_get_slp_defs
9460	directly.
9461
94622018-05-08  Richard Earnshaw  <rearnsha@arm.com>
9463
9464	PR target/85658
9465	* config/arm/parsecpu.awk (check_cpu): Fix operator precedence.
9466	(check_arch): Likewise.
9467	(check_fpu): Return the result rather than printing it.
9468	(end arch): Fix operator precedence.
9469	(end cpu): Likewise.
9470	(END): Print the result from check_fpu.
9471
94722018-05-08  Richard Biener  <rguenther@suse.de>
9473
9474	Backport from mainline
9475	2018-05-04  Richard Biener  <rguenther@suse.de>
9476
9477	* bb-reorder.c (sanitize_hot_paths): Release hot_bbs_to_check.
9478	* gimple-ssa-store-merging.c
9479	(imm_store_chain_info::output_merged_store): Remove redundant create,
9480	release split_store vector contents on failure.
9481	* tree-vect-slp.c (vect_schedule_slp_instance): Avoid leaking
9482	scalar stmt vector on cache hit.
9483
9484	2018-05-04  Richard Biener  <rguenther@suse.de>
9485
9486	PR middle-end/85627
9487	* tree-complex.c (tree_lower_complex): Handle removed blocks.
9488
94892018-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
9490
9491	Backport from mainline.
9492	2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
9493
9494	* config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with
9495	GET_MODE_MASK before any checking.
9496	(nds32_can_use_bset_p): Likewise.
9497	(nds32_can_use_btgl_p): Likewise.
9498
94992018-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
9500
9501	Backport from mainline.
9502	2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
9503
9504	* config/nds32/nds32-doubleword.md: New define_split pattern for
9505	illegal register number.
9506
95072018-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
9508
9509	Backport from mainline.
9510	2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
9511
9512	* config/nds32/nds32.c (nds32_print_operand): Set op_value ealier.
9513
95142018-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
9515
9516	Backport from mainline.
9517	2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
9518
9519	* config/nds32/nds32.h (ASM_APP_ON): Add missing newline character.
9520
95212018-05-06  Jakub Jelinek  <jakub@redhat.com>
9522
9523	PR c++/85659
9524	* cfgexpand.c (expand_asm_stmt): Don't create a temporary if
9525	the type is addressable.  Don't force op into register if it has
9526	BLKmode.
9527
95282018-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9529
9530	Backport from trunk.
9531	2018-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9532
9533	PR target/85512
9534	* config/aarch64/constraints.md (Usg): Limit to 31.
9535	(Usj): Limit to 63.
9536
95372018-05-02  Jakub Jelinek  <jakub@redhat.com>
9538
9539	* BASE-VER: Set to 8.1.1.
9540
95412018-05-02  Release Manager
9542
9543	* GCC 8.1.0 released.
9544
95452018-05-02  Richard Sandiford  <richard.sandiford@linaro.org>
9546
9547	PR tree-optimization/85586
9548	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only
9549	exit early for statements in the same group if the accesses are
9550	not strided.
9551
95522018-05-01  Jakub Jelinek  <jakub@redhat.com>
9553
9554	PR web/85578
9555	* doc/install.texi2html: Replace _002d with - and _002a with * in
9556	generated html files using sed.
9557
95582018-04-27  Martin Jambor  <mjambor@suse.cz>
9559
9560	PR ipa/85549
9561	* ipa-cp.c (find_aggregate_values_for_callers_subset): Make sure
9562	the jump function allows for passing through aggregate values.
9563
95642018-04-27  Jeff Law  <law@redhat.com>
9565
9566	* config.gcc: Mark tile* targets as deprecated/obsolete.
9567
95682018-04-27  Jakub Jelinek  <jakub@redhat.com>
9569
9570	PR tree-optimization/85529
9571	* tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB
9572	argument.  Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE,
9573	rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious
9574	zero extension or masking of the MSB bit.
9575	(optimize_range_tests): Add FIRST_BB argument, pass it through
9576	to optimize_range_tests_var_bound.
9577	(maybe_optimize_range_tests, reassociate_bb): Adjust
9578	optimize_range_tests callers.
9579
95802018-04-26  Richard Biener  <rguenther@suse.de>
9581	    Jakub Jelinek  <jakub@redhat.com>
9582
9583	* cgraph.h (symbol_table): Just declare debug method here.
9584	* symtab.c (symbol_table::debug): Define.
9585
95862018-04-26  Jonathan Wakely  <jwakely@redhat.com>
9587
9588	* doc/invoke.texi (-Wreturn-type): Document default status for C++.
9589
95902018-04-25  H.J. Lu  <hongjiu.lu@intel.com>
9591
9592	Backport from mainline
9593	2018-04-25  Sebastian Peryt  <sebastian.peryt@intel.com>
9594
9595	PR target/85473
9596	* config/i386/i386.c (ix86_expand_builtin): Change memory
9597	operand to XI, extend p0 to Pmode.
9598	* config/i386/i386.md: Change unspec volatile and operand
9599	1 mode to XI, change operand 0 mode to P.
9600
96012018-04-25  Jakub Jelinek  <jakub@redhat.com>
9602
9603	* DEV-PHASE: Set to prerelease.
9604
96052018-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
9606
9607	* config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes
9608	in __abskf2 and __powikf2.
9609
96102018-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9611
9612	PR target/85512
9613	* config/aarch64/constraints.md (Usg, Usj): New constraints.
9614	* config/aarch64/iterators.md (cmode_simd): New mode attribute.
9615	* config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
9616	Use the above on operand 2.  Reindent.
9617	(*aarch64_lshr_sisd_or_int_<mode>3): Likewise.
9618
96192018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
9620
9621	PR target/85485
9622	* common/config/i386/i386-common.c (ix86_handle_option): Don't
9623	handle OPT_mcet.
9624	* config/i386/i386.opt (mcet): Removed.
9625	* doc/install.texi: Remove -mcet documentation.
9626	* doc/invoke.texi: Likewise.
9627
96282018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
9629
9630	PR target/85485
9631	* doc/install.texi: Remove -mcet from bootstrap-cet.
9632
96332018-04-24  Jakub Jelinek  <jakub@redhat.com>
9634
9635	PR target/85511
9636	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define
9637	__builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32
9638	if TARGET_64BIT.
9639
9640	PR target/85503
9641	* config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if
9642	const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool
9643	containing a CONST_VECTOR.
9644
96452018-04-24  Cesar Philippidis  <cesar@codesourcery.com>
9646
9647	* doc/install.texi: Update newlib dependency for nvptx.
9648
96492018-04-24  Jakub Jelinek  <jakub@redhat.com>
9650
9651	PR target/85508
9652	* config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL
9653	instead of INTVAL when shifting x left.
9654
96552018-04-24  Andreas Krebbel  <krebbel@linux.ibm.com>
9656
9657	PR tree-optimization/85478
9658	* tree-vect-loop.c (vect_analyze_loop_2): Do not call
9659	vect_grouped_store_supported for single element vectors.
9660
96612018-04-24  Richard Biener  <rguenther@suse.de>
9662
9663	PR target/85491
9664	* config/i386/i386.c (ix86_add_stmt_cost): Restrict strided
9665	load cost increase to the case of non-constant step.
9666
96672018-04-24  Jakub Jelinek  <jakub@redhat.com>
9668
9669	PR target/84828
9670	* reg-stack.c (move_for_stack_reg): Don't fail assertion about dead
9671	destination if any_malformed_asm.
9672
96732018-04-23  Eric Botcazou  <ebotcazou@adacore.com>
9674
9675	PR middle-end/85496
9676	* expr.c (store_field): In the bitfield case, if the value comes from
9677	a function call and is returned in registers by means of a PARALLEL,
9678	do not change the mode of the temporary unless BLKmode and VOIDmode.
9679
96802018-04-23  Andrey Belevantsev  <abel@ispras.ru>
9681
9682	PR rtl-optimization/85423
9683	* sel-sched-ir.c (has_dependence_note_mem_dep): Only discard
9684	dependencies to debug insns when the previous insn is non-debug.
9685
96862018-04-23  Claudiu Zissulescu  <claziss@synopsys.com>
9687
9688	* config/arc/arc.md ("vunspec"): Delete it, unify all the unspec
9689	enums into a single definition.
9690	(fls): Fix predicates and printing.
9691	(seti): Likewise.
9692
96932018-04-23  Claudiu Zissulescu  <claziss@synopsys.com>
9694
9695	* config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove.
9696	* config/arc/arc.c (arc_expand_builtin): Sleep accepts registers
9697	and short u6 immediate.
9698	(check_if_valid_sleep_operand): Remove.
9699	* config/arc/arc.md (Sleep): Accepts registers and u6 immediates.
9700
97012018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
9702
9703	* config/nds32/nds32.c (nds32_compute_stack_frame): Consider
9704	flag_always_save_lp condition.
9705	* config/nds32/nds32.opt (malways-save-lp): New option.
9706
97072018-04-22  Shiva Chen  <shiva0217@gmail.com>
9708
9709	* config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare.
9710	* config/nds32/nds32.c (nds32_use_load_post_increment): New.
9711	* config/nds32/nds32.h
9712	(USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define.
9713	(USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define.
9714
97152018-04-22  Shiva Chen  <shiva0217@gmail.com>
9716
9717	* config/nds32/nds32-protos.h (nds32_ls_333_p): Remove.
9718	* config/nds32/nds32.c (nds32_ls_333_p): Remove.
9719
97202018-04-22  Shiva Chen  <shiva0217@gmail.com>
9721	    Chung-Ju Wu  <jasonwucj@gmail.com>
9722
9723	* config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode):
9724	Declare.
9725	* config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function.
9726	* config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify.
9727
97282018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
9729
9730	* config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value.
9731
97322018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
9733
9734	* config/nds32/nds32-protos.h (nds32_data_alignment,
9735	nds32_local_alignment): Declare.
9736	* config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment,
9737	nds32_local_alignment): New functions.
9738	(TARGET_CONSTANT_ALIGNMENT): Define.
9739	* config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
9740
97412018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
9742
9743	* config/nds32/nds32.c
9744	(TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file.
9745	(TARGET_MODES_TIEABLE_P): Likewise.
9746
97472018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
9748
9749	* config/nds32/nds32.c (nds32_asm_file_start): Display optimization
9750	level Ofast and Og.
9751
97522018-04-22  Monk Chiang  <sh.chiang04@gmail.com>
9753	    Chung-Ju Wu  <jasonwucj@gmail.com>
9754
9755	* config/nds32/constants.md (unspec_volatile_element): Add enum values
9756	for unaligned access.
9757	* config/nds32/nds32-intrinsic.c: Implementation of expanding
9758	unaligned access.
9759	* config/nds32/nds32-intrinsic.md: Likewise.
9760	* config/nds32/nds32_intrinsic.h: Likewise.
9761	* config/nds32/nds32.h (nds32_builtins): Likewise.
9762	* config/nds32/nds32.opt (munaligned-access): New option.
9763	* config/nds32/nds32.c (nds32_asm_file_start): Display
9764	flag_unaligned_access status.
9765
97662018-04-20  Kito Cheng  <kito.cheng@gmail.com>
9767
9768	* config/riscv/elf.h (LINK_SPEC): Pass --no-relax if
9769	-mno-relax is present.
9770	* config/riscv/linux.h (LINK_SPEC): Ditto.
9771
97722018-04-20  Martin Sebor  <msebor@redhat.com>
9773
9774	PR c/85365
9775	* gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict
9776	for null pointers.
9777	(gimple_fold_builtin_stxcpy_chk): Same.
9778	* gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same.
9779
97802018-04-20  Michael Meissner  <meissner@linux.ibm.com>
9781
9782	PR target/85456
9783	* config/rs6000/rs6000.c (init_float128_ieee): Add support to call
9784	__powikf2 when long double is IEEE 128-bit.
9785
97862018-04-20  Kito Cheng  <kito.cheng@gmail.com>
9787
9788	* config/riscv/riscv.c (riscv_first_stack_step): Round up min
9789	step to make sure stack always aligned.
9790
97912018-04-20  Carl Love  <cel@us.ibm.com>
9792
9793	PR target/83402
9794	* config/rs6000/rs6000-c.c (rs6000_gimple_fold_builtin): Add
9795	size check for arg0.
9796
97972018-04-20  Nathan Sidwell  <nathan@codesourcery.com>
9798	    Tom de Vries  <tom@codesourcery.com>
9799
9800	PR target/85445
9801	* config/nvptx/nvptx.c (nvptx_emit_forking, nvptx_emit_joining):
9802	Emit insns for calls too.
9803	(nvptx_find_par): Always look for worker-level predecessor insn.
9804	(nvptx_propagate): Add is_call parm, return bool.  Copy frame for
9805	calls.
9806	(nvptx_vpropagate, nvptx_wpropagate): Adjust.
9807	(nvptx_process_pars): Propagate frames for calls.
9808
98092018-04-20  H.J. Lu  <hongjiu.lu@intel.com>
9810
9811	PR target/85469
9812	* common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET):
9813	Removed.
9814	(OPTION_MASK_ISA_IBT_UNSET): Likewise.
9815	(ix86_handle_option): Don't handle OPT_mibt.
9816	* config/i386/cet.h: Check __CET__ instead of __IBT__ and
9817	__SHSTK__.
9818	* config/i386/driver-i386.c (host_detect_local_cpu): Remove
9819	has_ibt and ibt.
9820	* config/i386/i386-c.c (ix86_target_macros_internal): Don't
9821	check OPTION_MASK_ISA_IBT nor flag_cf_protection.
9822	(ix86_target_macros): Define __CET__ with flag_cf_protection
9823	for -fcf-protection.
9824	* config/i386/i386.c (isa2_opts): Remove -mibt.
9825	* config/i386/i386.h (TARGET_IBT): Removed.
9826	(TARGET_IBT_P): Likewise.
9827	(ix86_valid_target_attribute_inner_p): Don't check OPT_mibt.
9828	* config/i386/i386.md (nop_endbr): Don't check TARGET_IBT.
9829	* config/i386/i386.opt (mcet): Update help message.
9830	(mshstk): Likewise.
9831	(mibt): Removed.
9832	* doc/invoke.texi: Remove -mibt.  Document __CET__.  Document
9833	-mcet as an alias for -mshstk.
9834
98352018-04-20  Richard Biener <rguenther@suse.de>
9836
9837	PR middle-end/85475
9838	* match.pd ((X * CST) * Y -> (X * Y) * CST): Avoid exponential
9839	complexity by forcing a single use of the multiply operand.
9840
98412018-04-20  Martin Jambor  <mjambor@suse.cz>
9842
9843	ipa/85449
9844	* ipa-cp.c (cgraph_edge_brings_value_p): Move check for self-feeding
9845	recursion dependency to only apply to non-clones.
9846
98472018-04-20  Martin Jambor  <mjambor@suse.cz>
9848
9849	ipa/85447
9850	* ipa-cp.c (create_specialized_node): Check that clones of
9851	self-recursive edges exist during IPA-CP.
9852
98532018-04-19  Toon Moene  <toon@moene.org>
9854
9855	* doc/invoke.texi: Add -floop-unroll-and-jam to options enabled
9856	by -O3.
9857
98582018-04-19  Jakub Jelinek  <jakub@redhat.com>
9859
9860	PR tree-optimization/85467
9861	* fold-const.c (fold_ternary_loc) <case BIT_FIELD_REF>: Use
9862	VECTOR_TYPE_P macro.  If type is vector type, VIEW_CONVERT_EXPR the
9863	VECTOR_CST element to type.
9864
98652018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
9866
9867	PR target/85397
9868	* config/i386/i386.h (STACK_SAVEAREA_MODE): New.
9869	* config/i386/i386.md (builtin_setjmp_setup): Removed.
9870	(builtin_longjmp): Likewise.
9871	(save_stack_nonlocal): New pattern.
9872	(restore_stack_nonlocal): Likewise.
9873
98742018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
9875
9876	PR target/85404
9877	* config/i386/cet.c (file_end_indicate_exec_stack_and_cet):
9878	Replace ASM_OUTPUT_LABEL with fprintf.
9879
98802018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
9881
9882	PR target/85417
9883	* config/i386/cet.c (file_end_indicate_exec_stack_and_cet):
9884	Check flag_cf_protection instead of TARGET_IBT and TARGET_SHSTK.
9885	* config/i386/i386-c.c (ix86_target_macros_internal): Also
9886	define __IBT__ and __SHSTK__ for -fcf-protection.
9887	* config/i386/i386.c (pass_insert_endbranch::gate): Don't check
9888	TARGET_IBT.
9889	(ix86_trampoline_init): Likewise.
9890	(x86_output_mi_thunk): Likewise.
9891	(ix86_notrack_prefixed_insn_p): Likewise.
9892	(ix86_option_override_internal): Don't disallow -fcf-protection.
9893	* config/i386/i386.md (rdssp<mode>): Also enable for
9894	-fcf-protection.
9895	(incssp<mode>): Likewise.
9896	(nop_endbr): Likewise.
9897	* config/i386/i386.opt (mcet): Change help message to built-in
9898	functions only.
9899	(mibt): Likewise.
9900	(mshstk): Likewise.
9901	* doc/invoke.texi: Remove -mcet, -mibt and -mshstk condition
9902	on -fcf-protection.  Change -mcet, -mibt and -mshstk to only
9903	enable CET built-in functions.
9904
99052018-04-19  Sebastian Peryt  <sebastian.peryt@intel.com>
9906
9907	* common/config/i386/i386-common.c
9908	(OPTION_MASK_ISA_MOVDIRI_SET, OPTION_MASK_ISA_MOVDIR64B_SET,
9909	OPTION_MASK_ISA_MOVDIRI_UNSET,
9910	OPTION_MASK_ISA_MOVDIR64B_UNSET): New defines.
9911	(ix86_handle_option): Handle -mmovdiri and -mmovdir64b.
9912	* config.gcc (movdirintrin.h): New header.
9913	* config/i386/cpuid.h (bit_MOVDIRI,
9914	bit_MOVDIR64B): New bits.
9915	* config/i386/driver-i386.c (host_detect_local_cpu): Detect -mmovdiri
9916	and -mmvodir64b.
9917	* config/i386/i386-builtin-types.def ((VOID, PUNSIGNED, UNSIGNED),
9918	(VOID, PVOID, PCVOID)): New function types.
9919	* config/i386/i386-builtin.def (__builtin_ia32_directstoreu_u32,
9920	__builtin_ia32_directstoreu_u64,
9921	 __builtin_ia32_movdir64b): New builtins.
9922	* config/i386/i386-c.c (__MOVDIRI__, __MOVDIR64B__): New.
9923	* config/i386/i386.c (ix86_target_string): Added -mmovdir64b
9924	and -mmovdiri.
9925	(ix86_valid_target_attribute_inner_p): Ditto.
9926	(ix86_expand_special_args_builtin): Added VOID_FTYPE_PUNSIGNED_UNSIGNED
9927	and VOID_FTYPE_PUNSIGNED_UNSIGNED.
9928	(ix86_expand_builtin): Expand IX86_BUILTIN_MOVDIR64B.
9929	* config/i386/i386.h (TARGET_MOVDIRI, TARGET_MOVDIRI_P,
9930	TARGET_MOVDIR64B, TARGET_MOVDIR64B_P): New.
9931	* config/i386/i386.md (UNSPECV_MOVDIRI, UNSPECV_MOVDIR64B): New.
9932	(movdiri<mode>, movdir64b_<mode>): New.
9933	* config/i386/i386.opt: Add -mmovdiri and -mmovdir64b.
9934	* config/i386/immintrin.h: Include movdirintrin.h.
9935	* config/i386/movdirintrin.h: New file.
9936	* doc/invoke.texi: Added -mmovdiri and -mmovdir64b.
9937
99382018-04-19  Richard Biener  <rguenther@suse.de>
9939
9940	PR middle-end/85455
9941	* cfg.c (clear_bb_flags): When loop state says we have
9942	marked irreducible regions also preserve BB_IRREDUCIBLE_LOOP.
9943
99442018-04-19  Richard Biener  <rguenther@suse.de>
9945
9946	PR tree-optimization/84737
9947	* tree-vect-data-refs.c (vect_copy_ref_info): New function
9948	copying restrict info.
9949	(vect_setup_realignment): Use it.
9950	* tree-vectorizer.h (vect_copy_ref_info): Declare.
9951	* tree-vect-stmts.c (vectorizable_store): Copy ref info from
9952	the first DR to all generated stores.
9953	(vectorizable_load): Likewise for loads.
9954
99552018-04-19  Jakub Jelinek  <jakub@redhat.com>
9956
9957	PR tree-optimization/85446
9958	* match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require
9959	the integral and pointer types to have the same precision.
9960
9961	* doc/install.texi: Document --disable-cet being the default and
9962	--enable-cet=auto.
9963
99642018-04-18  Martin Liska  <mliska@suse.cz>
9965
9966	* ipa-devirt.c (odr_subtypes_equivalent_p): Fix GNU coding
9967	style.
9968
99692018-04-18  Martin Liska  <mliska@suse.cz>
9970
9971	Revert
9972	2018-03-02  Eric Botcazou  <ebotcazou@adacore.com>
9973
9974	PR ipa/83983
9975	* ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both
9976	arguments if they are comparable.
9977
99782018-04-18  Martin Liska  <mliska@suse.cz>
9979
9980	Revert
9981	2018-03-13  Eric Botcazou  <ebotcazou@adacore.com>
9982
9983	PR lto/84805
9984	* ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of
9985	incomplete types.
9986
99872018-04-18  H.J. Lu  <hongjiu.lu@intel.com>
9988
9989	PR target/85388
9990	* config/i386/i386.c (ix86_expand_split_stack_prologue): Insert
9991	ENDBR after calling __morestack.
9992
99932018-04-18  David Malcolm  <dmalcolm@redhat.com>
9994
9995	PR jit/85384
9996	* configure.ac (gcc-driver-name.h): Honor --with-gcc-major-version
9997	by using gcc_base_ver to generate a gcc_driver_version, and use
9998	it when generating GCC_DRIVER_NAME.
9999	* configure: Regenerate.
10000
100012018-04-18  Jakub Jelinek  <jakub@redhat.com>
10002
10003	PR target/81084
10004	* config.gcc: Obsolete powerpc*-*-*spe*.
10005
100062018-04-17  Jakub Jelinek  <jakub@redhat.com>
10007
10008	PR debug/84637
10009	* dbxout.c (dbxout_int): Perform negation in unsigned int type.
10010	(stabstr_D): Change type of unum from unsigned int to
10011	unsigned HOST_WIDE_INT.  Perform negation in unsigned HOST_WIDE_INT
10012	type.
10013
100142018-04-17  Jim Wilson  <jimw@sifive.com>
10015
10016	PR 84856
10017	* config/riscv/riscv.c (riscv_compute_frame_info): Add calls to
10018	RISCV_STACK_ALIGN when using outgoing_args_size and pretend_args_size.
10019	Set arg_pointer_offset after using pretend_args_size.
10020
100212018-04-17  Jakub Jelinek  <jakub@redhat.com>
10022
10023	PR rtl-optimization/85431
10024	* dse.c (record_store): Ignore zero width stores.
10025
10026	PR sanitizer/85230
10027	* asan.c (handle_builtin_stack_restore): Adjust comment.  Emit
10028	__asan_allocas_unpoison call and last_alloca_addr = new_sp before
10029	__builtin_stack_restore rather than after it.
10030	* builtins.c (expand_asan_emit_allocas_unpoison): Pass
10031	arg1 + (virtual_dynamic_stack_rtx - stack_pointer_rtx) as second
10032	argument instead of virtual_dynamic_stack_rtx.
10033
100342018-04-17  Kelvin Nilsen  <kelvin@gcc.gnu.org>
10035
10036	* config/rs6000/rs6000-protos.h (rs6000_builtin_is_supported_p):
10037	New prototype.
10038	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10039	Add note to error message to explain internal mapping of overloaded
10040	built-in function name to non-overloaded built-in function name.
10041	* config/rs6000/rs6000.c (rs6000_builtin_is_supported_p): New
10042	function.
10043
100442018-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
10045
10046	PR target/85424
10047	* config/rs6000/rs6000.md (pack<mode>): Do not try handle a pack
10048	where the inputs overlap with the output.
10049
100502018-04-17  Jakub Jelinek  <jakub@redhat.com>
10051
10052	* config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Add
10053	(=v, v) alternative and explicit "memory" attribute.
10054	(vec_extract_lo_<mode><mask_name>): Likewise.  Also add
10055	"type", "prefix", "prefix_extra", "length_immediate" and "mode"
10056	attributes.
10057	(vec_extract_lo_<mode><mask_name>): Add (=v, v) alternative and use
10058	"sselog1" type instead of "sselog".
10059	(vec_extract_hi_<mode><mask_name>): Use "sselog1" type instead of
10060	"sselog".  Remove explicit "memory" attribute.
10061	(vec_extract_lo_v32hi): Add (=v, v) alternative and explicit "memory",
10062	"type", "prefix", "prefix_extra", "length_immediate" and "mode"
10063	attributes.
10064	(vec_extract_hi_v32hi): Merge all alternatives into one, use
10065	"sselog1" type instead of "sselog".  Remove explicit "memory"
10066	attribute.
10067	(vec_extract_hi_v16hi): Merge each pair of alternatives into one,
10068	use "sselog1" type instead of "sselog".  Remove explicit "memory"
10069	attribute.
10070	(vec_extract_lo_v64qi): Add (=v, v) alternative and explicit "memory",
10071	"type", "prefix", "prefix_extra", "length_immediate" and "mode"
10072	attributes.
10073	(vec_extract_hi_v64qi): Merge all alternatives into one, use
10074	"sselog1" type instead of "sselog".  Remove explicit "memory"
10075	attribute.
10076	(vec_extract_hi_v32qi): Merge each pair of alternatives into one,
10077	use "sselog1" type instead of "sselog".  Remove explicit "memory"
10078	attribute.
10079
10080	PR target/85430
10081	* config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu.
10082
10083	PR middle-end/85414
10084	* rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG
10085	on a SUBREG.
10086
100872018-04-17  Martin Jambor  <mjambor@suse.cz>
10088
10089	PR ipa/85421
10090	* ipa-cp.c (create_specialized_node): Call
10091	expand_all_artificial_thunks if necessary.
10092
100932018-04-17  Martin Liska  <mliska@suse.cz>
10094
10095	PR lto/85405
10096	* ipa-devirt.c (odr_types_equivalent_p): Remove trailing
10097	in message, remote space in between '_G' and '('.
10098
100992018-04-17  Jakub Jelinek  <jakub@redhat.com>
10100
10101	PR target/85281
10102	* config/i386/sse.md (reduces<mode><mask_scalar_name>,
10103	avx512f_vmcmp<mode>3<round_saeonly_name>,
10104	avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
10105	avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name>,
10106	avx512f_rndscale<mode><round_saeonly_name>,
10107	avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
10108	avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
10109	Use %<iptr>2 instead of %2 for -masm=intel.
10110	(avx512f_vcvtss2usi<round_name>, avx512f_vcvtss2usiq<round_name>,
10111	avx512f_vcvttss2usi<round_saeonly_name>,
10112	avx512f_vcvttss2usiq<round_saeonly_name>): Use %k1 instead of %1 for
10113	-masm=intel.
10114	(avx512f_vcvtsd2usi<round_name>, avx512f_vcvtsd2usiq<round_name>,
10115	avx512f_vcvttsd2usi<round_saeonly_name>,
10116	avx512f_vcvttsd2usiq<round_saeonly_name>, ufloatv2siv2df2<mask_name>):
10117	Use %q1 instead of %1 for -masm=intel.
10118	(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
10119	avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Use %<iptr>3 instead
10120	of %3 for -masm=intel.
10121	(sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for
10122	-masm=intel.
10123	(*avx512vl_<code>v2div2qi2_store): Use %w0 instead of %0 for
10124	-masm=intel.
10125	(*avx512vl_<code><mode>v4qi2_store): Use %k0 instead of %0 for
10126	-masm=intel.
10127	(avx512vl_<code><mode>v4qi2_mask_store): Use a single pattern with
10128	%k0 and %1 for -masm=intel rather than two patterns, one with %0 and
10129	%g1.
10130	(*avx512vl_<code><mode>v8qi2_store): Use %q0 instead of %0 for
10131	-masm=intel.
10132	(avx512vl_<code><mode>v8qi2_mask_store): Use a single pattern with
10133	%q0 and %1 for -masm=intel rather than two patterns, one with %0 and
10134	%g1 and one with %0 and %1.
10135	(avx512er_vmrcp28<mode><round_saeonly_name>,
10136	avx512er_vmrsqrt28<mode><round_saeonly_name>): Use %<iptr>1 instead of
10137	%1 for -masm=intel.
10138	(avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask,
10139	avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask,
10140	avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order
10141	of %0 and %{%4%} for -masm=intel.
10142	(avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz,
10143	avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz,
10144	avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap
10145	order of %0 and %{%5%}%{z%} for -masm=intel.
10146
101472018-04-17  Jan Hubicka  <jh@suse.cz>
10148
10149	PR lto/85405
10150	* ipa-devirt.c (odr_types_equivalent_p): Handle bit fields.
10151
101522018-04-17  Martin Liska  <mliska@suse.cz>
10153
10154	PR ipa/85329
10155	* multiple_target.c (create_dispatcher_calls): Set apostrophes
10156	for target_clone error message.  Make default implementation
10157	clone to be a local declaration.
10158	(separate_attrs): Add new argument and check for an empty
10159	string.
10160	(expand_target_clones): Handle it.
10161	(ipa_target_clone): Make redirection just for target_clones
10162	functions.
10163
101642018-04-16  Cesar Philippidis  <cesar@codesourcery.com>
10165	    Tom de Vries  <tom@codesourcery.com>
10166
10167	PR middle-end/84955
10168	* omp-expand.c (expand_oacc_for): Add dummy false branch for
10169	tiled basic blocks without omp continue statements.
10170
101712018-04-16  Aaron Sawdey  <acsawdey@linux.ibm.com>
10172
10173	PR target/83660
10174	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark
10175	vec_extract expression as having side effects to make sure it gets
10176	a cleanup point.
10177
101782018-04-16  H.J. Lu  <hongjiu.lu@intel.com>
10179
10180	PR target/85403
10181	* config/i386/i386.c (get_builtin_code_for_version): Check
10182	error_mark_node.
10183
101842018-04-16  Olga Makhotina  <olga.makhotina@intel.com>
10185
10186	PR target/84331
10187	* gcc/config.gcc: Support "skylake".
10188	* gcc/config/i386/i386-c.c (ix86_target_macros_internal): Handle
10189	PROCESSOR_SKYLAKE.
10190	* gcc/config/i386/i386.c (m_SKYLAKE): Define.
10191	(processor_target_table): Add "skylake".
10192	(ix86_option_override_internal): Add "skylake".
10193	(get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE,
10194	PROCESSOR_CANNONLAKE.
10195	(get_builtin_code_for_version): Fix priority for
10196	PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER,
10197	PROCESSOR_SKYLAKE-AVX512.
10198	* gcc/config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE.
10199	(processor_type): Add PROCESSOR_SKYLAKE.
10200
102012018-04-16  Paolo Carlini  <paolo.carlini@oracle.com>
10202	    Jason Merrill  <jason@redhat.com>
10203
10204	PR c++/85112
10205	* convert.c (convert_to_integer_1): Use direct recursion for
10206	enumeral types and types with a precision less than the number
10207	of bits in their mode.
10208
102092018-04-16  Julia Koval  <julia.koval@intel.com>
10210
10211	PR target/84413
10212	* config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL,
10213	X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512
10214
102152018-04-14  Segher Boessenkool  <segher@kernel.crashing.org>
10216
10217	PR target/85293
10218	* config/rs6000/rs6000.opt (mdirect-move): Make deprecated.
10219	* doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move
10220	and -mno-direct-move.
10221
102222018-04-13  Paul A. Clarke  <pc@us.ibm.com>
10223
10224	PR target/83402
10225	* config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}):
10226	Ensure that vec_splat_s32 is only called with 0 <= shift < 16.
10227	Ensure negative shifts result in {0}.
10228
102292018-04-13  Vladimir Makarov  <vmakarov@redhat.com>
10230
10231	PR rtl-optimization/79916
10232	* config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard
10233	regs (if any) to define how to gnerate SD moves when LRA is in
10234	progress.
10235
102362018-04-13  Jakub Jelinek  <jakub@redhat.com>
10237
10238	PR rtl-optimization/85393
10239	* except.h (expand_dw2_landing_pad_for_region): Remove declaration.
10240	* except.c (expand_dw2_landing_pad_for_region): Make static.
10241	* bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just
10242	a label and unconditional jump to old_bb, rather than
10243	expand_dw2_landing_pad_for_region insn(s) and jump to single_succ
10244	basic block.
10245
10246	PR rtl-optimization/85376
10247	* simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and
10248	zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX
10249	instead of a specific value.
10250
102512018-04-13  Jan Hubicka  <hubicka@ucw.cz>
10252	    Bin Cheng  <bin.cheng@arm.com>
10253
10254	PR tree-optimization/82965
10255	PR tree-optimization/83991
10256	* cfgloopanal.c (expected_loop_iterations_unbounded): Add
10257	by_profile_only parameter.
10258	* cfgloopmanip.c (scale_loop_profile): Further scale loop's profile
10259	information if the loop was predicted to iterate too many times.
10260	* cfgloop.h (expected_loop_iterations_unbounded): Update prototype
10261
102622018-04-13  Jan Hubicka  <hubicka@ucw.cz>
10263
10264	PR lto/71991
10265	* config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for
10266	always inline.
10267
102682018-04-13  Martin Liska  <mliska@suse.cz>
10269	    Jakub Jelinek  <jakub@redhat.com>
10270
10271	PR middle-end/81657
10272	* expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET.
10273	* expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET.
10274	* builtins.c (expand_builtin_memory_copy_args): Use
10275	BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target,
10276	handle dest_addr == pc_rtx.
10277
102782018-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
10279
10280	PR target/85291
10281	* config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if
10282	asked to not generate direct moves.
10283	(fix_trunc<mode>si2_stfiwx): Similar.
10284	(fix_trunc<mode>si2_internal): Similar.
10285
102862018-04-12  Jakub Jelinek  <jakub@redhat.com>
10287
10288	PR debug/83157
10289	* var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST.
10290	* cselib.c (cselib_record_sets): For STRICT_LOW_PART dest,
10291	lookup if dest in some wider mode is known to be const0_rtx and
10292	if so, record permanent equivalence for it to be ZERO_EXTEND of
10293	the narrower mode destination.
10294
102952018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
10296
10297	* lto-streamer-out.c (output_function): Revert 259346.
10298	* omp-expand.c (expand_oacc_for): Likewise.
10299
103002018-04-12  Alexander Monakov  <amonakov@ispras.ru>
10301
10302	PR rtl-optimization/85354
10303	* sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call...
10304	* sel-sched.c (sel_global_init): ... here.
10305
103062018-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10307
10308	PR target/85238
10309	* lto-wrapper.c (debug_objcopy): Open the files in binary mode.
10310	* dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO
10311	mode for PE-COFF targets.
10312	* config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare.
10313	(i386_pe_asm_lto_end): Likewise.
10314	* config/i386/cygming.h (TARGET_ASM_LTO_START): Define.
10315	(TARGET_ASM_LTO_END): Likewise.
10316	* config/i386/winnt.c (saved_debug_info_level): New static variable.
10317	(i386_pe_asm_lto_start): New function.
10318	(i386_pe_asm_lto_end): Likewise.
10319
103202018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
10321	    Richard Biener  <rguenther@suse.de>
10322
10323	PR middle-end/84955
10324	* lto-streamer-out.c (output_function): Fix CFG loop state before
10325	streaming out.
10326	* omp-expand.c (expand_oacc_for): Handle calls to internal
10327	functions like regular functions.
10328
103292018-04-12  Richard Biener  <rguenther@suse.de>
10330
10331	PR lto/85371
10332	* dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label]
10333	for the early LTO debug to properly generate references to it
10334	during DIE emission.  Do not re-use that for the skeleton for
10335	split-dwarf.
10336	(dwarf2out_early_finish): Likewise.
10337
103382018-04-12  Jakub Jelinek  <jakub@redhat.com>
10339
10340	PR target/85328
10341	* config/i386/sse.md
10342	(<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name> split,
10343	<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name> split,
10344	vec_extract_lo_<mode><mask_name> split, vec_extract_lo_v32hi,
10345	vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg
10346	and output is a reg, avoid creating invalid lowpart subreg, but
10347	instead split into a 512-bit move.  Don't split if not AVX512VL,
10348	input is xmm16+ reg and output is a mem.
10349	(vec_extract_lo_<mode><mask_name>, vec_extract_lo_v32hi,
10350	vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is
10351	xmm16+ reg and output is a mem.
10352
103532018-04-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10354
10355	* config/s390/s390.c (s390_output_indirect_thunk_function): Check
10356	also for flag_dwarf2_cfi_asm.
10357
103582018-04-12  Jakub Jelinek  <jakub@redhat.com>
10359
10360	PR rtl-optimization/85342
10361	* regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use
10362	a bool scalar var inside of the loop instead.  Don't try to update
10363	recog_data.operand after failed apply_change_group.
10364
103652018-04-12  Tom de Vries  <tom@codesourcery.com>
10366
10367	PR target/85296
10368	* config/nvptx/nvptx.c (flexible_array_member_type_p): New function.
10369	(nvptx_assemble_decl_begin): Add undefined param.  Declare undefined
10370	array with flexible array member as array without given dimension.
10371	(nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call
10372	argument for undefined param to true.
10373
103742018-04-11  Aaron Sawdey  <acsawdey@linux.ibm.com>
10375
10376	PR target/85321
10377	* doc/invoke.texi (RS/6000 and PowerPC Options): Document options
10378	-mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe
10379	from PowerPC section.
10380	* config/rs6000/sysv4.opt (mcall-): Improve help text.
10381	* config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim
10382	help text that is too long.
10383	* config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim
10384	help text that is too long.
10385	* config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim
10386	help text that is too long.
10387
103882018-04-11  Uros Bizjak  <ubizjak@gmail.com>
10389
10390	* config/alpha/alpha.md (stack_probe_internal): Rename
10391	from "probe_stack".  Update all callers.
10392
103932018-04-11  Alexander Monakov  <amonakov@ispras.ru>
10394
10395	PR rtl-optimization/84566
10396	* sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking
10397	sched_macro_fuse_insns.
10398
103992018-04-11  Alexander Monakov  <amonakov@ispras.ru>
10400
10401	PR target/84301
10402	* sched-rgn.c (add_branch_dependences): Move sel_sched_p check here...
10403	(compute_block_dependences): ... from here.
10404
104052018-04-11  Jakub Jelinek  <jakub@redhat.com>
10406
10407	PR tree-optimization/85331
10408	* vec-perm-indices.h (vec_perm_indices::clamp): Change input type
10409	from int to HOST_WIDE_INT.
10410
104112018-04-11  Martin Jambor  <mjambor@suse.cz>
10412
10413	PR ipa/84149
10414	* ipa-cp.c (propagate_vals_across_pass_through): Expand comment.
10415	(cgraph_edge_brings_value_p): New parameter dest_val, check if it is
10416	not the same as the source val.
10417	(cgraph_edge_brings_value_p): New parameter.
10418	(gather_edges_for_value): Pass destination value to
10419	cgraph_edge_brings_value_p.
10420	(perhaps_add_new_callers): Likewise.
10421	(get_info_about_necessary_edges): Likewise and exclude values brought
10422	only by self-recursive edges.
10423	(create_specialized_node): Redirect only clones of self-calling edges.
10424	(+self_recursive_pass_through_p): New function.
10425	(find_more_scalar_values_for_callers_subset): Use it.
10426	(find_aggregate_values_for_callers_subset): Likewise.
10427	(known_aggs_to_agg_replacement_list): Removed.
10428	(decide_whether_version_node): Re-calculate known constants for all
10429	remaining context clones.
10430
104312018-04-11  Richard Biener  <rguenther@suse.de>
10432
10433	PR lto/85339
10434	* dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute
10435	from early DWARF output.
10436	(dwarf2out_early_finish): Output line info unconditionally into
10437	early DWARF and add reference to it.
10438
104392018-04-11  Jakub Jelinek  <jakub@redhat.com>
10440
10441	PR target/85281
10442	* config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases.
10443	(<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes
10444	other than V2DFmode using iptr mode attribute.
10445	(<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute.
10446
104472018-04-11  Alexander Monakov  <amonakov@ispras.ru>
10448
10449	PR rtl-optimization/84659
10450	* sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg.
10451
104522018-04-11  Jakub Jelinek  <jakub@redhat.com>
10453
10454	PR debug/85302
10455	* dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if
10456	SIZEP is NULL.
10457	(output_loc_list): Pass address of a dummy size variable even in the
10458	locview handling loop.
10459	(index_location_lists): Add comment on why skip_loc_list_entry can't
10460	call size_of_locs.
10461
104622018-04-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10463
10464	PR target/85261
10465	* config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
10466	into register.
10467
104682018-04-10  Aaron Sawdey  <acsawdey@linux.ibm.com>
10469
10470	PR target/85321
10471	* doc/invoke.texi (RS/6000 and PowerPC Options): Document options
10472	-mblock-compare-inline-limit, -mblock-compare-inline-loop-limit,
10473	and -mstring-compare-inline-limit.
10474
104752018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
10476
10477	PR target/85287
10478	* gcc/config/rs6000/rs6000.md (allocate_stack): Put the residual size
10479	for stack clash protection in a register whenever we need it to be in
10480	a register.
10481
104822018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
10483
10484	* common/config/rs6000/rs6000-common.c (rs6000_option_init_struct):
10485	Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF.
10486
104872018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
10488
10489	PR target/85321
10490	* config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in
10491	the help text.
10492	(mlong-double-): Ditto.
10493	* config/rs6000/sysv4.opt (msdata=): Ditto.
10494	(mtls-size=): Ditto.
10495
104962018-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
10497
10498	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
10499	erroneous entries for
10500	"vector int vec_ldl (int, long int *)", and
10501	"vector unsigned int vec_ldl (int, unsigned long int *)".
10502	Add comments and entries for
10503	"vector bool char vec_ldl (int, bool char *)",
10504	"vector bool short vec_ldl (int, bool short *)",
10505	"vector bool int vec_ldl (int, bool int *)",
10506	"vector bool long long vec_ldl (int, bool long long *)",
10507	"vector pixel vec_ldl (int, pixel *)",
10508	"vector long long vec_ldl (int, long long *)",
10509	"vector unsigned long long vec_ldl (int, unsigned long long *)".
10510	* config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new
10511	type tree bool_long_long_type_node and correct definition of
10512	bool_V2DI_type_node to make reference to this new type tree.
10513	(rs6000_mangle_type): Replace erroneous reference to
10514	bool_long_type_node with bool_long_long_type_node.
10515	* config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add
10516	comments to emphasize sign distinctions for char and int types and
10517	replace RS6000_BTI_bool_long constant with
10518	RS6000_BTI_bool_long_long constant.  Also add comment to restrict
10519	use of RS6000_BTI_pixel.
10520	(bool_long_type_node): Remove this macro definition.
10521	(bool_long_long_type_node): New macro definition
10522
105232018-04-10  Jakub Jelinek  <jakub@redhat.com>
10524
10525	PR rtl-optimization/85300
10526	* combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also
10527	into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if
10528	simplify_unary_operation fails.
10529
105302018-04-10  Martin Liska  <mliska@suse.cz>
10531
10532	* gdbhooks.py: Add pretty-printers for varpool_node, symtab_node,
10533	cgraph_edge and ipa_ref.
10534
105352018-04-10  Jakub Jelinek  <jakub@redhat.com>
10536
10537	PR target/85177
10538	PR target/85255
10539	* config/i386/sse.md
10540	(<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix
10541	computation of the VEC_MERGE selector from mask.
10542	(<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>):
10543	Fix decoding of the VEC_MERGE selector into mask.
10544
105452018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
10546
10547	PR tree-optimization/85286
10548	* tree-vect-data-refs.c (vect_get_smallest_scalar_type):
10549
105502018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
10551
10552	* final.c (final_1): Set insn_last_address as well as
10553	insn_current_address.
10554
105552018-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10556
10557	PR target/85173
10558	* explow.c (emit_stack_probe): Call validize_mem on memory location
10559	before passing it to gen_probe_stack.  Create address operand and
10560	legitimize it for the probe_stack_address case.
10561
105622018-04-09  Jan Hubicka  <jh@suse.cz>
10563
10564	PR lto/85078
10565	* ipa-devirt.c (rebuild_type_inheritance-hash): New.
10566	* ipa-utils.h (rebuild_type_inheritance-hash): Declare.
10567	* tree.c (free_lang_data_in_type): Fix handling of binfos;
10568	walk basetypes.
10569	(free_lang_data): Rebuild type inheritance graph.
10570
105712018-04-09  Martin Sebor  <msebor@redhat.com>
10572
10573	* invoke.texi (-finline-small-functions): Mention other optimization
10574	options.
10575	(-findirect-inlining, -fpartial-inlining): Same.
10576	(-finline-functions-called-once): Same.
10577	(-freorder-blocks-and-partition): Same.
10578
105792018-04-09  Jan Hubicka  <jh@suse.cz>
10580
10581	PR rtl/84058
10582	* cfgcleanup.c (try_forward_edges): Do not give up on crossing
10583	jumps; choose last target that matches the criteria (i.e.
10584	no partition changes for non-crossing jumps).
10585	* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic
10586	support for redirecting crossing jumps to non-crossing.
10587
105882018-04-09  Alexey Brodkin  <abrodkin@synopsys.com>
10589
10590	* config/arc/arc.c (arc_expand_prologue): Set stack usage info
10591	also for naked functions.
10592
105932018-04-09  Claudiu Zissulescu  <claziss@synopsys.com>
10594
10595	* config/arc/arc.md (add_shift): New pattern.
10596	(add_shift2): Likewise.
10597	(sub_shift): Likewise.
10598	(sub_shift_cmp0_noout): Likewise.
10599	(compare_si_ashiftsi): Likewise.
10600	(xbfu_cmp0_noout): New combine pattern.
10601	(xbfu_cmp0"): Likewise.
10602	(movsi_set_cc_insn): Place the predicable variant first.
10603	(commutative_binary_cmp0_noout): Remove clobber.
10604	(commutative_binary_cmp0): New pattern.
10605	(noncommutative_binary_cmp0): Likewise.
10606	(noncommutative_binary_cmp0_noout): Likewise.
10607	(noncommutative_binary_comparison_result_used): Removed.
10608	(rsub_cmp0): New pattern.
10609	(rsub_cmp0_noout): Likewise.
10610	(extzvsi): Changed, keep only meaningful variants.
10611	(SQH, SEZ): New iterators.
10612	(SQH_postfix): New mode attribute.
10613	(SEZ_prefix): New code attribute.
10614	(<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern.
10615	(<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise.
10616	* config/arc/predicates.md (cc_set_register): Use CC_REG instead
10617	of numerical value.
10618	(noncommutative_operator): Check the availability of barrel
10619	shifter option.
10620
106212018-04-09  Richard Biener  <rguenther@suse.de>
10622
10623	PR tree-optimization/85284
10624	* tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
10625	Only use the niter constraining form of simple_iv when the exit
10626	is always executed.
10627
106282018-04-09  Tom de Vries  <tom@codesourcery.com>
10629
10630	PR target/84041
10631	* config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR.
10632	(define_expand "*memory_barrier"): New define_expand.
10633	(define_insn "memory_barrier"): New insn.
10634
106352018-04-09  Andrey Belevantsev  <abel@ispras.ru>
10636
10637	PR rtl-optimization/80463
10638	PR rtl-optimization/83972
10639	PR rtl-optimization/83480
10640
10641	* sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the
10642	correct producer for the insn.
10643	(tidy_control_flow): Fixup seqnos in case of debug insns.
10644
106452018-04-09  Andrey Belevantsev  <abel@ispras.ru>
10646
10647	PR rtl-optimization/83913
10648
10649	* sel-sched-ir.c (merge_expr_data): Choose the middle between two
10650	different sched-times when merging exprs.
10651
106522018-04-09  Andrey Belevantsev  <abel@ispras.ru>
10653
10654	PR rtl-optimization/83962
10655
10656	* sel-sched-ir.c (tidy_control_flow): Correct the order in which we call
10657	tidy_fallthru_edge and tidy_control_flow.
10658
106592018-04-09  Andrey Belevantsev  <abel@ispras.ru>
10660
10661	PR rtl-optimization/83530
10662
10663	* sel-sched.c (force_next_insn): New global variable.
10664	(remove_insn_for_debug): When force_next_insn is true, also leave only
10665	next insn in the ready list.
10666	(sel_sched_region): When the region wasn't scheduled, make another pass
10667	over it with force_next_insn set to 1.
10668
106692018-04-08  Monk Chiang  <sh.chiang04@gmail.com>
10670
10671	* config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h
10672	into tm_file.
10673	* config/nds32/constants.md (unspec_volatile_element): Add enum values
10674	for interrupt control.
10675	* config/nds32/nds32-intrinsic.c: Implementation of intrinsic
10676	functions for interrupt control.
10677	* config/nds32/nds32-intrinsic.md: Likewise.
10678	* config/nds32/nds32_intrinsic.h: Likewise.
10679	* config/nds32/nds32.h (nds32_builtins): Likewise.
10680
106812018-04-08  Chung-Ju Wu  <jasonwucj@gmail.com>
10682
10683	* config/nds32/nds32.c (nds32_init_machine_status,
10684	nds32_legitimate_index_p, nds32_legitimate_address_p): Consider
10685	strict_aligned_p field.
10686	(nds32_expand_to_rtl_hook): New function.
10687	(TARGET_EXPAND_TO_RTL_HOOK): Define.
10688	* config/nds32/nds32.h (machine_function): Add strict_aligned_p field.
10689
106902018-04-08  Kito Cheng  <kito.cheng@gmail.com>
10691	    Chung-Ju Wu  <jasonwucj@gmail.com>
10692
10693	* config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu.
10694	* config/nds32/nds32-n7.md: New file.
10695	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7.
10696	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7
10697	pipeline.
10698	* config/nds32/nds32-protos.h: More declarations for n7 pipeline.
10699	* config/nds32/nds32.md (pipeline_model): Add n7.
10700	* config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus.
10701	* config/nds32/pipelines.md: Include n7 settings.
10702
107032018-04-08  Kito Cheng  <kito.cheng@gmail.com>
10704	    Chung-Ju Wu  <jasonwucj@gmail.com>
10705
10706	* config.gcc (nds32*-*-*): Check that e8 is valid to --with-cpu.
10707	* config/nds32/nds32-e8.md: New file.
10708	* config/nds32/nds32-opts.h (nds32-cpu_type): Add CPU_E8.
10709	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for e8
10710	pipeline.
10711	* config/nds32/nds32-protos.h: More declarations for e8 pipeline.
10712	* config/nds32/nds32.md (pipeline_model): Add e8.
10713	* config/nds32/nds32.opt (mcpu): Support e8 pipeline cpus.
10714	* config/nds32/pipelines.md: Include e8 settings.
10715
107162018-04-08  Kito Cheng  <kito.cheng@gmail.com>
10717	    Chung-Ju Wu  <jasonwucj@gmail.com>
10718
10719	* config.gcc (nds32*-*-*): Check that n6/n8/s8 are valid to --with-cpu.
10720	* config/nds32/nds32-n8.md: New file.
10721	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N6 and CPU_N8.
10722	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n8
10723	pipeline.
10724	* config/nds32/nds32-protos.h: More declarations for n8 pipeline.
10725	* config/nds32/nds32-utils.c: More implementations for n8 pipeline.
10726	* config/nds32/nds32.md (pipeline_model): Add n8.
10727	* config/nds32/nds32.opt (mcpu): Support n8 pipeline cpus.
10728	* config/nds32/pipelines.md: Include n8 settings.
10729
107302018-04-08  Kito Cheng  <kito.cheng@gmail.com>
10731	    Chung-Ju Wu  <jasonwucj@gmail.com>
10732
10733	* config.gcc (nds32*): Add nds32-utils.o into extra_objs.
10734	* config/nds32/nds32-n9-2r1w.md: New file.
10735	* config/nds32/nds32-n9-3r2w.md: New file.
10736	* config/nds32/nds32-opts.h (nds32_cpu_type, nds32_mul_type,
10737	nds32_register_ports): New or modify for cpu n9.
10738	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n9
10739	pipeline.
10740	* config/nds32/nds32-protos.h: More declarations for n9 pipeline.
10741	* config/nds32/nds32-utils.c: New file.
10742	* config/nds32/nds32.h (TARGET_PIPELINE_N9, TARGET_PIPELINE_SIMPLE,
10743	TARGET_MUL_SLOW): Define.
10744	* config/nds32/nds32.md (pipeline_model): New attribute.
10745	* config/nds32/nds32.opt (mcpu, mconfig-mul, mconfig-register-ports):
10746	New options that support cpu n9.
10747	* config/nds32/pipelines.md: Include n9 settings.
10748	* config/nds32/t-nds32 (nds32-utils.o): Add dependency.
10749
107502018-04-08  Chung-Ju Wu  <jasonwucj@gmail.com>
10751
10752	* config/nds32/nds32-md-auxiliary.c (output_cond_branch): Output align
10753	information if necessary.
10754	(output_cond_branch_compare_zero): Likewise.
10755	* config/nds32/nds32.c (nds32_adjust_insn_length): Consider align case.
10756	(nds32_target_alignment): Refine for alignment.
10757	* config/nds32/nds32.h (NDS32_ALIGN_P): Define.
10758	(FUNCTION_BOUNDARY): Modify.
10759	* config/nds32/nds32.md (call_internal, call_value_internal): Consider
10760	align case.
10761	* config/nds32/nds32.opt (malways-align, malign-functions): New.
10762
107632018-04-08  Monk Chiang  <sh.chiang04@gmail.com>
10764
10765	* config/nds32/constants.md (unspec_volatile_element): Add values for
10766	TLB operation and data prefetch.
10767	* config/nds32/nds32-intrinsic.c: Implementation of intrinsic
10768	functions for TLB operation and data prefetch.
10769	* config/nds32/nds32-intrinsic.md: Likewise.
10770	* config/nds32/nds32_intrinsic.h: Likewise.
10771	* config/nds32/nds32.c (nds32_dpref_names): Likewise.
10772	(nds32_print_operand): Likewise.
10773	* config/nds32/nds32.h (nds32_builtins): Likewise.
10774
107752018-04-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
10776	Andrew Pinski <pinsika@gcc.gnu.org>
10777
10778	PR middle-end/82976
10779	* match.pd: Use constant_boolean_node of correct type instead of
10780	boolean_true_node or boolean_false_node for simplifying
10781	pointer comparisons to zero.
10782
107832018-04-07  Jakub Jelinek  <jakub@redhat.com>
10784
10785	PR tree-optimization/80021
10786	* tree.c (verify_type_variant): Make error call in verify_variant_match
10787	translatable and remove final full stop.
10788
107892018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
10790
10791	* config/nds32/constants.md (unspec_volatile_element): Add
10792	UNSPEC_VOLATILE_EH_RETURN.
10793	* config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push,
10794	nds32_output_stack_pop): Support dwarf exception handling process.
10795	* config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare.
10796	* config/nds32/nds32.c (nds32_init_machine_status): Support dwarf
10797	exception handling process.
10798	(nds32_compute_stack_frame): Likewise.
10799	(nds32_return_addr_rtx): Likewise.
10800	(nds32_initial_elimination_offset): Likewise.
10801	(nds32_expand_prologue): Likewise.
10802	(nds32_expand_epilogue): Likewise.
10803	(nds32_dynamic_chain_address): New function.
10804	* config/nds32/nds32.h (machine_function): Add fields for dwarf
10805	exception handling.
10806	(DYNAMIC_CHAIN_ADDRESS): Define.
10807	(EH_RETURN_DATA_REGNO): Define.
10808	(EH_RETURN_STACKADJ_RTX): Define.
10809	* config/nds32/nds32.md (eh_return, nds32_eh_return): Implement
10810	patterns for dwarf exception handling.
10811
108122018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
10813
10814	* config/nds32/nds32.h: Clean up obsolete macros.
10815
108162018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
10817
10818	* config/nds32/constants.md (unspec_element, unspec_volatile_element):
10819	Add enum values for particular instructions.
10820	* config/nds32/nds32-intrinsic.c: Implementation of expanding
10821	particular intrinsic functions.
10822	* config/nds32/nds32-intrinsic.md: Likewise.
10823	* config/nds32/nds32_intrinsic.h: Likewise.
10824	* config/nds32/nds32.h (nds32_builtins): Likewise.
10825	* config/nds32/nds32.md (type): Add pbsad and pbsada.
10826	(btst, ave): New patterns for particular instructions.
10827
108282018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
10829
10830	* config/nds32/constants.md (unspec_element, unspec_volatile_element):
10831	Add enum values for atomic load/store and memory sync.
10832	* config/nds32/nds32-intrinsic.c: Implementation for atomic load/store
10833	and memory sync.
10834	* config/nds32/nds32-intrinsic.md: Likewise.
10835	* config/nds32/nds32_intrinsic.h: Likewise.
10836	* config/nds32/nds32.h (nds32_builtins): Likewise.
10837
108382018-04-07  Jakub Jelinek  <jakub@redhat.com>
10839
10840	PR tree-optimization/85257
10841	* fold-const.c (native_encode_vector): If not all elts could fit
10842	and off is -1, return 0 rather than offset.
10843	* tree-ssa-sccvn.c (vn_reference_lookup_3): Pass
10844	(offseti - offset2) / BITS_PER_UNIT as 4th argument to
10845	native_encode_expr.  Verify len * BITS_PER_UNIT >= maxsizei.  Don't
10846	adjust buffer in native_interpret_expr call.
10847
108482018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
10849
10850	* config/nds32/constants.md (unspec_volatile_element): Add cache
10851	control enum values.
10852	* config/nds32/nds32-intrinsic.c: Add cache control expand functions.
10853	* config/nds32/nds32-intrinsic.md: Add cache control patterns.
10854	* config/nds32/nds32.c (nds32_cctl_names): New.
10855	(nds32_print_operand): Handle cache control register names.
10856	* config/nds32/nds32.h (nds32_builtins): New enum values.
10857	* config/nds32/nds32_intrinsic.h: Add cache control enum types and
10858	macros.
10859	* config/nds32/nds32.md (type): Add mmu.
10860	* config/nds32/pipelines.md (simple_insn): Add mmu.
10861
108622018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
10863
10864	* config/nds32/nds32.md (type): Remove call.
10865	* config/nds32/pipelines.md (simple_insn): Likewise.
10866
108672018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
10868
10869	* config/nds32/constants.md (unspec_volatile_element): Add
10870	UNSPEC_VOLATILE_FMFCSR, UNSPEC_VOLATILE_FMTCSR and
10871	UNSPEC_VOLATILE_FMFCFG.
10872	* config/nds32/nds32-intrinsic.c (bdesc_noarg): New builtin
10873	description for fmfcfg and fmfcsr.
10874	(bdesc_1arg): Add fmtcsr.
10875	(bdesc_2arg): Add fcpynss, fcpyss, fcpynsd and fcpysd.
10876	(nds32_expand_builtin_impl): Deal with FPU intrinsic functions.
10877	* config/nds32/nds32-intrinsic.md (unspec_fcpynsd, unspec_fcpysd,
10878	unspec_fcpynss, unspec_fcpysd, unspec_fcpyss, unspec_fmfcsr,
10879	unspec_fmfcfg): New patterns.
10880	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FMFCFG,
10881	NDS32_BUILTIN_FMFCSR, NDS32_BUILTIN_FMTCSR, NDS32_BUILTIN_FCPYNSS,
10882	NDS32_BUILTIN_FCPYSS,NDS32_BUILTIN_FCPYNSD and NDS32_BUILTIN_FCPYSD.
10883	* config/nds32/nds32_intrinsic.h (__nds32__fcpynsd, __nds32__fcpynss,
10884	__nds32__fcpysd, __nds32__fcpyss, __nds32__fmfcsr, __nds32__fmtcsr,
10885	__nds32__fmfcfg): Define.
10886
108872018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
10888
10889	* config/nds32/nds32.c (nds32_intrinsic_register_names): Add more
10890	intrinsic register names.
10891	* config/nds32/nds32_intrinsic.h (nds32_intrinsic_registers): Add more
10892	intrinsic register enum values and macros.
10893
108942018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
10895
10896	* config/nds32/nds32.c (nds32_legitimate_index_p): Modify condition
10897	for load/store addressing form.
10898	(nds32_print_operand_address): Likewise.
10899
109002018-04-06  Eric Botcazou  <ebotcazou@adacore.com>
10901
10902	PR target/85196
10903	* config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands
10904	based on LABEL_REF.  Remove useless assertion.
10905	(pic_address_needs_scratch): Fix formatting.
10906	(sparc_legitimize_pic_address): Minor tweaks.
10907	(sparc_delegitimize_address): Adjust assertion accordingly.
10908	* config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand
10909	into symbolic_operand.
10910	(movsi_high_pic_label_ref): Likewise.
10911	(movsi_lo_sum_pic_label_ref): Likewise.
10912	(movdi_pic_label_ref): Likewise.
10913	(movdi_high_pic_label_ref): Likewise.
10914	(movdi_lo_sum_pic_label_ref): Likewise.
10915
109162018-04-06  Amaan Cheval  <amaan.cheval@gmail.com>
10917
10918	* config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for
10919	custom LIB_SPEC setup.
10920
109212018-04-06  Ruslan Bukin  <br@bsdpad.com>
10922	    Kito Cheng  <kito.cheng@gmail.com>
10923
10924	* config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support.
10925	* config/riscv/freebsd.h: New.
10926
109272018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
10928
10929	* config/nds32/nds32.c (nds32_adjust_insn_length): Refine.
10930	* config/nds32/nds32.h (ADJUST_INSN_LENGTH): Change the location in
10931	file.
10932
109332018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
10934	    Kito Cheng  <kito.cheng@gmail.com>
10935
10936	* config/nds32/nds32-md-auxiliary.c (nds32_output_return,
10937	nds32_output_call, nds32_symbol_binds_local_p): New functions.
10938	* config/nds32/nds32-protos.h (nds32_output_call,
10939	nds32_output_return): Declare.
10940	* config/nds32/nds32.md: Refine all the call and return patterns.
10941
109422018-04-06  Jakub Jelinek  <jakub@redhat.com>
10943
10944	PR debug/85252
10945	* dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only
10946	build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST.
10947
10948	PR rtl-optimization/84872
10949	* cfgloopmanip.c (create_preheader): Use make_forwarder_block even if
10950	nentry == 1 when CP_FALLTHRU_PREHEADERS and single_entry is
10951	EDGE_CROSSING edge.
10952
109532018-04-06  Tamar Christina  <tamar.christina@arm.com>
10954
10955	* expr.c (copy_blkmode_to_reg): Revert 254862.
10956	* doc/sourcebuild.texi (word_mode_no_slow_unalign): Likewise.
10957
109582018-04-06  Richard Biener  <rguenther@suse.de>
10959
10960	PR middle-end/85244
10961	* tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref
10962	after seeing a component reference with an adjacent field.  Treat
10963	refs to arrays at struct end of external decls similar to
10964	refs to unconstrained commons.
10965
109662018-04-06  Jakub Jelinek  <jakub@redhat.com>
10967
10968	PR sanitizer/85213
10969	* fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't
10970	look through SAVE_EXPRs with non-side-effects argument.  Adjust
10971	recursive calls.
10972	(fold_comparison): Adjust twoval_comparison_p caller, don't handle
10973	save_p here.
10974
109752018-04-06  Richard Biener  <rguenther@suse.de>
10976
10977	PR middle-end/85180
10978	* alias.c (find_base_term): New wrapper around find_base_term
10979	unwinding CSELIB_VAL_PTR changes.
10980	(find_base_term): Do not restore CSELIB_VAL_PTR during the
10981	recursion.
10982
109832018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10984
10985	* config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP
10986	instructions.
10987	* config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New
10988	constant definitions.
10989	("nop"): lr 0,0 -> nopr r0
10990	("nop_lr0", "nop_lr1"): New insn definitions.
10991
109922018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
10993
10994	* config/nds32/nds32.md (*stack_push, *stack_pop): Use
10995	NDS32_V3PUSH_AVAILABLE_P macro.
10996
109972018-04-06  Monk Chiang  <sh.chiang04@gmail.com>
10998	    Chung-Ju Wu  <jasonwucj@gmail.com>
10999
11000	* config.gcc (nds32*-*-*): Add v2j v3f v3s checking.
11001	(nds32*-*-*): Add float and fpu_config into supported_defaults.
11002	* common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
11003	Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA.
11004	* config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN,
11005	UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS.
11006	* config/nds32/constraints.md: New constraints and checking for hard
11007	float configuration.
11008	* config/nds32/iterators.md: New mode iterator and attribute for hard
11009	float configuration.
11010	* config/nds32/nds32-doubleword.md: Use hard float alternatives and
11011	patterns.
11012	* config/nds32/nds32-fpu.md: New file.
11013	* config/nds32/nds32-md-auxiliary.c: New functions and checkings to
11014	deal with hard float code generation.
11015	* config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and
11016	ARCH_V3S.
11017	(abi_type, float_reg_number): New enum type.
11018	* config/nds32/nds32-predicates.c: New predicates for hard float.
11019	* config/nds32/nds32-protos.h: Declare functions for hard float.
11020	* config/nds32/nds32.c: Implementation for hard float configuration.
11021	* config/nds32/nds32.h: Definitions for hard float configuration.
11022	* config/nds32/nds32.md: Include hard float machine description and
11023	modify patterns for hard float configuration.
11024	* config/nds32/nds32.opt: New options for hard float configuration.
11025	* config/nds32/predicates.md: New predicates for hard float
11026	configuration.
11027
110282018-04-06  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
11029
11030	* common/config/nds32/nds32-common.c
11031	(nds32_option_optimization_table): Enable -mreleax-hint by default.
11032
110332018-04-05  Jakub Jelinek  <jakub@redhat.com>
11034
11035	PR middle-end/85195
11036	* match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Use view_convert around
11037	CONSTRUCTOR_ELT (ctor, ...)->value.
11038
110392018-04-05  Uros Bizjak  <ubizjak@gmail.com>
11040
11041	PR target/85193
11042	* config/i386/i386.md (define_attr "memory"): Handle rotate1 type.
11043
110442018-04-05  Tom de Vries  <tom@codesourcery.com>
11045
11046	PR target/85204
11047	* config/nvptx/nvptx.c (nvptx_single): Fix neutering of bb with only
11048	cond jump.
11049
110502018-04-05  Shiva Chen  <shiva0217@gmail.com>
11051	    Kito Cheng  <kito.cheng@gmail.com>
11052
11053	* config/nds32/constraints.md (U33): Fine-tune checking condition.
11054	* config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Ditto.
11055	* config/nds32/nds32.h (nds32_16bit_address_type): Add
11056	ADDRESS_POST_MODIFY_LO_REG_IMM3U.
11057
110582018-04-05  Shiva Chen  <shiva0217@gmail.com>
11059	    Kito Cheng  <kito.cheng@gmail.com>
11060
11061	* config/nds32/constraints.md (Ufe): New memory constraint.
11062	* config/nds32/nds32-md-auxiliary.c (nds32_mem_format,
11063	nds32_output_16bit_load): Consider r8 register for lwi45.fe format.
11064	* config/nds32/nds32.c (nds32_print_operand): Output lwi45.fe
11065	operands.
11066	* config/nds32/nds32.h (nds32_16bit_address_type): Add ADDRESS_R8_IMM7U.
11067	* config/nds32/nds32.md (*mov<mode>): Adjust pattern.
11068
110692018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
11070
11071	* config/nds32/nds32.md: Use optimize_size in the condition for
11072	alu-shift instructions.
11073
110742018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
11075
11076	* config/nds32/nds32.md (divsi4, udivsi4): New patterns.
11077
110782018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
11079
11080	* config/nds32/nds32.md (negsi2): Refine pattern.
11081
110822018-04-05  Kito Cheng  <kito.cheng@gmail.com>
11083	    Chung-Ju Wu  <jasonwucj@gmail.com>
11084
11085	* config/nds32/iterators.md (shift_rotate): New code iterator.
11086	(shift): New code attribute.
11087	* config/nds32/nds32-md-auxiliary.c (nds32_expand_constant): New.
11088	* config/nds32/nds32-protos.h (nds32_expand_constant): Declare.
11089	* config/nds32/nds32.c (nds32_print_operand): Deal with more cases.
11090	* config/nds32/nds32.md (addsi3, *add_srli): Refine implementation for
11091	bit-wise operations.
11092	(andsi3, *andsi3): Ditto.
11093	(iorsi3, *iorsi3, *or_slli, *or_srli): Ditto.
11094	(xorsi3, *xorsi3, *xor_slli, *xor_srli): Ditto.
11095	(<shift>si3, *ashlsi3, *ashrsi3, *lshrsi3, *rotrsi3): Ditto.
11096	* config/nds32/predicates.md (nds32_rimm5u_operand, nds32_and_operand,
11097	nds32_ior_operand, nds32_xor_operand): New predicates.
11098
110992018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
11100
11101	* config/nds32/nds32.md (add<mode>3, sub<mode>3): Rename to ...
11102	(addsi3, subsi3): ... this.
11103
111042018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
11105
11106	* config/nds32/nds32.md (*sub_srli, *and_slli): Fine-tune predicator.
11107
111082018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
11109
11110	* config/nds32/nds32.md: Adjust indention.
11111
111122018-04-05  Kito Cheng  <kito.cheng@gmail.com>
11113
11114	* config/nds32/nds32.md (feature): New attribute.
11115
111162018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
11117
11118	* config/nds32/nds32.md (subtype): New attribute.
11119
111202018-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11121
11122	PR target/85203
11123	* config/arm/arm-builtins.c (arm_expand_builtin): Change
11124	expansion to perform a bitwise AND of the argument followed by a
11125	boolean negation of the result.
11126
111272018-04-04  Peter Bergner  <bergner@vnet.ibm.com>
11128
11129	PR rtl-optimization/84878
11130	* ddg.c (add_cross_iteration_register_deps): Use DF_REF_BB to determine
11131	the basic block.  Assert the use reference is not artificial and that
11132	it has an associated insn.
11133
111342018-04-04  Michael Matz  <matz@suse.de>
11135
11136	* builtins.c (compute_objsize): Pass correct operand
11137	to array_at_struct_end_p.
11138
111392018-04-04  Richard Biener  <rguenther@suse.de>
11140
11141	PR lto/85176
11142	* dwarf2out.c (dwarf2out_register_external_die): Peel namespaces
11143	from contexts for DINFO_LEVEL_TERSE and below.
11144
111452018-04-04  Kito Cheng  <kito.cheng@gmail.com>
11146
11147	* config/nds32/nds32-doubleword.md (move_<mode>): Require
11148	resiter_operand condition.
11149	* config/nds32/nds32.md (*move<mode>): Ditto.
11150
111512018-04-04  Kito Cheng  <kito.cheng@gmail.com>
11152	    Monk Chiang  <sh.chiang04@gmail.com>
11153
11154	* config/nds32/nds32.md (movmisalign<mode>): New pattern.
11155
111562018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
11157
11158	* config/nds32/nds32.md (movqi, movhi): Merge into mov<mode>.
11159
111602018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
11161	    Kito Cheng  <kito.cheng@gmail.com>
11162
11163	* config/nds32/nds32-md-auxiliary.c (nds32_inverse_cond_code,
11164	nds32_cond_code_str, output_cond_branch,
11165	output_cond_branch_compare_zero, nds32_expand_cbranch,
11166	nds32_expand_cstore, nds32_expand_movcc,
11167	nds32_output_cbranchsi4_equality_zero,
11168	nds32_output_cbranchsi4_equality_reg,
11169	nds32_output_cbranchsi4_equality_reg_or_const_int,
11170	nds32_output_cbranchsi4_greater_less_zero: New functions.
11171	* config/nds32/nds32-protos.h (nds32_expand_cbranch,
11172	nds32_expand_cstore, nds32_expand_movcc,
11173	nds32_output_cbranchsi4_equality_zero,
11174	nds32_output_cbranchsi4_equality_reg,
11175	nds32_output_cbranchsi4_equality_reg_or_const_int,
11176	nds32_output_cbranchsi4_greater_less_zero): Declare.
11177	* config/nds32/predicates.md (nds32_movecc_comparison_operator,
11178	nds32_rimm11s_operand): New predicates.
11179	* config/nds32/nds32.h (nds32_expand_result_type): New enum type.
11180	* config/nds32/nds32.md: Rewrite all the branch and conditional move
11181	patterns.
11182
111832018-04-04  Kito Cheng  <kito.cheng@gmail.com>
11184
11185	* config/nds32/nds32-doubleword.md: Refine all the instruction type.
11186	* config/nds32/nds32.md: Ditto.
11187	* config/nds32/pipelines.md: Ditto.
11188
111892018-04-04  Richard Biener  <rguenther@suse.de>
11190
11191	PR tree-optimization/85168
11192	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid
11193	propagating abnormals.
11194
111952018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
11196
11197	* config/nds32/nds32.md (enabled): Use yes/no for this attribute.
11198
111992018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
11200	    Kito Cheng  <kito.cheng@gmail.com>
11201
11202	* config/nds32/nds32-md-auxiliary.c (nds32_long_call_p): New function.
11203	* config/nds32/nds32-protos.h (nds32_long_call_p): Declare.
11204	* config/nds32/nds32.c (nds32_function_ok_for_sibcall): New function.
11205	(TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
11206	* config/nds32/nds32.md (sibcall_internal): New.
11207	(sibcall_register): Remove.
11208	(sibcall_immediate): Remove.
11209	(sibcall_value_internal): New.
11210	(sibcall_value_register): Remove.
11211	(sibcall_value_immediate): Remove.
11212	* config/nds32/predicates.md (nds32_general_register_operand): New.
11213	(nds32_call_address_operand): New.
11214
112152018-04-03  Jakub Jelinek  <jakub@redhat.com>
11216
11217	PR rtl-optimization/85167
11218	* shrink-wrap.c (move_insn_for_shrink_wrap): Don't set bb_uses and
11219	bb_defs if *split_p, instead preinitialize it to NULL.
11220
11221	PR tree-optimization/85156
11222	* builtins.c (fold_builtin_expect): Use save_expr on arg1 to avoid
11223	evaluating the argument multiple times.
11224
112252018-04-03  Bill Schmidt  <wschmidt@linux.ibm.com>
11226
11227	* config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Use __vector rather
11228	than vector.
11229	(_mm_cvtpd_ps): Likewise.
11230	(_mm_cvttpd_epi32): Likewise.
11231	* config/rs6000/mmintrin.h (_mm_unpacklo_pi8): Likewise.
11232	* config/rs6000/xmmintrin.h: For strict-ANSI C++ or C11, undefine
11233	vector, pixel, and bool following altivec.h include.
11234
112352018-04-03  Martin Sebor  <msebor@redhat.com>
11236
11237	* doc/extend.texi (Common Function Attributes): Clarify.
11238	(const attribute): Likewise.
11239	(pure attribute): Likewise.
11240
112412018-04-03  Jakub Jelinek  <jakub@redhat.com>
11242
11243	PR target/85169
11244	* config/i386/i386.c (ix86_expand_vector_set): Use
11245	HOST_WIDE_INT_1U << elt instead of 1 << elt.  Formatting fix.
11246
112472018-04-03  Uros Bizjak  <ubizjak@gmail.com>
11248
11249	* config/i386/i386.c (emit_i387_cw_initialization): Always use logic
11250	instructions when changing rounding bits to preserve precision bits
11251	in the x87 control word.
11252
112532018-04-03  Martin Liska  <mliska@suse.cz>
11254
11255	PR tree-optimization/82491
11256	* rtl.h (strip_offset_and_add): Replace += suboffset with
11257	poly_uint64 () + suboffset.
11258
112592018-03-29  Martin Liska  <mliska@suse.cz>
11260	    Martin Jambor  <mjambor@suse.cz>
11261
11262	PR ipa/84947
11263	* ipa-cp.c (propagate_bits_across_jump_function): Bail out if
11264	param_type is not an integral or pointer type.
11265
112662018-04-03  Richard Biener  <rguenther@suse.de>
11267
11268	* sese.h (recompute_all_dominators): Remove.
11269
112702018-04-02  Martin Sebor  <msebor@redhat.com>
11271
11272	* doc/invoke.texi (-Wrestrict): Fix typos.
11273
112742018-04-02  Jim Wilson  <jimw@sifive.com>
11275
11276	* config/riscv/riscv.h (SHIFT_COUNT_TRUNCATED): Set to zero.
11277	* config/riscv/riscv.md (<optab>si3): Use QImode shift count.
11278	(<optab>di3, <optab>si3_extend): Likewise.
11279	(<optab>si3_mask, <optab>si3_mask_1): New.
11280	(<optab>di3_mask, <optab>di3_mask_1): New.
11281	(<optab>si3_extend_mask, <optab>si3_extend_mask_1): New.
11282	(lshrsi3_zero_extend_1): Use VOIDmode shift count.
11283	* config/riscv/sync.md (atomic_test_and_set): Emit QImode shift count.
11284
112852018-04-02  Gerald Pfeifer  <gerald@pfeifer.com>
11286
11287	* doc/cpp.texi (Variadic Macros): Fix line continuation in an
11288	example.
11289
112902018-04-02  Chung-Ju Wu  <jasonwucj@gmail.com>
11291
11292	* config/nds32/nds32.c (TARGET_CANONICALIZE_COMPARISON): Define.
11293	(nds32_canonicalize_comparison): New function.
11294
112952018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
11296	    Kito Cheng  <kito.cheng@gmail.com>
11297	    Kuan-Lin Chen  <kuanlinchentw@gmail.com>
11298
11299	* config.gcc (nds32): Add nds32-relax-opt.o into extra_objs.
11300	* config/nds32/constants.md (unspec_volatile_element): Add
11301	UNSPEC_VOLATILE_RELAX_GROUP.
11302	* config/nds32/nds32-relax-opt.c: New file.
11303	* config/nds32/nds32-predicates.c
11304	(nds32_symbol_load_store_p): New function.
11305	* config/nds32/nds32-protos.h
11306	(nds32_symbol_load_store_p): Declare function.
11307	(make_pass_nds32_relax_opt): Declare new rtl pass function.
11308	* config/nds32/nds32.c
11309	(nds32_register_pass): New function to register pass.
11310	(nds32_register_passes): New function to register passes.
11311	* config/nds32/nds32.md (relax_group): New pattern.
11312	* config/nds32/nds32.opt (mrelax-hint): New option.
11313	* config/nds32/t-nds32 (nds32-relax-opt.o): New dependency.
11314
113152018-04-01  Kito Cheng  <kito.cheng@gmail.com>
11316
11317	* config/nds32/t-nds32: Modify files dependency.
11318
113192018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
11320
11321	* config/nds32/nds32.h (FUNCTION_PROFILER): Output newline character.
11322	(PROFILE_HOOK): Define its implementation.
11323
113242018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
11325
11326	* config/nds32/nds32.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int
11327	type and 32-bit size.
11328
113292018-04-01  Jakub Jelinek  <jakub@redhat.com>
11330
11331	PR middle-end/85090
11332	* config/i386/sse.md (V): Add V64QI and V32HI for TARGET_AVX512F.
11333	(V_128_256): New mode iterator.
11334	(*avx512dq_vextract<shuffletype>64x2_1 splitter): New define_split.
11335	(*avx512f_vextract<shuffletype>32x4_1 splitter): Likewise.
11336	(xop_pcmov_<mode><avxsizesuffix>): Use V_128_256 mode iterator instead
11337	of V.
11338	* config/i386/i386.c (ix86_expand_vector_set): Improve V32HImode and
11339	V64QImode expansion for !TARGET_AVX512BW && TARGET_AVX512F.
11340
113412018-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
11342
11343	PR target/83315
11344	* config/rs6000/xmmintrin.h (_mm_set_ps, _mm_max_ps): Handle (quiet)
11345	NaN inputs correctly.
11346
113472018-03-30  Peter Bergner  <bergner@vnet.ibm.com>
11348
11349	PR target/80546
11350	* config/rs6000/vsx.md (??r): New mode attribute.
11351	(*vsx_mov<mode>_64bit): Use it.
11352	(*vsx_mov<mode>_32bit): Likewise.
11353
113542018-03-30  Martin Sebor  <msebor@redhat.com>
11355
11356	PR tree-optimization/84818
11357	* builtins.c (check_access): Use warning_n.
11358
113592018-03-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
11360
11361	PR target/83822
11362	* config/rs6000/rs6000-string.c (expand_compare_loop): Fix redundant
11363	condition.
11364	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Fix redundant
11365	condition.
11366
113672018-03-30  Julia Koval  <julia.koval@intel.com>
11368
11369	PR target/84413
11370	* x86-tune.def (movx, partial_reg_dependency): Enable for
11371	m_SKYLAKE_AVX512.
11372
113732018-03-29  Vladimir Makarov  <vmakarov@redhat.com>
11374
11375	PR inline-asm/84985
11376	* lra-constraints.c (process_alt_operands): Move setting
11377	this_alternative_matches below.
11378
113792018-03-29  Martin Liska  <mliska@suse.cz>
11380
11381	PR lto/84995.
11382	* doc/invoke.texi: Document how LTO works with debug info.
11383	Describe auto-load support of binutils.  Mention 'x86-64'
11384	as valid option value of -march option.
11385
113862018-03-29  Jakub Jelinek  <jakub@redhat.com>
11387
11388	* config/i386/sse.md (<avx512>_blendm<mode>): Use <sseintprefix>.
11389
11390	PR c/85094
11391	* fold-const.c (operand_equal_p): Handle DEBUG_BEGIN_STMT.
11392	For STATEMENT_LIST, pass down OEP_LEXICOGRAPHIC and maybe
11393	OEP_NO_HASH_CHECK for recursive call, to avoid exponential
11394	checking.
11395
113962018-03-28  Peter Bergner  <bergner@vnet.ibm.com>
11397
11398	PR target/84912
11399	* config/rs6000/rs6000.h (RS6000_BTM_POWERPC64): New define.
11400	(RS6000_BTM_COMMON): Add RS6000_BTM_POWERPC64.
11401	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add support
11402	for RS6000_BTM_POWERPC64.
11403	(rs6000_invalid_builtin): Add handling for RS6000_BTM_POWERPC64
11404	(rs6000_builtin_mask_names): Add RS6000_BTM_POWERPC64.
11405	* config/rs6000/rs6000-builtin.def (BU_P7_POWERPC64_MISC_2): New macro
11406	definition.
11407	(DIVDE): Use it.
11408	(DIVDEU): Likewise.
11409
114102018-03-28 Carl Love  <cel@us.ibm.com>
11411
11412	Revert
11413	2017-09-27  Carl Love  <cel@us.ibm.com>
11414
11415	* config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
11416	(FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
11417	* config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
11418	fctiw instruction.
11419
114202018-03-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11421
11422	* config/rs6000/xmmintrin.h (_mm_max_pi16): Use __vector __bool
11423	instead of __vector bool.
11424	(_mm_max_pu8): Likewise.
11425	(_mm_min_pi16): Likewise.
11426
114272018-03-28  Peter Bergner  <bergner@vnet.ibm.com>
11428
11429	PR target/84912
11430	* config/rs6000/rs6000-builtin.def (DIVWEO): Delete macro expansion.
11431	(DIVWEUO): Likewise.
11432	(DIVDEO): Likewise.
11433	(DIVDEUO): Likewise.
11434	* config/rs6000/rs6000.c (builtin_function_type): Remove support for
11435	DIVWEUO and DIVDEUO.
11436	* config/rs6000/rs6000.md (UNSPEC_DIVEO, UNSPEC_DIVEUO): Delete unspecs.
11437	(UNSPEC_DIV_EXTEND): Remove deleted unspecs.
11438	(div_extend): Likewise.
11439	* doc/extend.texi (__builtin_divweo): Remove documentation for deleted
11440	builtin function.
11441	(__builtin_divweuo): Likewise.
11442	(__builtin_divdeo): Likewise.
11443	(__builtin_divdeuo): Likewise.
11444
114452018-03-28  Jakub Jelinek  <jakub@redhat.com>
11446
11447	PR target/85095
11448	* config/i386/i386.md (*add<mode>3_carry_0, *addsi3_carry_zext_0,
11449	*sub<mode>3_carry_0, *subsi3_carry_zext_0): New patterns.
11450
11451	PR tree-optimization/82004
11452	* gimple-match-head.c (optimize_pow_to_exp): New function.
11453	* match.pd (pow(C,x) -> exp(log(C)*x)): Wrap with #if GIMPLE.
11454	Don't fold to exp if optimize_pow_to_exp is false.
11455
114562018-03-28  Martin Liska  <mliska@suse.cz>
11457
11458	PR other/84819
11459	* calls.c (initialize_argument_information): Fix trailing space.
11460	* common.opt: Fix typo and provide better explanation for
11461	-fsanitize-coverage option.
11462	* config/i386/i386.opt: Fix typo.
11463
114642018-03-28  Jakub Jelinek  <jakub@redhat.com>
11465	    Martin Liska  <mliska@suse.cz>
11466
11467	PR sanitizer/85081
11468	* gimplify.c (asan_poison_variable): Don't do the check for
11469	gimplify_omp_ctxp here.
11470	(gimplify_decl_expr): Do it here.
11471	(gimplify_target_expr): Likewise.
11472
114732018-03-28  Martin Liska  <mliska@suse.cz>
11474
11475	PR target/84988
11476	* config/i386/i386.c (ix86_function_arg_advance): Do not call
11477	chkp_type_bounds_count if MPX is not enabled.
11478
114792018-03-27  Chung-Ju Wu  <jasonwucj@gmail.com>
11480
11481	* config/nds32/nds32.h (BRANCH_COST): Adjust cost.
11482
114832018-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
11484
11485	PR target/84914
11486	* config/rs6000/rs6000.c (create_complex_muldiv): New helper
11487	function to create the function decl for complex long double
11488	multiply and divide for -mabi=ieeelongdouble.
11489	(init_float128_ieee): Call it.
11490
114912018-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11492
11493	PR target/85044
11494	* config/i386/i386.c (ix86_trampoline_init): Insert ENDBR for
11495	-fcf-protection=branch -mibt.
11496	* config/i386/i386.h (TRAMPOLINE_SIZE): Increased by 4 bytes.
11497
114982018-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11499
11500	PR target/81863
11501	* config/arm/arm.c (arm_valid_symbolic_address): Handle arm_word_relocations
11502
115032018-03-27  Cesar Philippidis  <cesar@codesourcery.com>
11504
11505	PR target/85056
11506	* config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to
11507	extern array declarations.
11508
115092018-03-27  Richard Biener  <rguenther@suse.de>
11510
11511	PR middle-end/84067
11512	* match.pd ((A * C) +- (B * C) -> (A+-B) * C): Guard with
11513	explicit single_use checks.
11514
115152018-03-27  Richard Biener  <rguenther@suse.de>
11516
11517	PR tree-optimization/85082
11518	* tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces):
11519	Valueize the VUSE.
11520
115212018-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11522
11523	* config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES
11524	* common/config/aarch64/aarch64-common.c (aarch64_optimization_table[]):
11525	Turn on fasynchronous-unwind-tables and funwind-tables.
11526
115272018-03-26  Uros Bizjak  <ubizjak@gmail.com>
11528
11529	PR target/85073
11530	* config/i386/i386.md (*bmi_blsr_<mode>_cmp): New insn pattern.
11531	(*bmi_blsr_<mode>_ccz): Ditto.
11532
115332018-03-26  Tom de Vries  <tom@codesourcery.com>
11534
11535	PR tree-optimization/85063
11536	* omp-general.c (offloading_function_p): New function.  Factor out
11537	of ...
11538	* omp-offload.c (pass_omp_target_link::gate): ... here.
11539	* omp-general.h (offloading_function_p): Declare.
11540	* tree-switch-conversion.c (build_one_array): Mark CSWTCH.x variable
11541	with attribute omp declare target for offloading functions.
11542
115432018-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
11544
11545	PR tree-optimization/84005
11546	* tree-data-ref.h (get_base_for_alignment): Declare.
11547	* tree-data-ref.c (get_base_for_alignment_1): New function.
11548	(get_base_for_alignment): Likewise.
11549	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
11550	get_base_for_alignment to find a suitable base object, instead
11551	of always using drb->base_address.
11552
115532018-03-23  Jakub Jelinek  <jakub@redhat.com>
11554
11555	PR inline-asm/85022
11556	* emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have
11557	known size by default.
11558
115592018-03-23  Vladimir Makarov  <vmakarov@redhat.com>
11560
11561	PR inline-asm/85030
11562	* lra-constraints.c (process_alt_operands): Don't match BLKmode
11563	and non BLKmode operands.
11564
115652018-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11566
11567	PR target/85026
11568	* config/arm/arm.md (unaligned_loadhis): Remove first alternative.
11569	Clean up attributes.
11570
115712018-03-23  Richard Biener  <rguenther@suse.de>
11572
11573	PR debug/85020
11574	* dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when
11575	we are going to emit early debug for LTO.
11576
115772018-03-23  Jakub Jelinek  <jakub@redhat.com>
11578
11579	PR inline-asm/85034
11580	* function.c (match_asm_constraints_1): Don't optimize if input
11581	doesn't satisfy general_operand predicate for output's mode.
11582
11583	PR inline-asm/85022
11584	* alias.c (write_dependence_p): Don't require for x_canonicalized
11585	non-VOIDmode if x has VOIDmode.
11586
11587	PR sanitizer/85029
11588	* sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base),
11589	just don't try to optimize it rather than assert it never happens.
11590
115912018-03-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11592
11593	* config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X
11594	macro expansions for definition of ST_INTERNAL_<mode> and
11595	LD_INTERNAL_<mode> builtins.
11596	* config/rs6000/rs6000-protos.h (rs6000_address_for_altivec):
11597	Remove prototype.
11598	* config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this
11599	function.
11600	(altivec_expand_st_builtin): Likewise.
11601	(altivec_expand_builtin): Remove calls to deleted functions.
11602	(rs6000_address_for_altivec): Delete this function.
11603	* config/rs6000/vector.md: Remove expands for
11604	vector_altivec_load_<mode> and vector_altivec_store_<mode>.
11605
116062018-03-22  Sudakshina Das  <sudi.das@arm.com>
11607
11608	PR target/84826
11609	* config/arm/arm.h (machine_function): Add static_chain_stack_bytes.
11610	* config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid
11611	re-computing once computed.
11612	(arm_expand_prologue): Compute machine->static_chain_stack_bytes.
11613	(arm_init_machine_status): Initialize
11614	machine->static_chain_stack_bytes.
11615
116162018-03-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11617
11618	PR target/84760
11619	* doc/extend.texi: Add four new prototypes for vec_ld.
11620	* config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol
11621	definitions for more logical presentation.
11622	* config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add
11623	entries for V1TI variants of __builtin_altivec_ld builtin.
11624	* config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and
11625	handling of V1TI variant of LVX icode pattern.
11626	(altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI.
11627	(rs6000_gimple_fold_builtin): Likewise.
11628	(altivec_init_builtins): Add code to define
11629	__builtin_altivec_lvx_v1ti function.
11630
116312018-03-22  Jakub Jelinek  <jakub@redhat.com>
11632
11633	PR inline-asm/84941
11634	* function.c (match_asm_constraints_1): Don't do the optimization
11635	if input isn't a REG, SUBREG, MEM or constant.
11636
116372018-03-22  Tom de Vries  <tom@codesourcery.com>
11638
11639	PR tree-optimization/84956
11640	* tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with
11641	bb_has_abnormal_pred.
11642
116432018-03-22  Jakub Jelinek  <jakub@redhat.com>
11644
11645	PR sanitizer/85018
11646	* dwarf2asm.c (dw2_output_indirect_constant_1): Set
11647	DECL_INITIAL (decl) to decl at the end.
11648	* varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change,
11649	adjust the comment.
11650
116512018-03-21  Joseph Myers  <joseph@codesourcery.com>
11652
11653	* doc/extend.texi (__builtin_tgmath): Document when complex
11654	integer types are treated as _Complex _Float64.
11655
116562018-03-21  Tom de Vries  <tom@codesourcery.com>
11657
11658	* doc/extend.texi (__builtin_extend_pointer): Remove pasto.
11659
116602018-03-21  Jakub Jelinek  <jakub@redhat.com>
11661
11662	PR tree-optimization/84960
11663	* tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb
11664	if it is ENTRY block, move them into single succ of ENTRY in that case.
11665
116662018-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
11667
11668	PR tree-optimization/84811
11669	* poly-int.h (poly_span_traits): Remove the T3 parameter and
11670	promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT.
11671	(maybe_in_range_p, known_in_range_p, ranges_known_overlap_p):
11672	(known_subrange_p): Update accordingly.  Cast each value involved
11673	in the size comparison, rather than casting the result of the
11674	subtraction.
11675
116762018-03-21  Jakub Jelinek  <jakub@redhat.com>
11677
11678	PR tree-optimization/84982
11679	* gimple-ssa-store-merging.c (invert_op): Handle boolean inversion
11680	by flipping the least significant bit rather than all bits from
11681	bitpos to bitpos + bitsize - 1.
11682
116832018-03-21  Nathan Sidwell  <nathan@acm.org>
11684
11685	* doc/extend.texi (Deprecated Features): Remove mention of
11686	long-deleted deprecations.
11687
116882018-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11689
11690	PR jit/84288
11691	* configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set.
11692	* configure: Regenerate.
11693
116942018-03-21  Tom de Vries  <tom@codesourcery.com>
11695
11696	PR tree-optimization/83126
11697	* tree-parloops.c (num_phis): New function.
11698	(gen_parallel_loop): Detect and handle canonicalize_loop_ivs failure.
11699
117002018-03-21  Nathan Sidwell  <nathan@acm.org>
11701
11702	* doc/extend.texi (Deprecated Features): Update deprecated flags,
11703	mention anon-struct/union members and trailing attributes.
11704
117052018-03-21  Bin Cheng  <bin.cheng@arm.com>
11706
11707	PR tree-optimization/84969
11708	* tree-loop-distribution.c (fuse_memset_builtins): Don't reorder
11709	builtin memset partitions if they set different rhs values.
11710
117112018-03-21  Jakub Jelinek  <jakub@redhat.com>
11712
11713	PR rtl-optimization/84989
11714	* simplify-rtx.c (simplify_unary_operation_1): Don't try to simplify
11715	VEC_DUPLICATE with scalar result mode.
11716
117172018-03-21  Martin Liska  <mliska@suse.cz>
11718
11719	PR ipa/84963
11720	* ipa-icf.c (sem_item_optimizer::fixup_points_to_sets): Remove
11721	not intended return statement.
11722
117232018-03-21  Martin Liska  <mliska@suse.cz>
11724
11725	PR target/84988
11726	* tree-chkp.c (CHKP_ARRAY_MAX_CHECK_STEPS): Define a new macro.
11727	(chkp_find_bound_slots_1): Limit number of iterations.
11728
117292018-03-20  David H. Gutteridge  <dhgutteridge@sympatico.ca>
11730
11731	PR target/84838
11732	* Minor grammar fixes for x86 options.
11733
117342018-03-20  Jakub Jelinek  <jakub@redhat.com>
11735
11736	PR debug/84875
11737	* dce.c (delete_unmarked_insns): Don't remove frame related noop moves
11738	holding REG_CFA_RESTORE notes, instead turn them into a USE.
11739
117402018-03-20  Peter Bergner  <bergner@vnet.ibm.com>
11741
11742	PR target/83789
11743	* config/rs6000/altivec.md (altivec_lvx_<mode>_2op): Delete define_insn.
11744	(altivec_lvx_<mode>_1op): Likewise.
11745	(altivec_stvx_<mode>_2op): Likewise.
11746	(altivec_stvx_<mode>_1op): Likewise.
11747	(altivec_lvx_<VM2:mode>): New define_expand.
11748	(altivec_stvx_<VM2:mode>): Likewise.
11749	(altivec_lvx_<VM2:mode>_2op_<P:mptrsize>): New define_insn.
11750	(altivec_lvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
11751	(altivec_stvx_<VM2:mode>_2op_<P:mptrsize>): Likewise.
11752	(altivec_stvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
11753	* config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Use new expanders.
11754	(rs6000_gen_lvx): Likewise.
11755	* config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise.
11756	(altivec_expand_stv_builtin): Likewise.
11757	(altivec_expand_builtin): Likewise.
11758	* config/rs6000/vector.md: Likewise.
11759
117602018-03-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11761
11762	PR target/82518
11763	* config/arm/arm.c (arm_array_mode_supported_p): Return false for
11764	BYTES_BIG_ENDIAN.
11765
117662018-03-20  Richard Biener  <rguenther@suse.de>
11767
11768	PR target/84986
11769	* config/i386/i386.c (ix86_add_stmt_cost): Only cost
11770	sign-conversions as zero, fall back to standard scalar_stmt
11771	cost for the rest.
11772
117732018-03-20  Martin Liska  <mliska@suse.cz>
11774
11775	PR ipa/84825
11776	* predict.c (rebuild_frequencies): Handle case when we have
11777	PROFILE_ABSENT, but flag_guess_branch_prob is false.
11778
117792018-03-20  Jakub Jelinek  <jakub@redhat.com>
11780
11781	PR target/84990
11782	* dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off
11783	flag_section_anchors.
11784	* varasm.c (use_blocks_for_decl_p): Remove hack for
11785	dw2_force_const_mem.
11786
11787	PR target/84845
11788	* config/aarch64/aarch64.md (*aarch64_reg_<mode>3_neg_mask2): Rename
11789	to ...
11790	(*aarch64_<optab>_reg_<mode>3_neg_mask2): ... this.  If pseudos can't
11791	be created, use lowpart_subreg of operands[0] rather than operands[0]
11792	itself.
11793	(*aarch64_reg_<mode>3_minus_mask): Rename to ...
11794	(*aarch64_ashl_reg_<mode>3_minus_mask): ... this.
11795	(*aarch64_<optab>_reg_di3_mask2): Use const_int_operand predicate
11796	and n constraint instead of aarch64_shift_imm_di and Usd.
11797	(*aarch64_reg_<optab>_minus<mode>3): Rename to ...
11798	(*aarch64_<optab>_reg_minus<mode>3): ... this.
11799
118002018-03-20  Sudakshina Das  <sudi.das@arm.com>
11801
11802	PR target/82989
11803	* config/arm/neon.md (ashldi3_neon): Update ?s for constraints
11804	to favor GPR over NEON registers.
11805	(<shift>di3_neon): Likewise.
11806
118072018-03-20  Tom de Vries  <tom@codesourcery.com>
11808
11809	PR target/84952
11810	* config/nvptx/nvptx.c (nvptx_single): Don't neuter bar.sync.
11811	(nvptx_process_pars): Emit bar.sync asap and alap.
11812
118132018-03-20  Tom de Vries  <tom@codesourcery.com>
11814
11815	PR target/84954
11816	* config/nvptx/nvptx.c (prevent_branch_around_nothing): Also update
11817	seen_label if seen_label is already set.
11818
118192018-03-20  Jakub Jelinek  <jakub@redhat.com>
11820
11821	PR target/84945
11822	* config/i386/i386.c (fold_builtin_cpu): For features above 31
11823	use __cpu_features2 variable instead of __cpu_model.__cpu_features[0].
11824	Use 1U instead of 1.  Formatting fixes.
11825
11826	PR c/84953
11827	* builtins.c (fold_builtin_strpbrk): For strpbrk(x, "") use type
11828	instead of TREE_TYPE (s1) for the return value.
11829
118302018-03-19  Jakub Jelinek  <jakub@redhat.com>
11831
11832	PR tree-optimization/84946
11833	* gimple-ssa-store-merging.c (mem_valid_for_store_merging): Compute
11834	bitsize + bitsize in poly_uint64 rather than poly_int64.
11835
11836	PR sanitizer/78651
11837	* dwarf2asm.c: Include fold-const.c.
11838	(dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR
11839	of decl rather than decl itself.
11840
11841	PR rtl-optimization/84643
11842	* memmodel.h (enum memmodel): Add MEMMODEL_MAX enumerator.
11843
118442018-03-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
11845
11846	PR sanitizer/78651
11847	* dwarf2asm.c (dw2_output_indirect_constant_1): Disable ASan before
11848	calling assemble_variable.
11849
118502018-03-19  Sudakshina Das  <sudi.das@arm.com>
11851
11852	PR target/81647
11853	* config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Modify
11854	instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED.
11855
118562018-03-19  Jim Wilson  <jimw@sifive.com>
11857
11858	PR bootstrap/84856
11859	* config/riscv/riscv.c (riscv_function_arg_boundary): Use
11860	PREFERRED_STACK_BOUNDARY instead of STACK_BOUNDARY.
11861	(riscv_first_stack_step): Likewise.
11862	(riscv_option_override): Use STACK_BOUNDARY instead of
11863	MIN_STACK_BOUNDARY.
11864	* config/riscv/riscv.h (STACK_BOUNDARY): Renamed from
11865	MIN_STACK_BOUNDARY.
11866	(BIGGEST_ALIGNMENT): Set to 128.
11867	(PREFERRED_STACK_BOUNDARY): Renamed from STACK_BOUNDARY.
11868	(RISCV_STACK_ALIGN): Use PREFERRED_STACK_BOUNDARY instead of
11869	STACK_BOUNDARY.
11870
118712018-03-19  Richard Biener  <rguenther@suse.de>
11872
11873	PR tree-optimization/84933
11874	* tree-vrp.c (set_and_canonicalize_value_range): Treat out-of-bound
11875	values as -INF/INF when canonicalizing an ANTI_RANGE to a RANGE.
11876
118772018-03-19  Richard Biener  <rguenther@suse.de>
11878
11879	PR tree-optimization/84859
11880	* tree-ssa-phiopt.c (single_trailing_store_in_bb): New function.
11881	(cond_if_else_store_replacement): Perform sinking operation on
11882	single-store BBs regardless of MAX_STORES_TO_SINK setting.
11883	Generalize what a BB with a single eligible store is.
11884
118852018-03-19  Richard Biener  <rguenther@suse.de>
11886
11887	PR tree-optimization/84929
11888	* tree-data-ref.c (analyze_siv_subscript_cst_affine): Guard
11889	chrec_is_positive against non-chrec arg.
11890
118912018-03-19  Tamar Christina  <tamar.christina@arm.com>
11892
11893	PR target/84711
11894	* config/arm/arm.c (arm_can_change_mode_class): revert r258554.
11895
118962018-03-18  Martin Liska  <mliska@suse.cz>
11897
11898	PR rtl-optimization/84635
11899	* regrename.c (build_def_use): Use matches_mode only when
11900	matches >= 0.
11901
119022018-03-18  Richard Sandiford  <richard.sandiford@linaro.org>
11903
11904	PR tree-optimization/84913
11905	* tree-vect-loop.c (vectorizable_reduction): Don't try to
11906	vectorize chains of COND_EXPRs.
11907
119082018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
11909
11910	* config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value.
11911
119122018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
11913
11914	* config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
11915
119162018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
11917
11918	* config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
11919
119202018-03-17  Chung-Ju Wu  <jasonwucj@gmail.com>
11921	    Kito Cheng  <kito.cheng@gmail.com>
11922
11923	* config/nds32/nds32-protos.h (nds32_adjust_reg_alloc_order): Declare.
11924	* config/nds32/nds32.c (nds32_reg_alloc_order_for_speed): New array.
11925	(nds32_adjust_reg_alloc_order): New function.
11926	* config/nds32/nds32.h (ADJUST_REG_ALLOC_ORDER): Define.
11927
119282018-03-17  Kito Cheng  <kito.cheng@gmail.com>
11929
11930	* config/nds32/nds32.c (nds32_asm_output_mi_thunk,
11931	nds32_print_operand, nds32_print_operand_address): Use
11932	HOST_WIDE_INT_PRINT_DEC instead.
11933
119342018-03-17  Chung-Ju Wu  <jasonwucj@gmail.com>
11935
11936	* config/nds32/nds32.c (nds32_register_priority): Modify cost.
11937
119382018-03-17  Jakub Jelinek  <jakub@redhat.com>
11939
11940	PR target/84902
11941	* config/i386/i386.c (initial_ix86_tune_features,
11942	initial_ix86_arch_features): Use unsigned HOST_WIDE_INT rather than
11943	unsigned long long.
11944	(set_ix86_tune_features): Change ix86_tune_mask from unsigned int
11945	to unsigned HOST_WIDE_INT, initialize to HOST_WIDE_INT_1U << ix86_tune
11946	rather than 1u << ix86_tune.  Formatting fix.
11947	(ix86_option_override_internal): Change ix86_arch_mask from
11948	unsigned int to unsigned HOST_WIDE_INT, initialize to
11949	HOST_WIDE_INT_1U << ix86_arch rather than 1u << ix86_arch.
11950	(ix86_function_specific_restore): Likewise.
11951
119522018-03-16  Jakub Jelinek  <jakub@redhat.com>
11953
11954	PR target/84899
11955	* postreload.c (reload_combine_recognize_pattern): Perform
11956	INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and
11957	truncate_int_for_mode the result for the destination's mode.
11958
11959	PR c/84909
11960	* hsa-gen.c (mem_type_for_type): Fix comment typo.
11961	* tree-vect-loop-manip.c (vect_create_cond_for_niters_checks):
11962	Likewise.
11963	* gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
11964	Likewise.
11965
119662018-03-16  Vladimir Makarov  <vmakarov@redhat.com>
11967
11968	PR target/84876
11969	* lra-assigns.c (lra_split_hard_reg_for): Don't use
11970	regno_allocno_class_array and sorted_pseudos.
11971	* lra-constraints.c (spill_hard_reg_in_range): Ignore hard regs in
11972	insns where regno is used.
11973
119742018-03-16  Martin Liska  <mliska@suse.cz>
11975
11976	PR ipa/84833
11977	* multiple_target.c (create_dispatcher_calls): Redirect
11978	reference in the symbol table.
11979
119802018-03-16  Martin Liska  <mliska@suse.cz>
11981
11982	PR ipa/84722
11983	* multiple_target.c (create_dispatcher_calls): Redirect also
11984	an alias.
11985
119862018-03-16  Jakub Jelinek  <jakub@redhat.com>
11987
11988	PR c++/79937
11989	PR c++/82410
11990	* tree.h (TARGET_EXPR_NO_ELIDE): Define.
11991	* gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with
11992	TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR.
11993
119942018-03-16  Julia Koval  <julia.koval@intel.com>
11995
11996	* doc/invoke.texi (Skylake Server): Add CLWB.
11997	Cannonlake): Remove CLWB.
11998
119992018-03-16  Jakub Jelinek  <jakub@redhat.com>
12000
12001	PR tree-optimization/84841
12002	* tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from
12003	1 << 3.
12004	(FLOAT_ONE_CONST_TYPE): Define.
12005	(constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0.
12006	(sort_by_operand_rank): Put entries with higher constant_type last
12007	rather than first to match comments.
12008
120092018-03-15  Sandra Loosemore  <sandra@codesourcery.com>
12010
12011	* config/nios2/nios2.md (movsi_internal): Fix thinko in
12012	split predicate.
12013
120142018-03-15  Jakub Jelinek  <jakub@redhat.com>
12015
12016	PR c++/79085
12017	* calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment
12018	check and use address of target always.
12019
120202018-03-15  H.J. Lu  <hongjiu.lu@intel.com>
12021
12022	PR target/84574
12023	* config/i386/i386.c (indirect_thunk_needed): Update comments.
12024	(indirect_thunk_bnd_needed): Likewise.
12025	(indirect_thunks_used): Likewise.
12026	(indirect_thunks_bnd_used): Likewise.
12027	(indirect_return_needed): New.
12028	(indirect_return_bnd_needed): Likewise.
12029	(output_indirect_thunk_function): Add a bool argument for
12030	function return.
12031	(output_indirect_thunk_function): Don't generate alias for
12032	function return thunk.
12033	(ix86_code_end): Call output_indirect_thunk_function to generate
12034	function return thunks.
12035	(ix86_output_function_return): Set indirect_return_bnd_needed
12036	and indirect_return_needed instead of indirect_thunk_bnd_needed
12037	and indirect_thunk_needed.
12038
120392018-03-15  Olga Makhotina  <olga.makhotina@intel.com>
12040
12041	* config/i386/sgxintrin.h (_enclv_u32): New intrinsic.
12042	(__enclv_bc, __enclv_cd, __enclv_generic): New definitions.
12043	(ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves.
12044
120452018-03-15  David Malcolm  <dmalcolm@redhat.com>
12046	    Paul Hua <paul.hua.gm@gmail.com>
12047
12048	PR c/84852
12049	* gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp.
12050
120512018-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
12052
12053	* config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the
12054	TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode
12055	resp. SFmode cases.
12056
120572018-03-15  Tamar Christina  <tamar.christina@arm.com>
12058
12059	PR target/84711
12060	* config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE
12061	instead of GET_MODE_SIZE when comparing Units.
12062
120632018-03-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
12064
12065	PR target/68256
12066	* varasm.c (hash_section): Return an unchangeble hash value
12067	* config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p):
12068	Return !aarch64_can_use_per_function_literal_pools_p ().
12069
120702018-03-15  Jakub Jelinek  <jakub@redhat.com>
12071
12072	PR target/84860
12073	* optabs.c (emit_conditional_move): Pass address of cmode's copy
12074	rather than address of cmode as last argument to prepare_cmp_insn.
12075
120762018-03-15  Julia Koval  <julia.koval@intel.com>
12077
12078	* config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ,
12079	F_AVX512VNNI, F_AVX512BITALG): New.
12080
120812018-03-14  John David Anglin  <danglin@gcc.gnu.org>
12082
12083	PR target/83451
12084	* config/pa/pa.c (pa_emit_move_sequence):  Always emit secondary reload
12085	insn for floating-point loads and stores.
12086
120872018-03-14  Carl Love  <cel@us.ibm.com>
12088
12089	* config/rs6000/rs6000-c.c: Add macro definitions for
12090	ALTIVEC_BUILTIN_VEC_PERMXOR.
12091	* config/rs6000/rs6000.h: Add #define for vec_permxor builtin.
12092	* config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR.
12093	* config/rs6000/altivec.md (altivec_vpermxor): New define expand.
12094	* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case
12095	UNSPEC_VPERMXOR.
12096	* config/doc/extend.texi: Add prototypes for vec_permxor.
12097
120982018-03-14  David Malcolm  <dmalcolm@redhat.com>
12099
12100	PR c/84852
12101	* diagnostic-show-locus.c (class layout_point): Convert m_line
12102	from int to linenum_type.
12103	(line_span::comparator): Use linenum "compare" function when
12104	comparing line numbers.
12105	(test_line_span): New function.
12106	(layout_range::contains_point): Convert param "row" from int to
12107	linenum_type.
12108	(layout_range::intersects_line_p): Likewise.
12109	(layout::will_show_line_p): Likewise.
12110	(layout::print_source_line): Likewise.
12111	(layout::should_print_annotation_line_p): Likewise.
12112	(layout::print_annotation_line): Likewise.
12113	(layout::print_leading_fixits): Likewise.
12114	(layout::annotation_line_showed_range_p): Likewise.
12115	(struct line_corrections): Likewise for field m_row.
12116	(line_corrections::line_corrections): Likewise for param "row".
12117	(layout::print_trailing_fixits): Likewise.
12118	(layout::get_state_at_point): Likewise.
12119	(layout::get_x_bound_for_row): Likewise.
12120	(layout::print_line): Likewise.
12121	(diagnostic_show_locus): Likewise for locals "last_line" and
12122	"row".
12123	(selftest::diagnostic_show_locus_c_tests): Call test_line_span.
12124	* input.c (selftest::test_linenum_comparisons): New function.
12125	(selftest::input_c_tests): Call it.
12126	* selftest.c (selftest::test_assertions): Test ASSERT_GT,
12127	ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT.
12128	* selftest.h (ASSERT_GT): New macro.
12129	(ASSERT_GT_AT): New macro.
12130	(ASSERT_LT): New macro.
12131	(ASSERT_LT_AT): New macro.
12132
121332018-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
12134
12135	PR rtl-optimization/84780
12136	* combine.c (distribute_links): Don't make a link based on pc_rtx.
12137
121382018-03-14  Martin Liska  <mliska@suse.cz>
12139
12140	* tree.c (record_node_allocation_statistics): Use
12141	get_stats_node_kind.
12142	(get_stats_node_kind): New function extracted from
12143	record_node_allocation_statistics.
12144	(free_node): Use get_stats_node_kind.
12145
121462018-03-14  Richard Biener  <rguenther@suse.de>
12147
12148	* tree-ssa-pre.c (compute_antic_aux): Remove code that asserts
12149	that the value-set of ANTIC_IN doesn't grow.
12150
12151	Revert
12152	* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
12153	member.
12154	(BB_VISITED_WITH_VISITED_SUCCS): New define.
12155	(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
12156
121572018-03-14  Julia Koval  <julia.koval@intel.com>
12158
12159	* config.gcc (icelake-client, icelake-server): New.
12160	(icelake): Remove.
12161	* config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit.
12162	(initial_ix86_arch_features): Ditto.
12163	(PTA_SKYLAKE): Add SGX.
12164	(PTA_ICELAKE): Remove.
12165	(PTA_ICELAKE_CLIENT): New.
12166	(PTA_ICELAKE_SERVER): New.
12167	(ix86_option_override_internal): Split up icelake on icelake client and
12168	icelake server.
12169	(get_builtin_code_for_version): Ditto.
12170	(fold_builtin_cpu): Ditto.
12171	* config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto.
12172	* config/i386/i386-c.c (ix86_target_macros_internal): Ditto
12173	* config/i386/i386.h (processor_type): Ditto.
12174	* doc/invoke.texi: Ditto.
12175
121762018-03-14  Jakub Jelinek  <jakub@redhat.com>
12177
12178	PR sanitizer/83392
12179	* sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also
12180	INTEGER_CST offset, add it together with bitpos / 8 and
12181	sign extend based on POINTER_SIZE.
12182
12183	PR target/84844
12184	Revert
12185	2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
12186
12187	PR target/78090
12188	* config/i386/constraints.md (Yc): New register constraint.
12189	* config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
12190	Use Yc constraint for alternative 2 of operand 0.  Remove
12191	preferred_for_speed attribute.
12192
121932018-03-14  Richard Biener  <rguenther@suse.de>
12194
12195	PR tree-optimization/84830
12196	* tree-ssa-pre.c (compute_antic_aux): Intersect the new ANTIC_IN
12197	with the old one to avoid oscillations.
12198
121992018-03-13  Vladimir Makarov  <vmakarov@redhat.com>
12200
12201	PR target/83712
12202	* lra-assigns.c (find_all_spills_for): Ignore uninteresting
12203	pseudos.
12204	(assign_by_spills): Return a flag of reload assignment failure.
12205	Do not process the reload assignment failures.  Do not spill other
12206	reload pseudos if they has the same reg class.  Update n if
12207	necessary.
12208	(lra_assign): Add a return arg.  Set up from the result of
12209	assign_by_spills call.
12210	(find_reload_regno_insns, lra_split_hard_reg_for): New functions.
12211	* lra-constraints.c (split_reg): Add a new arg.  Use it instead of
12212	usage_insns if it is not NULL.
12213	(spill_hard_reg_in_range): New function.
12214	(split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
12215	* lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
12216	function prototypes.
12217	(lra_assign): Change prototype.
12218	* lra.c (lra): Add code to deal with fails by splitting hard reg
12219	live ranges.
12220
122212018-03-01  Palmer Dabbelt  <palmer@sifive.com>
12222
12223	* config/riscv/riscv.opt (mrelax): New option.
12224	* config/riscv/riscv.c (riscv_file_start): Emit ".option
12225	"norelax" when riscv_mrelax is disabled.
12226	* doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax".
12227
122282018-03-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
12229
12230	PR target/84743
12231	* config/rs6000/rs6000.c (rs6000_reassociation_width): Disable parallel
12232	reassociation for int modes.
12233
122342018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
12235
12236	* tree-vect-loop-manip.c (vect_maybe_permute_loop_masks):
12237	Reverse the choice between VEC_UNPACK_LO_EXPR and VEC_UNPACK_HI_EXPR
12238	for big-endian.
12239	* config/aarch64/iterators.md (hi_lanes_optab): New int attribute.
12240	* config/aarch64/aarch64-sve.md
12241	(*aarch64_sve_<perm_insn><perm_hilo><mode>): Rename to...
12242	(aarch64_sve_<perm_insn><perm_hilo><mode>): ...this.
12243	(*extend<mode><Vwide>2): Rename to...
12244	(aarch64_sve_extend<mode><Vwide>2): ...this.
12245	(vec_unpack<su>_<perm_hilo>_<mode>): Turn into a define_expand,
12246	renaming the old pattern to...
12247	(aarch64_sve_punpk<perm_hilo>_<mode>): ...this.  Only define
12248	unsigned packs.
12249	(vec_unpack<su>_<perm_hilo>_<SVE_BHSI:mode>): Turn into a
12250	define_expand, renaming the old pattern to...
12251	(aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): ...this.
12252	(*vec_unpacku_<perm_hilo>_<mode>_no_convert): Delete.
12253	(vec_unpacks_<perm_hilo>_<mode>): Take BYTES_BIG_ENDIAN into
12254	account when deciding which SVE instruction the optab should use.
12255	(vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Likewise.
12256
122572018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
12258
12259	* config/aarch64/aarch64.md (V4_REGNUM, V8_REGNUM, V12_REGNUM)
12260	(V20_REGNUM, V24_REGNUM, V28_REGNUM, P1_REGNUM, P2_REGNUM, P3_REGNUM)
12261	(P4_REGNUM, P5_REGNUM, P6_REGNUM, P8_REGNUM, P9_REGNUM, P10_REGNUM)
12262	(P11_REGNUM, P12_REGNUM, P13_REGNUM, P14_REGNUM): New define_constants.
12263	(tlsdesc_small_<mode>): Turn a define_expand and use
12264	tlsdesc_small_sve_<mode> for SVE.  Rename original define_insn to...
12265	(tlsdesc_small_advsimd_<mode>): ...this.
12266	(tlsdesc_small_sve_<mode>): New pattern.
12267
122682018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
12269
12270	* config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART)
12271	(UNSPEC_UMUL_HIGHPART): New constants.
12272	(MUL_HIGHPART): New int iteraor.
12273	(su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART.
12274	* config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart): New
12275	define_expand.
12276	(*<su>mul<mode>3_highpart): New define_insn.
12277
122782018-03-13  Eric Botcazou  <ebotcazou@adacore.com>
12279
12280	PR lto/84805
12281	* ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of
12282	incomplete types.
12283
122842018-03-13  Martin Liska  <mliska@suse.cz>
12285
12286	PR ipa/84658.
12287	* (sem_item_optimizer::sem_item_optimizer): Initialize new
12288	vector.
12289	(sem_item_optimizer::~sem_item_optimizer): Release it.
12290	(sem_item_optimizer::merge_classes): Register variable aliases.
12291	(sem_item_optimizer::fixup_pt_set): New function.
12292	(sem_item_optimizer::fixup_points_to_sets): Likewise.
12293	* ipa-icf.h: Declare new variables and functions.
12294
122952018-03-13  Jakub Jelinek  <jakub@redhat.com>
12296
12297	PR middle-end/84834
12298	* match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of
12299	integer_pow2p@2 and test integer_pow2p in condition.
12300	(A < 0 ? C : 0): Similarly for @1.
12301
12302	PR middle-end/84831
12303	* stmt.c (parse_output_constraint): If the CONSTRAINT_LEN (*p, p)
12304	characters starting at p contain '\0' character, don't look beyond
12305	that.
12306
12307	PR target/84827
12308	* config/i386/i386.md (round<mode>2): For 387 fancy math, disable
12309	pattern if -ftrapping-math -fno-fp-int-builtin-inexact.
12310
12311	PR target/84828
12312	* reg-stack.c (change_stack): Change update_end var from int to
12313	rtx_insn *, if non-NULL don't update just BB_END (current_block), but
12314	also call set_block_for_insn on the newly added insns and rescan.
12315
12316	PR target/84786
12317	* config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v
12318	on the last operand.
12319
12320	PR c++/84704
12321	* tree.c (stabilize_reference_1): Return save_expr (e) for
12322	STATEMENT_LIST even if it doesn't have side-effects.
12323
123242018-03-12  Jonathan Wakely  <jwakely@redhat.com>
12325
12326	* doc/invoke.texi (-mclflushopt): Fix spelling of option.
12327
123282018-03-12  Renlin Li  <renlin.li@arm.com>
12329
12330	* config/aarch64/aarch64.md (movhf_aarch64): Fix mode argument to
12331	aarch64_output_scalar_simd_mov_immediate.
12332
123332018-03-12  Martin Sebor  <msebor@redhat.com>
12334
12335	PR tree-optimization/83456
12336	* gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning
12337	for perfectly overlapping calls to memcpy.
12338	(gimple_fold_builtin_memory_chk): Same.
12339	(gimple_fold_builtin_strcpy): Handle no-warning.
12340	(gimple_fold_builtin_stxcpy_chk): Same.
12341	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning.
12342
123432018-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
12344
12345	* config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add bool "named"
12346	parameter.  Use it for SFmode.
12347	(rs6000_function_arg_advance_1): Adjust.
12348	(rs6000_function_arg): Adjust.
12349	(rs6000_gimplify_va_arg): Pass false for that new parameter.
12350
123512018-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
12352
12353	PR rtl-optimization/84169
12354	PR rtl-optimization/84780
12355	* combine.c (can_combine_p): Check for a 2-insn combination whether
12356	the destination register is used between the two insns, too.
12357
123582018-03-12  Richard Biener  <rguenther@suse.de>
12359
12360	PR tree-optimization/84803
12361	* tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything
12362	for refs DR analysis didn't process.
12363
123642018-03-12  Richard Biener  <rguenther@suse.de>
12365
12366	PR tree-optimization/84777
12367	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): For
12368	force-vectorize loops ignore whether we are optimizing for size.
12369
123702018-03-12  Chung-Ju Wu  <jasonwucj@gmail.com>
12371
12372	* config/nds32/nds32.c (nds32_md_asm_adjust): New function.
12373	(TARGET_MD_ASM_ADJUST): Define.
12374
123752018-03-12  Monk Chiang  <sh.chiang04@gmail.com>
12376	    Kito Cheng  <kito.cheng@gmail.com>
12377	    Chung-Ju Wu  <jasonwucj@gmail.com>
12378
12379	* config/nds32/nds32.c (nds32_compute_stack_frame,
12380	nds32_emit_stack_push_multiple, nds32_emit_stack_pop_multiple,
12381	nds32_emit_stack_v3push, nds32_emit_stack_v3pop,
12382	nds32_emit_adjust_frame, nds32_expand_prologue, nds32_expand_epilogue,
12383	nds32_expand_prologue_v3push, nds32_expand_epilogue_v3pop): Refine.
12384	* config/nds32/nds32.h (NDS32_FIRST_CALLEE_SAVE_GPR_REGNUM,
12385	NDS32_LAST_CALLEE_SAVE_GPR_REGNUM, NDS32_V3PUSH_AVAILABLE_P): New.
12386	* config/nds32/nds32.md (prologue, epilogue): Use macro
12387	NDS32_V3PUSH_AVAILABLE_P to do checking.
12388
123892018-03-11  Jakub Jelinek  <jakub@redhat.com>
12390
12391	PR debug/58150
12392	* dwarf2out.c (gen_enumeration_type_die): Don't guard adding
12393	DW_AT_declaration for ENUM_IS_OPAQUE on -gdwarf-4 or -gno-strict-dwarf,
12394	but on TYPE_SIZE.  Don't do anything for ENUM_IS_OPAQUE if not creating
12395	a new die.  Don't set TREE_ASM_WRITTEN if ENUM_IS_OPAQUE.  Guard
12396	addition of most attributes on !orig_type_die or the attribute not
12397	being present already.  Assert TYPE_VALUES is NULL for ENUM_IS_OPAQUE.
12398
123992018-03-11  Kito Cheng  <kito.cheng@gmail.com>
12400	    Chung-Ju Wu  <jasonwucj@gmail.com>
12401
12402	* config/nds32/nds32.c (nds32_cpu_cpp_builtins): Modify to define
12403	__NDS32_VH__ macro.
12404	* config/nds32/nds32.opt (mvh): New option.
12405
124062018-03-11  Kito Cheng  <kito.cheng@gmail.com>
12407	    Chung-Ju Wu  <jasonwucj@gmail.com>
12408
12409	* config/nds32/nds32-protos.h (nds32_cpu_cpp_builtins): Declare
12410	function.
12411	* config/nds32/nds32.c (nds32_cpu_cpp_builtins): New function.
12412	* config/nds32/nds32.h (TARGET_CPU_CPP_BUILTINS): Modify its
12413	definition.
12414
124152018-03-11  Kito Cheng  <kito.cheng@gmail.com>
12416	    Chung-Ju Wu  <jasonwucj@gmail.com>
12417
12418	* config/nds32/nds32-memory-manipulation.c (nds32_expand_strlen): New
12419	function.
12420	* config/nds32/nds32-multiple.md (strlensi): New pattern.
12421	* config/nds32/nds32-protos.h (nds32_expand_strlen): Declare function.
12422
124232018-03-11  Monk Chiang  <sh.chiang04@gmail.com>
12424	    Kito Cheng  <kito.cheng@gmail.com>
12425	    Chung-Ju Wu  <jasonwucj@gmail.com>
12426
12427	* config/nds32/constants.md (unspec_element): Add UNSPEC_FFB,
12428	UNSPEC_FFMISM and UNSPEC_FLMISM.
12429	* config/nds32/nds32-intrinsic.c (bdesc_2arg): Add builtin description
12430	for ffb, ffmism and flmism.
12431	* config/nds32/nds32-intrinsic.md (unspec_ffb): Define new pattern.
12432	(unspec_ffmism): Ditto.
12433	(unspec_flmism): Ditto.
12434	(nds32_expand_builtin_impl): Check if string extension is available.
12435	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FFB,
12436	NDS32_BUILTIN_FFMISM and NDS32_BUILTIN_FLMISM.
12437
124382018-03-10  Vladimir Makarov  <vmakarov@redhat.com>
12439
12440	Reverting patch:
12441	2018-03-09  Vladimir Makarov  <vmakarov@redhat.com>
12442
12443	PR target/83712
12444	* lra-assigns.c (assign_by_spills): Return a flag of reload
12445	assignment failure.  Do not process the reload assignment
12446	failures.  Do not spill other reload pseudos if they has the same
12447	reg class.
12448	(lra_assign): Add a return arg.  Set up from the result of
12449	assign_by_spills call.
12450	(find_reload_regno_insns, lra_split_hard_reg_for): New functions.
12451	* lra-constraints.c (split_reg): Add a new arg.  Use it instead of
12452	usage_insns if it is not NULL.
12453	(spill_hard_reg_in_range): New function.
12454	(split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
12455	* lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
12456	function prototypes.
12457	(lra_assign): Change prototype.
12458	* lra.c (lra): Add code to deal with fails by splitting hard reg
12459	live ranges.
12460
124612018-03-10  H.J. Lu  <hongjiu.lu@intel.com>
12462
12463	PR target/84807
12464	* config/i386/i386.opt: Replace Enforcment with Enforcement.
12465
124662018-03-10  Alexandre Oliva  <aoliva@redhat.com>
12467
12468	PR debug/84620
12469	* dwarf2out.h (dw_val_class): Add dw_val_class_symview.
12470	(dw_val_node): Add val_symbolic_view.
12471	* dwarf2out.c (dw_line_info_table): Add symviews_since_reset.
12472	(symview_upper_bound): New.
12473	(new_line_info_table): Initialize symviews_since_reset.
12474	(dwarf2out_source_line): Count symviews_since_reset and set
12475	symview_upper_bound.
12476	(dw_val_equal_p): Handle symview.
12477	(add_AT_symview): New.
12478	(print_dw_val): Handle symview.
12479	(attr_checksum, attr_checksum_ordered): Likewise.
12480	(same_dw_val_p, size_of_die): Likewise.
12481	(value_format, output_die): Likewise.
12482	(add_high_low_attributes): Use add_AT_symview for entry_view.
12483	(dwarf2out_finish): Reset symview_upper_bound, clear
12484	zero_view_p.
12485
124862018-03-09  Peter Bergner  <bergner@vnet.ibm.com>
12487
12488	PR target/83969
12489	* config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New prototype.
12490	Add strict argument and use it.
12491	(rs6000_split_multireg_move): Update for new strict argument.
12492	(mem_operand_gpr): Disallow all non-offsettable addresses.
12493	* config/rs6000/rs6000.md (*movdi_internal64): Use YZ constraint.
12494
124952018-03-09  Jakub Jelinek  <jakub@redhat.com>
12496
12497	PR target/84772
12498	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp
12499	temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY.
12500	* config/powerpcspe/powerpcspe.c (rs6000_gimplify_va_arg): Likewise.
12501
12502	PR c++/84767
12503	* tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped
12504	decl, use remap_type if we want to use the type.
12505
125062018-03-09  Martin Sebor  <msebor@redhat.com>
12507
12508	PR tree-optimization/84526
12509	* gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
12510	Remove dead code.
12511	(builtin_access::generic_overlap): Be prepared to handle non-array
12512	base objects.
12513
125142018-03-09  Alexandre Oliva  <aoliva@redhat.com>
12515
12516	PR rtl-optimization/84682
12517	* lra-constraints.c (process_address_1): Check is_address flag
12518	for address constraints.
12519	(process_alt_operands): Likewise.
12520	* lra.c (lra_set_insn_recog_data): Pass asm operand locs to
12521	preprocess_constraints.
12522	* recog.h (preprocess_constraints): Add oploc parameter.
12523	Adjust callers.
12524	* recog.c (preprocess_constraints): Test address_operand for
12525	CT_ADDRESS constraints.
12526
125272018-03-09  Vladimir Makarov  <vmakarov@redhat.com>
12528
12529	PR target/83712
12530	* lra-assigns.c (assign_by_spills): Return a flag of reload
12531	assignment failure.  Do not process the reload assignment
12532	failures.  Do not spill other reload pseudos if they has the same
12533	reg class.
12534	(lra_assign): Add a return arg.  Set up from the result of
12535	assign_by_spills call.
12536	(find_reload_regno_insns, lra_split_hard_reg_for): New functions.
12537	* lra-constraints.c (split_reg): Add a new arg.  Use it instead of
12538	usage_insns if it is not NULL.
12539	(spill_hard_reg_in_range): New function.
12540	(split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
12541	* lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
12542	function prototypes.
12543	(lra_assign): Change prototype.
12544	* lra.c (lra): Add code to deal with fails by splitting hard reg
12545	live ranges.
12546
125472018-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12548
12549	PR target/83193
12550	* common/config/arm/arm-common.c (arm_parse_arch_option_name):
12551	Accept complain bool parameter.  Only emit errors if it is true.
12552	(arm_parse_cpu_option_name): Likewise.
12553	(arm_target_thumb_only): Adjust callers of the above.
12554	* config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust
12555	prototype to take a default true bool parameter.
12556	(arm_parse_arch_option_name): Likewise.
12557
125582018-03-09  David Malcolm  <dmalcolm@redhat.com>
12559	    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12560
12561	PR jit/64089
12562	PR jit/84288
12563	* Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New.
12564	* configure: Regenerate.
12565	* configure.ac ("linker --version-script option"): New.
12566	("linker soname option"): New.
12567
125682018-03-09  Richard Biener  <rguenther@suse.de>
12569
12570	PR tree-optimization/84775
12571	* tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink
12572	immediate uses of predicate stmts and mark them modified.
12573
12574	Revert
12575	PR tree-optimization/84178
12576	* tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
12577	to caller.
12578	(version_loop_for_if_conversion): Delay update_ssa call.
12579	(tree_if_conversion): Delay update_ssa until after predicate
12580	insertion.
12581
125822018-03-09  Eric Botcazou  <ebotcazou@adacore.com>
12583
12584	PR target/84763
12585	* config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation
12586	when the function accesses prior frames.
12587
125882018-03-08  Jakub Jelinek  <jakub@redhat.com>
12589
12590	PR debug/84456
12591	* dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call
12592	gen_llsym, otherwise call maybe_gen_llsym.
12593
12594	PR inline-asm/84742
12595	* recog.c (asm_operand_ok): Return 0 if multi-character constraint
12596	has ',' character inside of it.
12597
125982018-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12599
12600	PR target/84748
12601	* config/aarch64/aarch64.md (*compare_cstore<mode>_insn): Mark pattern
12602	as clobbering CC_REGNUM.
12603
126042018-03-08  Richard Biener  <rguenther@suse.de>
12605
12606	PR middle-end/84552
12607	* tree-scalar-evolution.c: Include tree-into-ssa.h.
12608	(follow_copies_to_constant): Do not follow SSA names registered
12609	for update.
12610
126112018-03-08  Richard Biener  <rguenther@suse.de>
12612
12613	PR tree-optimization/84178
12614	* tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
12615	to caller.
12616	(version_loop_for_if_conversion): Delay update_ssa call.
12617	(tree_if_conversion): Delay update_ssa until after predicate
12618	insertion.
12619
126202018-03-08  David Malcolm  <dmalcolm@redhat.com>
12621
12622	PR tree-optimization/84178
12623	* tree-if-conv.c (release_bb_predicate): Remove the
12624	the assertion that the stmts have NULL use_ops.
12625	Discard the statements, asserting that they haven't
12626	yet been added to a BB.
12627
126282018-03-08  Richard Biener  <rguenther@suse.de>
12629
12630	PR tree-optimization/84746
12631	* tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL.
12632	(phi_translate): Pass in destination ANTIC_OUT set.
12633	(phi_translate_1): Likewise.  For a simplified result lookup
12634	a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets.
12635	(phi_translate_set): Adjust.
12636	(do_pre_regular_insertion): Likewise.
12637	(do_pre_partial_partial_insertion): Likewise.
12638
126392018-03-08  Martin Liska  <mliska@suse.cz>
12640
12641	PR gcov-profile/84735
12642	* doc/gcov.texi: Document usage of profile files.
12643	* gcov-io.h: Document changes in the format.
12644
126452018-03-08  Alexandre Oliva  <aoliva@redhat.com>
12646
12647	PR debug/84404
12648	PR debug/84408
12649	* dwarf2out.c (struct dw_line_info_table): Update comments for
12650	view == -1.
12651	(FORCE_RESET_NEXT_VIEW): New.
12652	(FORCE_RESETTING_VIEW_P): New.
12653	(RESETTING_VIEW_P): Check for -1 too.
12654	(ZERO_VIEW_P): Likewise.
12655	(new_line_info_table): Force-reset next view.
12656	(dwarf2out_begin_function): Likewise.
12657	(dwarf2out_source_line): Simplify zero_view_p initialization.
12658	Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of
12659	view directly.  Omit view when omitting .loc at line 0.
12660
126612018-03-08  Jakub Jelinek  <jakub@redhat.com>
12662
12663	PR tree-optimization/84740
12664	* tree-switch-conversion.c (process_switch): Call build_constructors
12665	only if info.phi_count is non-zero.
12666
12667	PR tree-optimization/84739
12668	* tree-tailcall.c (find_tail_calls): Check call arguments against
12669	DECL_ARGUMENTS (current_function_decl) rather than
12670	DECL_ARGUMENTS (func) when checking for tail recursion.
12671
126722018-03-07  Jakub Jelinek  <jakub@redhat.com>
12673
12674	* doc/contrib.texi: Add entries for Martin Liska, David Malcolm,
12675	Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and
12676	Volker Reichelt's entry and add entries for people that perform
12677	GCC fuzzy testing and report numerous bugs.
12678
126792018-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
12680
12681	PR target/82411
12682	* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put
12683	readonly data in sdata, if that is disabled.
12684	* config/rs6000/sysv4.opt (mreadonly-in-sdata): New option.
12685	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
12686	-mreadonly-in-sdata option.
12687
126882018-03-07  Martin Sebor  <msebor@redhat.com>
12689
12690	PR tree-optimization/84468
12691	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor
12692	basic block when looking for nul assignment.
12693
126942018-03-07  Eric Botcazou  <ebotcazou@adacore.com>
12695
12696	PR target/84277
12697	* except.h (output_function_exception_table): Adjust prototype.
12698	* except.c (output_function_exception_table): Remove FNNAME parameter
12699	and add SECTION parameter.  Ouput one part of the table at a time.
12700	* final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output
12701	the first part of the exception table and emit unwind directives.
12702	* config/i386/i386-protos.h (i386_pe_end_cold_function): Declare.
12703	(i386_pe_seh_cold_init): Likewise.
12704	* config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro.
12705	(ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise.
12706	* config/i386/i386.c (x86_expand_epilogue): Fix wording in comment.
12707	(ix86_output_call_insn): Emit a nop in one more case for SEH.
12708	* config/i386/winnt.c: Include except.h.
12709	(struct seh_frame_state): Add reg_offset, after_prologue and
12710	in_cold_section fields.
12711	(i386_pe_seh_end_prologue): Set seh->after_prologue.
12712	(i386_pe_seh_cold_init): New function.
12713	(i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal
12714	to seh->in_cold_section.
12715	(seh_emit_push): Record the offset of the push.
12716	(seh_emit_save): Record the offet of the save.
12717	(i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS.
12718	Test seh->after_prologue to disregard the epilogue.
12719	(i386_pe_end_function): Pass FALSE to i386_pe_seh_fini.
12720	(i386_pe_end_cold_function): New function.
12721
127222018-03-07  Jakub Jelinek  <jakub@redhat.com>
12723
12724	PR fortran/84565
12725	* config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use
12726	aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero.
12727
12728	PR c++/84704
12729	* gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag
12730	on tmp_var.
12731	* tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG,
12732	don't print names of DECL_NAMELESS DECL_IGNORED_P decls.
12733
12734	PR middle-end/84723
12735	* multiple_target.c: Include tree-inline.h and intl.h.
12736	(expand_target_clones): Diagnose and fail if node->definition and
12737	!tree_versionable_function_p (node->decl).
12738
127392018-03-06  John David Anglin  <danglin@gcc.gnu.org>
12740
12741	* config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use
12742	sprint_ul.
12743	(ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change.
12744	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12745	* config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above.
12746
127472018-03-06  Jakub Jelinek  <jakub@redhat.com>
12748
12749	PR target/84710
12750	* combine.c (try_combine): Use reg_or_subregno instead of handling
12751	just paradoxical SUBREGs and REGs.
12752
127532018-03-06  Claudiu Zissulescu  <claziss@synopsys.com>
12754
12755	 * config/arc/arc.c (arc_finalize_pic): Remove function.
12756	 (arc_must_save_register): We use single base PIC register, remove
12757	 checks to save/restore the PIC register.
12758	 (arc_expand_prologue): Likewise.
12759	 * config/arc/arc-protos.h (arc_set_default_type_attributes):
12760	 Remove.
12761	 (arc_verify_short): Likewise.
12762	 (arc_attr_type): Likewise.
12763	 * config/arc/arc.c (arc_set_default_type_attributes): Remove.
12764	 (walk_stores): Likewise.
12765	 (arc_address_cost): Make it static.
12766	 (arc_verify_short): Likewise.
12767	 (branch_dest): Likewise.
12768	 (arc_attr_type): Likewise.
12769	 * config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove.
12770	 (TARGET_INSN_LENGTH_PARAMETERS): Likewise.
12771	 (arc_final_prescan_insn): Remove inserting the nops due to
12772	 hardware hazards.  It is done in reorg step.
12773	 (insn_length_variant_t): Remove.
12774	 (insn_length_parameters_t): Likewise.
12775	 (arc_insn_length_parameters): Likewise.
12776	 (arc_get_insn_variants): Likewise.
12777	 * config/arc/arc.h (TARGET_UPSIZE_DBR): Remove.
12778
127792018-03-06  Jakub Jelinek  <jakub@redhat.com>
12780
12781	PR inline-asm/84683
12782	* reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid
12783	assertion failure.
12784
12785	PR tree-optimization/84687
12786	* omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS
12787	on new_node->decl.
12788	* match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization.
12789
127902018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12791
12792	* config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier):
12793	Rename to ppc_speculation_barrier.
12794	* config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to
12795	__builtin_ppc_speculation_barrier.
12796
127972018-03-05  Jakub Jelinek  <jakub@redhat.com>
12798
12799	PR target/84700
12800	* combine.c (combine_simplify_rtx): Don't try to simplify if
12801	if_then_else_cond returned non-NULL, but either true_rtx or false_rtx
12802	are equal to x.
12803
128042018-03-05  Segher Boessenkool  <segher@kernel.crashing.org>
12805
12806	* config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops
12807	to 32 bytes when compiling for POWER9.
12808
128092018-03-05  Jakub Jelinek  <jakub@redhat.com>
12810
12811	PR target/84564
12812	* config/i386/i386.c (ix86_function_ok_for_sibcall): Check for
12813	regparm >= 3 with no arg reg available also for calls with
12814	flag_force_indirect_call.  Pass decl to ix86_function_regparm.
12815
12816	PR target/84524
12817	* config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with
12818	orig,vex.
12819	(*<plusminus_insn><mode>3): Likewise.  Remove <mask_operand3> uses.
12820
128212018-03-05  Peter Bergner  <bergner@vnet.ibm.com>
12822
12823	PR target/84264
12824	* config/rs6000/vector.md (mov<mode>): Disallow altivec memory operands.
12825
128262018-03-05  Richard Biener  <rguenther@suse.de>
12827
12828	PR tree-optimization/84486
12829	* tree-ssa-pre.c (create_expression_by_pieces): Remove dead code.
12830	When inserting a __builtin_assume_aligned call set the LHS
12831	SSA name alignment info accordingly.
12832
128332018-03-05  Wilco Dijkstra  <wdijkstr@arm.com>
12834
12835	PR tree-optimization/84114
12836	* config/aarch64/aarch64.c (aarch64_reassociation_width)
12837	Avoid reassociation of FLOAT_MODE addition.
12838
128392018-03-05  Olga Makhotina  <olga.makhotina@intel.com>
12840
12841	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET,
12842	OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET,
12843	OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions.
12844	(ix86_handle_option): Handle -mpconfig and -mwbnoinvd.
12845	* config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers.
12846	* config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New.
12847	* config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig
12848	and -mwbnoinvd.
12849	* config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd,
12850	__builtin_ia32_wbinvd): New builtins.
12851	(SPECIAL_ARGS2): New.
12852	* config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New.
12853	(SPECIAL_ARGS2): New.
12854	* config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd.
12855	(ix86_valid_target_attribute_inner_p): Ditto.
12856	(ix86_init_mmx_sse_builtins): Add special_args2.
12857	* config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD,
12858	TARGET_WBNOINVD_P): New.
12859	* config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New.
12860	(define_insn "wbinvd", define_insn "wbnoinvd"): New.
12861	* config/i386/i386.opt: Add -mpconfig and -mwbnoinvd.
12862	* config/i386/immintrin.h (_wbinvd): New intrinsic.
12863	* config/i386/pconfigintrin.h: New file.
12864	* config/i386/wbnoinvdintrin.h: Ditto.
12865	* config/i386/x86intrin.h: Add headers pconfigintrin.h and wbnoinvdintrin.h.
12866	* doc/invoke.texi (-mpconfig, -mwbnoinvd): New.
12867
128682018-03-05  Richard Biener  <rguenther@suse.de>
12869
12870	PR tree-optimization/84670
12871	* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
12872	member.
12873	(BB_VISITED_WITH_VISITED_SUCCS): New define.
12874	(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
12875	(compute_antic_aux): Only assert the number of values in ANTIC_IN
12876	doesn't grow if all successors (recursively) were visited at least
12877	once.
12878
128792018-03-05  Richard Biener  <rguenther@suse.de>
12880
12881	PR tree-optimization/84650
12882	* tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache
12883	if executed in the loop pipeline.
12884
128852018-03-05  Sandra Loosemore  <sandra@codesourcery.com>
12886
12887	* doc/configfiles.texi (Configuration Files): Move info about
12888	conditionalizing $target-protos.h to...
12889	* doc/sourcebuild.texi (Back End): Here.  Explain how $target.h
12890	differs from $target-protos.h.
12891
128922018-03-05  Kito Cheng  <kito.cheng@gmail.com>
12893	    Chung-Ju Wu  <jasonwucj@gmail.com>
12894
12895	* config/nds32/nds32-protos.h (nds32_expand_setmem): Declare.
12896	* config/nds32/nds32-multiple.md (setmemsi): Define.
12897	* config/nds32/nds32-memory-manipulation.c
12898	(nds32_gen_dup_4_byte_to_word_value): New.
12899	(emit_setmem_word_loop): New.
12900	(emit_setmem_byte_loop): New.
12901	(nds32_expand_setmem_loop): New.
12902	(nds32_expand_setmem_loop_v3m): New.
12903	(nds32_expand_setmem_unroll): New.
12904	(nds32_expand_setmem): New.
12905
129062018-03-04  Kito Cheng  <kito.cheng@gmail.com>
12907	    Chung-Ju Wu  <jasonwucj@gmail.com>
12908
12909	* config/nds32/nds32-memory-manipulation.c
12910	(nds32_emit_load_store): New.
12911	(nds32_emit_post_inc_load_store): New.
12912	(nds32_emit_mem_move): New.
12913	(nds32_emit_mem_move_block): New.
12914	(nds32_expand_movmemsi_loop_unknown_size): New.
12915	(nds32_expand_movmemsi_loop_known_size): New.
12916	(nds32_expand_movmemsi_loop): New.
12917	(nds32_expand_movmemsi_unroll): New.
12918	(nds32_expand_movmemqi): Rename ...
12919	(nds32_expand_movmemsi): ... to this.
12920	* config/nds32/nds32-multiple.md (movmemqi): Rename ...
12921	(movmemsi): ... to this.
12922	* config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ...
12923	(nds32_expand_movmemsi): ... to this.
12924
129252018-03-04  Kito Cheng  <kito.cheng@gmail.com>
12926	    Monk Chiang  <sh.chiang04@gmail.com>
12927	    Chung-Ju Wu  <jasonwucj@gmail.com>
12928
12929	* config/nds32/nds32-protos.h
12930	(nds32_expand_load_multiple): New arguments.
12931	(nds32_expand_store_multiple): Ditto.
12932	(nds32_valid_multiple_load_store): Rename ...
12933	(nds32_valid_multiple_load_store_p): ... to this.
12934	* config/nds32/nds32-memory-manipulation.c
12935	(nds32_expand_load_multiple): Refine implementation.
12936	(nds32_expand_store_multiple): Ditto.
12937	* config/nds32/nds32-multiple.md
12938	(load_multiple): Update nds32_expand_load_multiple interface.
12939	(store_multiple): Update nds32_expand_store_multiple interface.
12940	* config/nds32/nds32-predicates.c
12941	(nds32_valid_multiple_load_store): Rename ...
12942	(nds32_valid_multiple_load_store_p): ... to this and refine
12943	implementation.
12944	* config/nds32/predicates.md
12945	(nds32_load_multiple_and_update_address_operation): New predicate.
12946	(nds32_store_multiple_and_update_address_operation): New predicate.
12947
129482018-03-04  Kito Cheng  <kito.cheng@gmail.com>
12949	    Chung-Ju Wu  <jasonwucj@gmail.com>
12950
12951	* config/nds32/nds32.md (type): Add load_multiple and store_multiple.
12952	(combo): New attribute.
12953	* config/nds32/nds32-multiple.md: Refine patterns with new attributes.
12954
129552018-03-03  Chung-Ju Wu  <jasonwucj@gmail.com>
12956
12957	* config/nds32/nds32.opt: Change -mcmodel= default value.
12958
129592018-03-03  Kito Cheng  <kito.cheng@gmail.com>
12960	    Monk Chiang  <sh.chiang04@gmail.com>
12961	    Chung-Ju Wu  <jasonwucj@gmail.com>
12962
12963	* config/nds32/constants.md (unspec_element): New enum.
12964	* config/nds32/constraints.md (Umw): New constraint.
12965	* config/nds32/nds32-intrinsic.c: Add more builtin functions.
12966	* config/nds32/nds32-intrinsic.md: Likewise.
12967	* config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New.
12968	(nds32_valid_smw_lwm_base_p): New.
12969	(nds32_output_smw_single_word): New.
12970	(nds32_output_lmw_single_word): New.
12971	(nds32_expand_unaligned_load): New.
12972	(nds32_expand_unaligned_store): New.
12973	* config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare.
12974	(nds32_output_smw_single_word): Declare.
12975	(nds32_output_lmw_single_word): Declare.
12976	(nds32_expand_unaligned_load): Declare.
12977	(nds32_expand_unaligned_store): Declare.
12978	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW,
12979	NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW,
12980	NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W,
12981	NDS32_BUILTIN_UASTORE_DW.
12982	* config/nds32/predicates.md (nds32_lmw_smw_base_operand): New
12983	predicate.
12984
129852018-03-03  Monk Chiang  <sh.chiang04@gmail.com>
12986	    Kito Cheng  <kito.cheng@gmail.com>
12987	    Chung-Ju Wu  <jasonwucj@gmail.com>
12988
12989	* config/nds32/nds32-intrinsic.c
12990	(nds32_expand_builtin_null_ftype_reg): Delete.
12991	(nds32_expand_builtin_reg_ftype_imm): Ditto.
12992	(nds32_expand_builtin_null_ftype_reg_imm): Ditto.
12993	(nds32_read_argument): New.
12994	(nds32_legitimize_target): Ditto.
12995	(nds32_legitimize_argument): Ditto.
12996	(nds32_check_constant_argument): Ditto.
12997	(nds32_expand_unop_builtin): Ditto.
12998	(nds32_expand_unopimm_builtin): Ditto.
12999	(nds32_expand_binop_builtin): Ditto.
13000	(nds32_builtin_decl_impl): Ditto.
13001	(builtin_description): Ditto.
13002	(nds32_expand_builtin_impl): Rewrite with new infrastructure.
13003	(nds32_init_builtins_impl): Ditto.
13004	* config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define.
13005	(nds32_builtin_decl): New.
13006	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT.
13007	* config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare.
13008
130092018-03-02  Jeff Law  <law@redhat.com>
13010
13011	* reorg.c (stop_search_p): Handle DEBUG_INSN.
13012	(redundant_insn, fill_simple_delay_slots): Likewise.
13013	(fill_slots_from_thread): Likewise.
13014	* resource.c (mark_referenced_resources): Likewise.
13015	(mark_set_resources, find_dead_or_set_registers): Likewise.
13016
130172018-03-02  Jakub Jelinek  <jakub@redhat.com>
13018
13019	* substring-locations.h (format_warning_va): Formatting fix for
13020	ATTRIBUTE_GCC_DIAG.
13021	(format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second
13022	argument.
13023	(format_warning_n_va, format_warning_at_substring_n): New prototypes.
13024	* substring-locations.c: Include intl.h.
13025	(format_warning_va): Turned into small wrapper around
13026	format_warning_n_va, renamed to ...
13027	(format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments,
13028	rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID,
13029	use ngettext.
13030	(format_warning_at_substring_n): New function.
13031	* gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma.
13032	(fmtwarn): Add ATTRIBUTE_GCC_DIAG.  Turn into a copy of
13033	format_warning_at_substring with just a shorter name instead of
13034	const function pointer.
13035	(fmtwarn_n): New function.
13036	(maybe_warn, format_directive, parse_directive): Use fmtwarn_n where
13037	appropriate, get rid of all the fmtstr temporaries, move conditionals
13038	with G_() wrapped string literals directly into fmtwarn arguments,
13039	cast dir.len to (int), formatting fixes.
13040
130412018-03-02  Thomas Schwinge  <thomas@codesourcery.com>
13042
13043	* doc/invoke.texi: Remove "Cilk Plus" references.
13044
130452018-03-02  Jakub Jelinek  <jakub@redhat.com>
13046	    Richard Biener  <rguenther@suse.de>
13047
13048	PR ipa/84628
13049	* expr.c (expand_expr_real_1) <case CALL_EXPR>: Don't emit diagnostics
13050	for error or warning attributes if CALL_FROM_THUNK_P is set.
13051	Formatting fixes.
13052
130532018-03-02  Jakub Jelinek  <jakub@redhat.com>
13054
13055	PR target/56540
13056	* config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine
13057	__SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY.
13058
13059	PR target/56540
13060	* config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine
13061	__SIZEOF_{FPREG,FLOAT{80,128}}__ macros.
13062
13063	* predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED
13064	instead of -1U in last predictors element's probability member.
13065
130662018-03-02  Eric Botcazou  <ebotcazou@adacore.com>
13067
13068	PR ipa/83983
13069	* ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both
13070	arguments if they are comparable.
13071
130722018-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
13073
13074	PR tree-optimization/84634
13075	* tree-vect-stmts.c (vectorizable_store, vectorizable_load): Replace
13076	masks and masked_loop_p with a single loop_masks, making sure it's
13077	null for bb vectorization.
13078
130792018-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
13080
13081	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence)
13082	(vect_analyze_data_ref_access): Use loop->safe_len rather than
13083	loop->force_vectorize to check whether there is no alias.
13084
130852018-03-02  Jakub Jelinek  <jakub@redhat.com>
13086
13087	PR target/84614
13088	* rtl.h (prev_real_nondebug_insn, next_real_nondebug_insn): New
13089	prototypes.
13090	* emit-rtl.c (next_real_insn, prev_real_insn): Fix up function
13091	comments.
13092	(next_real_nondebug_insn, prev_real_nondebug_insn): New functions.
13093	* cfgcleanup.c (try_head_merge_bb): Use prev_real_nondebug_insn
13094	instead of a loop around prev_real_insn.
13095	* combine.c (move_deaths): Use prev_real_nondebug_insn instead of
13096	prev_real_insn.
13097
13098	PR inline-asm/84625
13099	* config/i386/i386.c (ix86_print_operand): Use conditional
13100	output_operand_lossage instead of gcc_assert if CONST_VECTOR is not
13101	zero vector.
13102
131032018-03-02  Richard Biener  <rguenther@suse.de>
13104
13105	PR tree-optimization/84427
13106	* tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove.
13107	(bitmap_set_subtract_values): Rewrite to handle multiple
13108	exprs per value.
13109	(clean): Likewise.
13110	(prune_clobbered_mems): Likewise.
13111	(phi_translate): Take edge instead of pred/phiblock.
13112	(phi_translate_1): Likewise.
13113	(phi_translate_set): Likewise.  Insert all translated
13114	exprs for a value into the set, keeping possibly multiple
13115	expressions per value.
13116	(compute_antic_aux): Adjust for phi_translate changes.
13117	When intersecting union the expressions and prune those
13118	not in the final value set, keeping possibly multiple
13119	expressions per value.  Do not use value-insertion
13120	for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge
13121	all expressions.  Add verification that the value-sets
13122	only shrink during iteration.
13123	(compute_partial_antic_aux): Adjust for the phi_translate changes.
13124	(do_pre_regular_insertion): Likewise.
13125	(do_pre_partial_partial_insertion): Likewise.
13126
131272018-03-02  Richard Biener  <rguenther@suse.de>
13128
13129	PR target/82005
13130	* config/darwin.c (saved_debug_info_level): New static global.
13131	(darwin_asm_lto_start): Disable debug info generation for LTO out.
13132	(darwin_asm_lto_end): Restore debug info generation settings.
13133
131342018-03-01  Martin Liska  <mliska@suse.cz>
13135
13136	PR sanitizer/82484
13137	* sanopt.c (sanitize_rewrite_addressable_params): Do not handle
13138	volatile arguments.
13139
131402018-03-01  Richard Biener  <rguenther@suse.de>
13141
13142	PR debug/84645
13143	* dwarf2out.c (gen_variable_die): Properly handle late VLA
13144	type annotation with LTO when debug was disabled at compile-time.
13145
131462018-03-01  Matthew Fortune  <mfortune@gmail.com>
13147
13148	* config/mips/mips.c (mips_final_prescan_insn): Fix incorrect
13149	XINT with INTVAL.
13150	(mips_final_postscan_insn): Likewise.
13151
131522018-03-01  Richard Sandiford  <richard.sandiford@linaro.org>
13153
13154	PR rtl-optimization/84528
13155	* alias.c (init_alias_target): Add commentary.
13156	(init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM
13157	a unique base value if the frame pointer is not eliminated
13158	to the stack pointer.
13159
131602018-03-01  Tom de Vries  <tom@codesourcery.com>
13161
13162	PR rtl-optimization/83327
13163	* lra-int.h (hard_regs_spilled_into): Declare.
13164	* lra.c (hard_regs_spilled_into): Define.
13165	(init_reg_info): Init hard_regs_spilled_into.
13166	* lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into.
13167	* lra-lives.c (make_hard_regno_born, make_hard_regno_dead)
13168	(process_bb_lives): Handle hard_regs_spilled_into.
13169	(lra_create_live_ranges_1): Before doing liveness propagation, clear
13170	regs in all_hard_regs_bitmap if set in hard_regs_spilled_into.
13171
131722018-02-28  David Edelsohn  <dje.gcc@gmail.com>
13173
13174	* config.gcc (powerpc-ibm-aix7.1.*): New stanza.
13175	(powerpc-ibm-aix[789]*): Default to AIX 7.2.
13176	* config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA.
13177	* config/rs6000/aix72.h: New file.
13178
131792018-02-28  Jakub Jelinek  <jakub@redhat.com>
13180
13181	* gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n
13182	instead of warning_at with conditional singular and plural messages
13183	where possible.
13184
13185	PR target/52991
13186	* stor-layout.c (update_alignment_for_field): For
13187	targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield
13188	&& !DECL_PACKED (field), do the alignment update, just use
13189	only desired_align instead of MAX (type_align, desired_align)
13190	as the alignment.
13191	(place_field): Don't do known_align < desired_align handling
13192	early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field
13193	is non-NULL, instead do it after rli->prev_field handling and
13194	only if not within a bitfield word.  For DECL_PACKED (field)
13195	use type_align of BITS_PER_UNIT.
13196
131972018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
13198
13199	* config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove
13200	superfluous parentheses and trailing spaces.
13201
132022018-02-28  Richard Biener  <rguenther@suse.de>
13203
13204	PR tree-optimization/84584
13205	* graphite-scop-detection.c (scop_detection::add_scop): Discard
13206	SCoPs with fake exit edge.
13207
132082018-02-28  Martin Liska  <mliska@suse.cz>
13209
13210	PR testsuite/84597
13211	* timevar.c (timer::print): Fix format to properly print 100%
13212	values.
13213
132142018-02-28  Richard Biener  <rguenther@suse.de>
13215
13216	PR middle-end/84607
13217	* genmatch.c (capture_info::walk_match): Do not mark
13218	captured expressions without operands as expr_p given
13219	they act more like predicates and should be subject to
13220	"lost tail" side-effect preserving.
13221
132222018-02-28  Alexandre Oliva  <aoliva@redhat.com>
13223
13224	PR rtl-optimization/81611
13225	* auto-inc-dec.c (attempt_change): Move dead note from
13226	mem_insn if it's the next use of regno
13227	(find_address): Take address use of reg holding
13228	non-incremented value.  Add parm to limit search to the named
13229	reg only.
13230	(merge_in_block): Attempt to use a mem insn that is the next
13231	use of the original regno.
13232
132332018-02-27  Martin Sebor  <msebor@redhat.com>
13234
13235	PR c++/83871
13236	* gcc/doc/invoke.texi (-Wmissing-attributes): New option.
13237	* gcc/print-tree.c (print_node): Handle DECL_UNINLINABLE.
13238
132392018-02-27  Martin Sebor  <msebor@redhat.com>
13240
13241	PR translation/84207
13242	* diagnostic-core.h (warning_n, error_n, inform_n): Change
13243	n argument to unsigned HOST_WIDE_INT.
13244	* diagnostic.c (warning_n, error_n, inform_n): Ditto.
13245	(diagnostic_n_impl): Ditto.  Handle arguments in excess of LONG_MAX.
13246	* gimple-ssa-sprintf.c (format_directive): Simplify inform_n call.
13247	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n.
13248
132492018-02-27  Richard Biener  <rguenther@suse.de>
13250
13251	PR tree-optimization/84512
13252	* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
13253	Do not use the estimate returned from record_stmt_cost for
13254	the scalar iteration cost but sum properly using add_stmt_cost.
13255
132562018-02-27  Richard Biener  <rguenther@suse.de>
13257
13258	PR tree-optimization/84466
13259	* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
13260	Adjust last change to less strictly validate use operands.
13261
132622018-02-27  Martin Liska  <mliska@suse.cz>
13263
13264	PR gcov-profile/84548
13265	* gcov.c (process_file): Allow partial overlap and consider it
13266	also as group functions.
13267	(output_lines): Properly calculate range of lines for a group.
13268
132692018-02-27  Martin Liska  <mliska@suse.cz>
13270
13271	* timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and
13272	'ggc' suffixes.  Change first column width.
13273	(timer::print): Fix formatting of the column.
13274
132752018-02-27  Alexandre Oliva  <aoliva@redhat.com>
13276
13277	* tree-ssa-live.c (remove_unused_scope_block_p): Do not
13278	preserve inline entry blocks for the sake of debug inline
13279	entry point markers alone.
13280	(remove_unused_locals): Suggest in comments a better place to
13281	force the preservation of inline entry blocks that are
13282	otherwise unused, but do not preserve them.
13283
132842018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
13285
13286	* config/i386/i386.c (ix86_output_indirect_jmp): Update comments.
13287
132882018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
13289
13290	PR target/84039
13291	* config/i386/constraints.md (Bs): Replace
13292	ix86_indirect_branch_register with
13293	TARGET_INDIRECT_BRANCH_REGISTER.
13294	(Bw): Likewise.
13295	* config/i386/i386.md (indirect_jump): Likewise.
13296	(tablejump): Likewise.
13297	(*sibcall_memory): Likewise.
13298	(*sibcall_value_memory): Likewise.
13299	Peepholes of indirect call and jump via memory: Likewise.
13300	(*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER.
13301	(*sibcall_value_GOT_32): Likewise.
13302	* config/i386/predicates.md (indirect_branch_operand): Likewise.
13303	(GOT_memory_operand): Likewise.
13304	(call_insn_operand): Likewise.
13305	(sibcall_insn_operand): Likewise.
13306	(GOT32_symbol_operand): Likewise.
13307	* config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New.
13308
133092018-02-26  Eric Botcazou  <ebotcazou@adacore.com>
13310
13311	PR rtl-optimization/83496
13312	* reorg.c (steal_delay_list_from_target): Change REDUNDANT array from
13313	booleans to RTXes.  Call fix_reg_dead_note on every non-null element.
13314	(steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a
13315	redundant insn, if any.
13316	(relax_delay_slots): Likewise.
13317	(update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN.
13318
133192018-02-26  Richard Sandiford  <richard.sandiford@linaro.org>
13320
13321	PR tree-optimization/83965
13322	* tree-vect-patterns.c (vect_reassociating_reduction_p): Assume
13323	that grouped statements are part of a reduction chain.  Return
13324	true if the statement is not marked as a reduction itself but
13325	is part of a group.
13326	(vect_recog_dot_prod_pattern): Don't check whether the statement
13327	is part of a group here.
13328	(vect_recog_sad_pattern): Likewise.
13329	(vect_recog_widen_sum_pattern): Likewise.
13330
133312018-02-26  Eric Botcazou  <ebotcazou@adacore.com>
13332
13333	PR debug/84545
13334	* final.c (rest_of_clean_state): Also look for calls inside sequences.
13335
133362018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
13337
13338	PR target/84530
13339	* config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove
13340	the bool argument.
13341	(ix86_output_indirect_function_return): New prototype.
13342	(ix86_split_simple_return_pop_internal): Likewise.
13343	* config/i386/i386.c (indirect_return_via_cx): New.
13344	(indirect_return_via_cx_bnd): Likewise.
13345	(indirect_thunk_name): Handle return va CX_REG.
13346	(output_indirect_thunk_function): Create alias for
13347	__x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd.
13348	(ix86_output_indirect_jmp): Remove the bool argument.
13349	(ix86_output_indirect_function_return): New function.
13350	(ix86_split_simple_return_pop_internal): Likewise.
13351	* config/i386/i386.md (*indirect_jump): Don't pass false
13352	to ix86_output_indirect_jmp.
13353	(*tablejump_1): Likewise.
13354	(simple_return_pop_internal): Change it to define_insn_and_split.
13355	Call ix86_split_simple_return_pop_internal to split it for
13356	-mfunction-return=.
13357	(simple_return_indirect_internal): Call
13358	ix86_output_indirect_function_return instead of
13359	ix86_output_indirect_jmp.
13360
133612018-02-26  Jakub Jelinek  <jakub@redhat.com>
13362
13363	PR bootstrap/84405
13364	* vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use
13365	memset and value initialization afterwards.
13366
133672018-02-26  Christophe Lyon  <christophe.lyon@linaro.org>
13368
13369	* Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS.
13370
133712018-02-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13372
13373	PR target/84521
13374	* common/config/aarch64/aarch64-common.c
13375	(aarch_option_optimization_table[]): Switch
13376	off fomit-frame-pointer
13377
133782018-02-26  Kito Cheng  <kito.cheng@gmail.com>
13379	    Chung-Ju Wu  <jasonwucj@gmail.com>
13380
13381	* config/nds32/nds32-multiple.md (load_multiple): Disallow
13382	volatile memory.
13383	(store_multiple): Ditto.
13384
133852018-02-26  Kito Cheng  <kito.cheng@gmail.com>
13386
13387	* config.gcc: Add --with-cpu support for nds32 target.
13388	* config/nds32/nds32-opts.h (nds32_cpu_type): New.
13389	* config/nds32/nds32.opt: Add -mcpu= option.
13390
133912018-02-25  Segher Boessenkool  <segher@kernel.crashing.org>
13392
13393	* config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no,
13394	isel=yes): Warn for these deprecated options.
13395
133962018-02-23  David Edelsohn  <dje.gcc@gmail.com>
13397
13398	* config/rs6000/aix71.h (TARGET_DEFAULT): Change to
13399	ISA_2_5_MASKS_EMBEDDED.
13400
134012018-02-23  Jakub Jelinek  <jakub@redhat.com>
13402
13403	* ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and
13404	p->max as pointers rather than using iterative_hash_expr.
13405
134062018-02-23  Carl Love  <cel@us.ibm.com>
13407
13408	* config/rs6000/rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2
13409	macro expansions from BU_VSX_2 to BU_P8V_VSX_2 and BU_VSX_OVERLOAD_2 to
13410	BU_P8V_OVERLOAD_2.
13411	* config/rs6000/rs6000-c.c: Change VSX_BUILTIN_VEC_VSIGNED2 to
13412	P8V_BUILTIN_VEC_VSIGNED2.  Change VSX_BUILTIN_VEC_VUNSIGNED2 to
13413	P8V_BUILTIN_VEC_VUNSIGNED2.
13414
134152018-02-22  Vladimir Makarov  <vmakarov@redhat.com>
13416
13417	PR target/81572
13418	* lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros.
13419	* lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use
13420	LRA_UNKNOWN_ALT.
13421	* lra-constraints.c (curr_insn_transform): Set up
13422	LRA_NON_CLOBBERED_ALT for moves processed on the fast path.  Use
13423	LRA_UNKNOWN_ALT.
13424	(remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT.
13425	* lra-eliminations.c (spill_pseudos): Ditto.
13426	(process_insn_for_elimination): Ditto.
13427	* lra-lives.c (reg_early_clobber_p): Use the new macros.
13428	* lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and
13429	LRA_NON_CLOBBERED_ALT.
13430
134312018-02-22  Martin Sebor  <msebor@redhat.com>
13432
13433	PR tree-optimization/84480
13434	* gimple-fold.c (gimple_fold_builtin_strcpy): Move warnings
13435	to maybe_diag_stxncpy_trunc.  Call it.
13436	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Integrate warnings
13437	from gimple_fold_builtin_strcpy.  Print inlining stack.
13438	(handle_builtin_stxncpy): Print inlining stack.
13439	* tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Declare.
13440
134412018-02-22  H.J. Lu  <hongjiu.lu@intel.com>
13442
13443	PR target/84176
13444	* config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
13445	error when -mindirect-branch=thunk-extern, -fcf-protection=branch
13446	and -fcheck-pointer-bounds are used together.
13447	(indirect_thunk_prefix): New enum.
13448	(indirect_thunk_need_prefix): New function.
13449	(indirect_thunk_name): Replace need_bnd_p with need_prefix.  Use
13450	"_nt" instead of "_bnd" for NOTRACK prefix.
13451	(output_indirect_thunk): Replace need_bnd_p with need_prefix.
13452	(output_indirect_thunk_function): Likewise.
13453	(): Likewise.
13454	(ix86_code_end): Update output_indirect_thunk_function calls.
13455	(ix86_output_indirect_branch_via_reg): Replace
13456	ix86_bnd_prefixed_insn_p with indirect_thunk_need_prefix.
13457	(ix86_output_indirect_branch_via_push): Likewise.
13458	(ix86_output_function_return): Likewise.
13459	* doc/invoke.texi: Document -mindirect-branch=thunk-extern is
13460	incompatible with -fcf-protection=branch and
13461	-fcheck-pointer-bounds.
13462
134632018-02-22  Steve Ellcey  <sellcey@cavium.com>
13464
13465	PR target/83335
13466	* config/aarch64/aarch64.c (aarch64_print_address_internal):
13467	Change gcc_assert call to output_operand_lossage.
13468
134692018-02-22  Steve Ellcey  <sellcey@cavium.com>
13470
13471	* doc/extend.texi (__builtin_extend_pointer): Document builtin.
13472
134732018-02-22  DJ Delorie  <dj@redhat.com>
13474	    Sebastian Perta  <sebastian.perta@renesas.com>
13475	    Oleg Endo  <olegendo@gcc.gnu.org>
13476
13477	* config/rx/rx.c (rx_rtx_costs): New function.
13478	(TARGET_RTX_COSTS): Override to use rx_rtx_costs.
13479
134802018-02-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13481
13482	* config/arm/t-multilib: Map Armv8-R to Armv7 multilibs.
13483
134842018-02-22  Martin Liska  <mliska@suse.cz>
13485
13486	PR driver/83193
13487	* common/config/arm/arm-common.c (arm_print_hint_for_cpu_option):
13488	Add "native" as a possible value.
13489
134902018-02-22  Martin Liska  <mliska@suse.cz>
13491
13492	PR driver/83193
13493	* config/i386/i386.c (ix86_option_override_internal):
13494	Add "native" as a possible value for -march and -mtune.
13495
134962018-02-22  Jakub Jelinek  <jakub@redhat.com>
13497
13498	PR target/84502
13499	* stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag
13500	to all type variants.
13501
13502	PR tree-optimization/84503
13503	* gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute
13504	width as info->bitpos + info->bitsize - start.
13505	(merged_store_group::merge_overlapping): Simplify width computation.
13506	(check_no_overlap): New function.
13507	(imm_store_chain_info::try_coalesce_bswap): Compute expected
13508	start + width and last_order of the group, fail if check_no_overlap
13509	fails.
13510	(imm_store_chain_info::coalesce_immediate_stores): Don't merge info
13511	to group if check_no_overlap fails.
13512
135132018-02-21  Segher Boessenkool  <segher@kernel.crashing.org>
13514
13515	* config/rs6000/altivec.md: Delete contraint arguments to
13516	define_expand, define_split, and define_peephole2, and in
13517	define_insn_and_split if always unused.
13518	* config/rs6000/darwin.md: Ditto.
13519	* config/rs6000/dfp.md: Ditto.
13520	* config/rs6000/rs6000.md: Ditto.
13521	* config/rs6000/sync.md: Ditto.
13522	* config/rs6000/vector.md: Ditto.
13523	* config/rs6000/vsx.md: Ditto.
13524
135252018-02-21  Segher Boessenkool  <segher@kernel.crashing.org>
13526
13527	* config/rs6000/altivec.md: Write output control strings as braced
13528	blocks instead of double-quoted strings.
13529	* config/rs6000/darwin.md: Ditto.
13530	* config/rs6000/rs6000.md: Ditto.
13531	* config/rs6000/vector.md: Ditto.
13532	* config/rs6000/vsx.md: Ditto.
13533
135342018-02-21  Jason Merrill  <jason@redhat.com>
13535
13536	PR c++/84314 - ICE with templates and fastcall attribute.
13537	* attribs.c (build_type_attribute_qual_variant): Remove assert.
13538
135392018-02-21  Jan Hubicka  <hubicka@ucw.cz>
13540
13541	* ipa-cp.c (determine_versionability): Fix comment typos.
13542
135432018-02-21  Jan Hubicka  <hubicka@ucw.cz>
13544
13545	PR c/84229
13546	* ipa-cp.c (determine_versionability): Do not version functions caling
13547	va_arg_pack.
13548
135492018-02-21  Martin Liska  <mliska@suse.cz>
13550
13551	PR driver/83193
13552	* config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
13553	Add "native" as a possible value.
13554	* config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT):  Define
13555	the macro when native cpu detection is available.
13556
135572018-02-21  Martin Liska  <mliska@suse.cz>
13558
13559	PR driver/83193
13560	* common/config/arm/arm-common.c (arm_print_hint_for_arch_option):
13561	Add "native" as a possible value.
13562	* config/arm/arm.h (HAVE_LOCAL_CPU_DETECT): Define the macro
13563	when native cpu detection is available.
13564
135652018-02-21  Jakub Jelinek  <jakub@redhat.com>
13566	    Martin Sebor  <msebor@redhat.com>
13567
13568	PR tree-optimization/84478
13569	* gimple-fold.h (get_range_strlen): Add a bool argument defaulted to
13570	false.
13571	* gimple-fold.c (get_range_strlen): Make minlen const and assume it
13572	can't be NULL.  Change FUZZY from bool to int, for 1 add PHI/COND_EXPR
13573	support which is conservatively correct, for 2 only stay conservative
13574	for maxlen.  Formatting and comment capitalization fixes.  Add STRICT
13575	argument to the 2 argument get_range_strlen, adjust 6 arg
13576	get_range_strlen caller and clear minmaxlen[0] and [1] if it returned
13577	false.
13578	(get_maxval_strlen): Adjust 6 arg get_range_strlen caller.
13579	(gimple_fold_builtin_strlen): Pass true as last argument to
13580	get_range_strlen.
13581
135822018-02-20  Martin Sebor  <msebor@redhat.com>
13583
13584	PR middle-end/84095
13585	* gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): New.
13586	(builtin_memref::set_base_and_offset): Same.  Handle inner references.
13587	(builtin_memref::builtin_memref): Factor out parts into
13588	set_base_and_offset and call it.
13589
135902018-02-20  Richard Sandiford  <richard.sandiford@linaro.org>
13591
13592	PR middle-end/84406
13593	* optabs-query.c (find_widening_optab_handler_and_mode): If from_mode
13594	is a scalar_int_mode, assert that to_mode is a scalar_int_mode with
13595	greater precision.  If to_mode is a MODE_PARTIAL_INT, stop the
13596	search at the associated MODE_INT.
13597
135982018-02-20  Jeff Law  <law@redhat.com>
13599
13600	PR middle-end/82123
13601	PR tree-optimization/81592
13602	PR middle-end/79257
13603	* gimple-ssa-sprintf.c (format_integer): Query EVRP range analyzer
13604	for range data rather than using global data.
13605	* gimple-ssa-sprintf.c (get_int_range): Query EVRP range analyzer for
13606	range data rather than using global data.
13607	* gimple-ssa-sprintf.c (get_int_range): Accept vr_values parameter
13608	pass it to children as needed.
13609	(struct directive::fmtresult): Similarly.
13610	(struct directive::set_width): Similarly.
13611	(struct directive::set_precision): Similarly.
13612	(format_integer, format_directive, parse_directive): Similarly.
13613	(format_none): Accept unnamed vr_values parameter.
13614	(format_percent, format_floating, format_character): Similarly.
13615	(format_string, format_plain): Similarly.
13616	* gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Query
13617	the EVRP range analyzer for range data rather than using global data.
13618	* gimple-ssa-sprintf.c: Include alloc-pool.h, vr-values.h and
13619	gimple-ssa-evrp-analyze.h
13620	(class sprintf_dom_walker): Add after_dom_children member function.
13621	Add evrp_range_analyzer member.
13622	(sprintf_dom_walker::before_dom_children): Call into the EVRP
13623	range analyzer as needed.
13624	(sprintf_dom_walker::after_dom_children): New member function.
13625	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing
13626	if not optimizing.
13627	(evrp_range_analyzer::record_ranges_from_stmt): Likewise.
13628	(evrp_range_analyzer::pop_to_marker): Likewise.
13629
136302018-02-20  Richard Sandiford  <richard.sandiford@linaro.org>
13631
13632	PR tree-optimization/84419
13633	* internal-fn.c (expand_call_mem_ref): Create a TARGET_MEM_REF
13634	with the required type if its current type is compatible but
13635	different.
13636
136372018-02-20  Jakub Jelinek  <jakub@redhat.com>
13638
13639	PR middle-end/82004
13640	* match.pd (pow(C,x) -> exp(log(C)*x)): Delay all folding until
13641	after vectorization.
13642
136432018-02-20  Martin Liska  <mliska@suse.cz>
13644
13645	PR driver/83193
13646	* config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): Print
13647	possible values if we don't have a hint.
13648
136492018-02-20  Martin Liska  <mliska@suse.cz>
13650
13651	PR c/84310
13652	PR target/79747
13653	* final.c (shorten_branches): Build align_tab array with one
13654	more element.
13655	* opts.c (finish_options): Add alignment option limit check.
13656	(MAX_CODE_ALIGN): Likewise.
13657	(MAX_CODE_ALIGN_VALUE): Likewise.
13658	* doc/invoke.texi: Document maximum allowed option value for
13659	all -falign-* options.
13660
136612018-02-19  Jakub Jelinek  <jakub@redhat.com>
13662
13663	PR target/84146
13664	* reg-notes.def (REG_CALL_ARG_LOCATION): New reg note.
13665	* insn-notes.def (NOTE_INSN_CALL_ARG_LOCATION): Remove.
13666	* var-tracking.c (emit_note_insn_var_location): Remove all references
13667	to NOTE_INSN_CALL_ARG_LOCATION.
13668	(emit_notes_in_bb): Emit arguments as REG_CALL_ARG_LOCATION note on
13669	the CALL_INSN rather than separate NOTE_INSN_CALL_ARG_LOCATION note.
13670	Use copy_rtx_if_shared.
13671	* dwarf2out.c (gen_subprogram_die): Use XEXP with 0 instead of
13672	NOTE_VAR_LOCATION on ca_loc->call_arg_loc_note.
13673	(dwarf2out_var_location): Remove handling of
13674	NOTE_INSN_CALL_ARG_LOCATION, instead handle REG_CALL_ARG_LOCATION note
13675	on call_insn.
13676	* final.c (final_scan_insn): Remove all references to
13677	NOTE_INSN_CALL_ARG_LOCATION.
13678	(rest_of_clean_state): Likewise.  Remove REG_CALL_ARG_LOCATION notes
13679	before dumping final insns.
13680	* except.c (emit_note_eh_region_end): Remove all references to
13681	NOTE_INSN_CALL_ARG_LOCATION.
13682	* config/alpha/alpha.c (alpha_pad_function_end): Likewise.
13683	* config/c6x/c6x.c (c6x_gen_bundles): Likewise.
13684	* config/arc/arc.c (hwloop_optimize): Likewise.
13685	* config/arm/arm.c (create_fix_barrier): Likewise.
13686	* config/s390/s390.c (s390_chunkify_start): Likewise.
13687	* config/sh/sh.c (find_barrier): Likewise.
13688	* config/i386/i386.c (rest_of_insert_endbranch,
13689	ix86_seh_fixup_eh_fallthru): Likewise.
13690	* config/xtensa/xtensa.c (hwloop_optimize): Likewise.
13691	* config/iq2000/iq2000.c (final_prescan_insn): Likewise.
13692	* config/frv/frv.c (frv_function_prologue): Likewise.
13693	* emit-rtl.c (try_split): Likewise.  Copy over REG_CALL_ARG_LOCATION
13694	reg note.
13695	(note_outside_basic_block_p): Remove all references to
13696	NOTE_INSN_CALL_ARG_LOCATION.
13697	* gengtype.c (adjust_field_rtx_def): Likewise.
13698	* print-rtl.c (rtx_writer::print_rtx_operand_code_0, print_insn):
13699	Likewise.
13700	* jump.c (cleanup_barriers, delete_related_insns): Likewise.
13701	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
13702
13703	PR c++/84444
13704	* builtins.c (builtin_mathfn_code): Don't check if CALL_EXPR_FN (t)
13705	is ADDR_EXPR.
13706
13707	PR tree-optimization/84452
13708	* tree-vect-patterns.c (vect_recog_pow_pattern): Don't call
13709	expand_simd_clones if targetm.simd_clone.compute_vecsize_and_simdlen
13710	is NULL.
13711
137122018-02-19  Martin Liska  <mliska@suse.cz>
13713
13714	PR sanitizer/82183
13715	* passes.def: Put pass_sancov_O0 before pass_lower_switch with -O0.
13716
137172018-02-19  Martin Liska  <mliska@suse.cz>
13718	    Richard Sandiford  <richard.sandiford@linaro.org>
13719
13720	PR tree-optimization/82491
13721	* gimple-fold.c (get_base_constructor): Make earlier bail out
13722	to prevent ubsan.
13723
137242018-02-19  Carl Love  <cel@us.ibm.com>
13725
13726	* config/rs6000/rs6000-builtin.def: Change NEG macro expansions from
13727	BU_ALTIVEC_A to BU_P8V_AV_1 and BU_ALTIVEC_OVERLOAD_1 to
13728	BU_P8V_OVERLOAD_1.
13729	* config/rs6000/rs6000-c.c: Change ALTIVEC_BUILTIN_VEC_NEG to
13730	P8V_BUILTIN_VEC_NEG.
13731
137322018-02-19  Sebastian Perta  <sebastian.perta@renesas.com>
13733
13734	* config/rl78/rl78.md (movdf): New define expand.
13735
137362018-02-19  Martin Liska  <mliska@suse.cz>
13737
13738	PR other/80589
13739	* doc/invoke.texi: Fix typo.
13740	* params.def (PARAM_MAX_LOOP_HEADER_INSNS): Likewise.
13741
137422018-02-18  Segher Boessenkool  <segher@kernel.crashing.org>
13743
13744	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13745	handle rs6000_single_float and rs6000_double_float specially for
13746	e500 family CPUs.
13747
137482018-02-16  Jeff Law  <law@redhat.com>
13749
13750	* config/rx/rx.c (add_pop_cfi_notes): New function.;
13751	(pop_regs): Use it.
13752
137532018-02-16  Jakub Jelinek  <jakub@redhat.com>
13754
13755	PR ipa/84425
13756	* ipa-inline.c (inline_small_functions): Fix a typo.
13757
137582018-02-16  Nathan Sidwell  <nathan@acm.org>
13759
13760	* doc/extend.texi (Backwards Compatibility): Americanize 'behaviour'.
13761
137622018-02-16  Carl Love  <cel@us.ibm.com>
13763
13764	* config/rs6000/rs6000-builtin.def: Add BU_P8V_VSX_2 macro definition.
13765	Change FLOAT2 expansions from BU_VSX_2 to BU_P8V_VSX_2 and
13766	from BU_VSX_OVERLOAD_2 to BU_P8V_OVERLOAD_2.
13767	* config/rs6000/rs6000-c.c: Changed macro VSX_BUILTIN_VEC_FLOAT2
13768	expansion to P8V_BUILTIN_VEC_FLOAT2.
13769
137702018-02-16  Vladimir Makarov  <vmakarov@redhat.com>
13771
13772	PR rtl-optimization/70023
13773	* lra-constraints.c (inherit_in_ebb): Take hard reg mode of
13774	src_regno into account.
13775
137762018-02-16  Carl Love  <cel@us.ibm.com>
13777
13778	* config/rs6000/altivec.h: Remove vec_vextract4b and vec_vinsert4b.
13779	* config/rs6000/rs6000-builtin.def: Remove macro expansion for
13780	VEXTRACT4B, VINSERT4B, VINSERT4B_DI and VEXTRACT4B.
13781	* config/rs6000/rs6000.c: Remove case statements for
13782	P9V_BUILTIN_VEXTRACT4B, P9V_BUILTIN_VEC_VEXTRACT4B,
13783	P9V_BUILTIN_VINSERT4B, P9V_BUILTIN_VINSERT4B_DI,
13784	and P9V_BUILTIN_VEC_VINSERT4B.
13785	* config/rs6000/rs6000-c.c (altivec_expand_builtin): Remove entries for
13786	P9V_BUILTIN_VEC_VEXTRACT4B and P9V_BUILTIN_VEC_VINSERT4B.
13787	* config/rs6000/vsx.md:
13788	* doc/extend.texi: Remove vec_vextract4b, non ABI definitions for
13789	vec_insert4b.
13790
137912018-02-16  Carl Love  <cel@us.ibm.com>
13792
13793	* config/rs6000/altivec.h: Add builtin names vec_extract4b
13794	vec_insert4b.
13795	* config/rs6000/rs6000-builtin.def: Add INSERT4B and EXTRACT4B
13796	definitions.
13797	* config/rs6000/rs6000-c.c: Add the definitions for
13798	P9V_BUILTIN_VEC_EXTRACT4B and P9V_BUILTIN_VEC_INSERT4B.
13799	* config/rs6000/rs6000.c (altivec_expand_builtin): Add
13800	P9V_BUILTIN_EXTRACT4B and P9V_BUILTIN_INSERT4B case statements.
13801	* config/rs6000/vsx.md: Add define_insn extract4b.  Add define_expand
13802	definition for insert4b and define insn *insert3b_internal.
13803	* doc/extend.texi: Add documentation for vec_extract4b.
13804
138052018-02-16  Nathan Sidwell  <nathan@acm.org>
13806
13807	* doc/extend.texi (Backwards Compatibility): Mention friend
13808	injection.  Note for-scope is deprecated.
13809	* doc/invoke.texi (-ffriend-injection): Deprecate.
13810
138112018-02-16  Segher Boessenkool  <segher@kernel.crashing.org>
13812
13813	* combine.c (try_combine): When adjusting LOG_LINKS for the destination
13814	that moved to I2, also allow destinations that are a paradoxical
13815	subreg (instead of a normal reg).
13816
138172018-02-16  Oleg Endo  <olegendo@gcc.gnu.org>
13818
13819	PR target/83831
13820	* config/rx/rx.c (rx_fuse_in_memory_bitop): Convert shift operand
13821	to QImode.
13822
138232018-02-16  Richard Biener  <rguenther@suse.de>
13824
13825	PR tree-optimization/84037
13826	PR tree-optimization/84016
13827	PR target/82862
13828	* config/i386/i386.c (ix86_builtin_vectorization_cost):
13829	Adjust vec_construct for the fact we need additional higher latency
13830	128bit inserts for AVX256 and AVX512 vector builds.
13831	(ix86_add_stmt_cost): Scale vector construction cost for
13832	elementwise loads.
13833
138342018-02-16  Richard Biener  <rguenther@suse.de>
13835
13836	PR tree-optimization/84417
13837	* tree-ssa.c (non_rewritable_mem_ref_base): Properly constrain
13838	the MEM_REF offset when conversion to BIT_FIELD_REF is desired.
13839	(non_rewritable_lvalue_p): Likewise, use poly-ints.
13840
138412018-02-16  Martin Liska  <mliska@suse.cz>
13842
13843	PR sanitizer/84307
13844	* internal-fn.def (ASAN_CHECK): Set proper flags.
13845	(ASAN_MARK): Likewise.
13846
138472018-02-16  Julia Koval  <julia.koval@intel.com>
13848
13849	* config/i386/i386.c (ix86_option_override_internal): Remove PTA_CLWB
13850	from PTA_CANNONLAKE.
13851
138522018-02-16  Jakub Jelinek  <jakub@redhat.com>
13853
13854	PR target/84272
13855	* config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest):
13856	Use ++iter rather than iter++ for std::list iterators.
13857	(func_fma_steering::dfs): Likewise.  Don't delete nodes right away,
13858	defer deleting them until all nodes in the forest are processed.  Do
13859	free even leaf nodes.  Change to_process into auto_vec.
13860
13861	PR bootstrap/84405
13862	* system.h (BROKEN_VALUE_INITIALIZATION): Define for GCC < 4.3.
13863	* vec.h (vec_default_construct): Use memset instead of placement new
13864	if BROKEN_VALUE_INITIALIZATION is defined.
13865	* hash-table.h (hash_table<Descriptor, Allocator>::empty_slow): Use
13866	memset instead of value initialization if BROKEN_VALUE_INITIALIZATION
13867	is defined.
13868
13869	PR rtl-optimization/83723
13870	* lra-int.h (lra_substitute_pseudo): Add DEBUG_P argument.
13871	* lra.c (lra_substitute_pseudo): Likewise.  If true, use
13872	gen_rtx_raw_SUBREG instead of gen_rtx_SUBREG.  Pass DEBUG_P to
13873	recursive calls.
13874	(lra_substitute_pseudo_within_insn): Adjust lra_substitute_pseudo
13875	callers.
13876	* lra-constraints.c (inherit_reload_reg, split_reg): Likewise.
13877
138782018-02-16  Eric Botcazou  <ebotcazou@adacore.com>
13879
13880	PR rtl-optimization/81443
13881	* rtlanal.c (num_sign_bit_copies1) <SUBREG>: Do not propagate results
13882	from inner REGs to paradoxical SUBREGs.
13883
138842018-02-16  Richard Biener  <rguenther@suse.de>
13885
13886	PR tree-optimization/84399
13887	* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
13888	For operands we can analyze at their definition make sure we can
13889	analyze them at each use as well.
13890
138912018-02-16  Richard Biener  <rguenther@suse.de>
13892
13893	PR tree-optimization/84190
13894	* tree-ssa.c (non_rewritable_mem_ref_base): Do not touch
13895	volatile accesses if the decl isn't volatile.
13896
138972018-02-15  Jason Merrill  <jason@redhat.com>
13898
13899	PR c++/84314 - ICE with templates and fastcall attribute.
13900	* attribs.c (build_type_attribute_qual_variant): Don't clobber
13901	TYPE_CANONICAL on an existing type.
13902
139032018-02-15  Jakub Jelinek  <jakub@redhat.com>
13904
13905	PR tree-optimization/84383
13906	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Don't look at
13907	dstoff nor call operand_equal_p if dstbase is NULL.
13908
13909	PR tree-optimization/84334
13910	* match.pd ((A +- CST1) +- CST2 -> A + CST3): If A is
13911	also a CONSTANT_CLASS_P, punt.
13912
139132018-02-14  Jim Wilson  <jimw@sifive.com>
13914
13915	* config/riscv/riscv.c (riscv_first_stack_step): Move locals after
13916	first SMALL_OPERAND check.  New local min_second_step.  Move assert
13917	to where locals are set.  Add TARGET_RVC support.
13918	* config/riscv/riscv.h (C_SxSP_BITS, SWSP_REACH, SDSP_REACH): New.
13919
139202018-02-14  Indu Bhagat  <indu.bhagat@oracle.com>
13921
13922	* doc/invoke.texi: Correct -Wformat-overflow code sample.
13923
139242018-02-14  Martin Sebor  <msebor@redhat.com>
13925
13926	PR tree-optimization/83698
13927	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For
13928	arrays constrain the offset range to their bounds.
13929	(builtin_access::strcat_overlap): Adjust the bounds of overlap offset.
13930	(builtin_access::overlap): Avoid setting the size of overlap if it's
13931	already been set.
13932	(maybe_diag_overlap): Also consider arrays when deciding what values
13933	of offsets to include in diagnostics.
13934
139352018-02-14  Martin Sebor  <msebor@redhat.com>
13936
13937	PR c/84108
13938	* attribs.c (diag_attr_exclusions): Consider the exclusion(s)
13939	that correspond to the kind of a declaration.
13940
139412018-02-14  John David Anglin  <danglin@gcc.gnu.org>
13942
13943	PR target/83984
13944	* config/pa/pa.md: Load address of PIC label using the linkage table
13945	if the label is nonlocal.
13946
139472018-02-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13948
13949	* config/rs6000/rs6000.c (rs6000_option_override_internal): Issue
13950	warning message if user requests -maltivec=be.
13951	* doc/invoke.texi: Document deprecation of -maltivec=be.
13952
139532018-02-14  Will Schmidt  <will_schmidt@vnet.ibm.com>
13954
13955	PR target/84220
13956	* config/rs6000/rs6000-c.c: Update definitions for
13957	ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SLDW,
13958	VEC_XXSLDWI and ALTIVEC_BUILTIN_VEC_XXPERMDI builtins.
13959
139602018-02-14  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
13961
13962	PR target/84239
13963	* config/i386/cetintrin.h: Remove _rdssp[d|q] and
13964	add _get_ssp intrinsics. Remove argument from
13965	__builtin_ia32_rdssp[d|q].
13966	* config/i386/i386-builtin-types.def: Add UINT_FTYPE_VOID.
13967	* config/i386/i386-builtin.def: Remove argument from
13968	__builtin_ia32_rdssp[d|q].
13969	* config/i386/i386.c: Use UINT_FTYPE_VOID. Use
13970	ix86_expand_special_args_builtin for _rdssp[d|q].
13971	* config/i386/i386.md: Remove argument from rdssp[si|di] insn.
13972	Clear register before usage.
13973	* doc/extend.texi: Remove argument from __builtin_ia32_rdssp[d|q].
13974	Add documentation for new _get_ssp and _inc_ssp intrinsics.
13975
139762018-02-14  Richard Sandiford  <richard.sandiford@linaro.org>
13977
13978	PR tree-optimization/84357
13979	* tree-data-ref.c (object_address_invariant_in_loop_p): Check
13980	operand 1 of an ARRAY_REF too.
13981
139822018-02-14  Oleg Endo  <olegendo@gcc.gnu.org>
13983
13984	PR target/83831
13985	* config/rx/rx-protos.h (rx_reg_dead_or_unused_after_insn,
13986	rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New
13987	declarations.
13988	(set_of_reg): New struct.
13989	(rx_find_set_of_reg, rx_find_use_of_reg): New functions.
13990	* config/rx/rx.c (rx_reg_dead_or_unused_after_insn,
13991	rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New
13992	functions.
13993	* config/rx/rx.md (andsi3, iorsi3, xorsi3): Convert to insn_and_split.
13994	Split into bitclr, bitset, bitinvert patterns if appropriate.
13995	(*bitset, *bitinvert, *bitclr): Convert to named insn_and_split and
13996	use rx_fuse_in_memory_bitop.
13997	(*bitset_in_memory, *bitinvert_in_memory, *bitclr_in_memory): Convert
13998	to named insn, correct maximum insn length.
13999
140002018-02-14  Jozef Lawrynowicz  <jozefl.gcc@gmail.com>
14001
14002	PR target/79242
14003	* machmode.def: Define a complex mode for PARTIAL_INT.
14004	* genmodes.c (complex_class): Return MODE_COMPLEX_INT for
14005	MODE_PARTIAL_INT.
14006	* doc/rtl.texi: Document CSPImode.
14007	* config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode
14008	handling.
14009	(msp430_hard_regno_nregs_with_padding): Likewise.
14010
140112018-02-13  Peter Bergner  <bergner@vnet.ibm.com>
14012
14013	PR target/84279
14014	* config/rs6000/rs6000.c (mem_operand_gpr): Disallow altivec addresses.
14015
140162018-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
14017
14018	PR rtl-optimization/84169
14019	* combine.c (try_combine): New variable split_i2i3.  Set it to true if
14020	we generated a parallel as new i3 and we split that to new i2 and i3
14021	instructions.  Handle split_i2i3 similar to swap_i2i3: scan the
14022	LOG_LINKs of i3 to see which of those need to link to i2 now.  Link
14023	those to i2, not i1.  Partially rewrite this scan code.
14024
140252018-02-13  Jakub Jelinek  <jakub@redhat.com>
14026
14027	PR c/82210
14028	* stor-layout.c (place_field): For variable length fields, adjust
14029	offset_align afterwards not just based on the field's alignment,
14030	but also on the size.
14031
14032	PR middle-end/84309
14033	* match.pd (pow(C,x) -> exp(log(C)*x)): Use exp2s and log2s instead
14034	of exps and logs in the use_exp2 case.
14035
140362018-02-13  Jeff Law  <law@redhat.com>
14037
14038	* config/rl/rl78.c (rl78_attribute_table): Fix terminator and
14039	entry for "vector".
14040
14041	* config/rl78/rl78.c (rl78_handle_func_attribute): Mark
14042	ARGS as unused.
14043
140442018-02-13  Alexandre Oliva  <aoliva@redhat.com>
14045
14046	PR debug/84342
14047	PR debug/84319
14048	* common.opt (gas-loc-support, gas-locview-support): New.
14049	(ginline-points, ginternal-reset-location-views): New.
14050	* doc/invoke.texi: Document them.  Use @itemx where intended.
14051	(gvariable-location-views): Adjust.
14052	* target.def (reset_location_view): New.
14053	* doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New.
14054	(TARGET_RESET_LOCATION_VIEW): New.
14055	* doc/tm.texi: Rebuilt.
14056	* dwarf2out.c (dwarf2out_default_as_loc_support): New.
14057	(dwarf2out_default_as_locview_support): New.
14058	(output_asm_line_debug_info): Use option variables.
14059	(dwarf2out_maybe_output_loclist_view_pair): Likewise.
14060	(output_loc_list): Likewise.
14061	(add_high_low_attributes): Check option variables.
14062	Don't output entry view attribute in strict mode.
14063	(gen_inlined_subroutine_die): Check option variables.
14064	(dwarf2out_inline_entry): Likewise.
14065	(init_sections_and_labels): Likewise.
14066	(dwarf2out_early_finish): Likewise.
14067	(maybe_reset_location_view): New, from...
14068	(dwarf2out_var_location): ... here.  Call it.
14069	* debug.h (dwarf2out_default_as_loc_support): Declare.
14070	(dwarf2out_default_as_locview_support): Declare.
14071	* hooks.c (hook_int_rtx_insn_0): New.
14072	* hooks.h (hook_int_rtx_insn_0): Declare.
14073	* toplev.c (process_options): Take -gas-loc-support and
14074	-gas-locview-support from dwarf2out.  Enable
14075	-gvariable-location-views by default only with locview
14076	assembler support.  Enable -ginternal-reset-location-views by
14077	default only if the target defines the corresponding hook.
14078	Enable -ginline-points by default if location views are
14079	enabled; force it disabled if statement frontiers are
14080	disabled.
14081	* tree-inline.c (expand_call_inline): Check option variables.
14082	* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
14083
140842018-02-13  Richard Sandiford  <richard.sandiford@linaro.org>
14085
14086	PR tree-optimization/84321
14087	* tree-vrp.c (intersect_range_with_nonzero_bits): Fix VR_ANTI_RANGE
14088	handling.  Also check whether the anti-range contains any values
14089	that satisfy the mask; switch to a VR_RANGE if not.
14090
140912018-02-13  Paolo Bonzini  <bonzini@gnu.org>
14092
14093	PR sanitizer/84340
14094	* internal-fn.def (ASAN_CHECK, ASAN_MARK): Revert changes to fnspec.
14095
140962018-02-13  Martin Jambor  <mjambor@suse.cz>
14097
14098	PR c++/83990
14099	* ipa-param-manipulation.c (ipa_modify_call_arguments): Use location
14100	of call statements, also set location of a load to a temporary.
14101
141022018-02-13  Sebastian Perta  <sebastian.perta@renesas.com>
14103
14104	* config/rl78/rl78.c (add_vector_labels): New function.
14105	* config/rl78/rl78.c (rl78_handle_vector_attribute): New function.
14106	* config/rl78/rl78.c (rl78_start_function): Call add_vector_labels.
14107	* config/rl78/rl78.c (rl78_handle_func_attribute): Removed the assert
14108	which checks that no arguments are passed.
14109	* config/rl78/rl78.c (rl78_attribute_table): Add "vector" attribute.
14110	* doc/extend.texi: Documentation for the new attribute.
14111
141122018-02-13  Andreas Schwab  <schwab@suse.de>
14113
14114	* config/riscv/linux.h (CPP_SPEC): Define.
14115
141162018-02-13  Jakub Jelinek  <jakub@redhat.com>
14117
14118	PR target/84335
14119	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Pass
14120	OPTION_MASK_ISA_AES | OPTION_MASK_ISA_SSE2 instead of
14121	OPTION_MASK_ISA_AES as first argument to def_builtin_const
14122	for AES builtins.  Pass OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2
14123	instead of OPTION_MASK_ISA_PCLMUL as first argument to
14124	def_builtin_const for __builtin_ia32_pclmulqdq128 builtin.
14125	* config/i386/wmmintrin.h: If __SSE2__ is not defined, enable it
14126	temporarily for AES and PCLMUL builtins.
14127
14128	PR tree-optimization/84339
14129	* gimple-fold.c (get_range_strlen): Set *FLEXP to true when handling
14130	ARRAY_REF where first operand is array_at_struct_end_p COMPONENT_REF.
14131	Formatting fixes.
14132
14133	PR middle-end/84309
14134	* match.pd (pow(C,x) -> exp(log(C)*x)): Optimize instead into
14135	exp2(log2(C)*x) if C is a power of 2 and c99 runtime is available.
14136	* generic-match-head.c (canonicalize_math_after_vectorization_p): New
14137	inline function.
14138	* gimple-match-head.c (canonicalize_math_after_vectorization_p): New
14139	inline function.
14140	* omp-simd-clone.h: New file.
14141	* omp-simd-clone.c: Include omp-simd-clone.h.
14142	(expand_simd_clones): No longer static.
14143	* tree-vect-patterns.c: Include fold-const-call.h, attribs.h,
14144	cgraph.h and omp-simd-clone.h.
14145	(vect_recog_pow_pattern): Optimize pow(C,x) to exp(log(C)*x).
14146	(vect_recog_widen_shift_pattern): Formatting fix.
14147	(vect_pattern_recog_1): Don't check optab for calls.
14148
14149	PR target/84336
14150	* config/i386/sse.md (<avx512>_vpermi2var<mode>3_mask): Force
14151	operands[2] into a REG before using gen_lowpart on it.
14152
141532018-02-12  Jeff Law  <law@redhat.com>
14154
14155	PR target/83760
14156	* config/sh/sh.c (find_barrier): Consider a sibling call
14157	a barrier as well.
14158
14159	* cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when
14160	successfully back substituting a reg.
14161
141622018-02-12  Richard Biener  <rguenther@suse.de>
14163
14164	PR tree-optimization/84037
14165	* tree-vect-slp.c (vect_analyze_slp_cost): Add visited
14166	parameter, move visited init to caller.
14167	(vect_slp_analyze_operations): Separate cost from validity
14168	check, initialize visited once for all instances.
14169	(vect_schedule_slp): Analyze map to CSE vectorized nodes once
14170	for all instances.
14171	* tree-vect-stmts.c (vect_model_simple_cost): Make early
14172	out an assert.
14173	(vect_model_promotion_demotion_cost): Likewise.
14174	(vectorizable_bswap): Guard cost modeling with !slp_node
14175	instead of !PURE_SLP_STMT to avoid double-counting on hybrid
14176	SLP stmts.
14177	(vectorizable_call): Likewise.
14178	(vectorizable_conversion): Likewise.
14179	(vectorizable_assignment): Likewise.
14180	(vectorizable_shift): Likewise.
14181	(vectorizable_operation): Likewise.
14182	(vectorizable_store): Likewise.
14183	(vectorizable_load): Likewise.
14184	(vectorizable_condition): Likewise.
14185	(vectorizable_comparison): Likewise.
14186
141872018-02-12  Paolo Bonzini  <bonzini@gnu.org>
14188
14189	PR sanitizer/84307
14190	* internal-fn.def (ASAN_CHECK): Fix fnspec to account for return value.
14191	(ASAN_MARK): Fix fnspec to account for return value, change pointer
14192	argument from 'R' to 'W' so that the pointed-to datum is clobbered.
14193
141942018-02-08  Jan Hubicka  <hubicka@ucw.cz>
14195
14196	PR middle-end/83665
14197	* params.def (inline-min-speedup): Increase from 8 to 15.
14198	(max-inline-insns-auto): Decrease from 40 to 30.
14199	* ipa-split.c (consider_split): Add some buffer for function to
14200	be considered inlining candidate.
14201	* invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate
14202	default values.
14203
142042018-02-12  Richard Biener  <rguenther@suse.de>
14205
14206	PR tree-optimization/84037
14207	* tree-vect-slp.c (vect_build_slp_tree_2): Try swapping the
14208	matched stmts if we cannot swap the non-matched ones.
14209
142102018-02-12  Olga Makhotina  <olga.makhotina@intel.com>
14211
14212	* config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd,
14213	_mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss,
14214	_mm_maskz_scalef_round_ss): New intrinsics.
14215	(__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix.
14216	* config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round,
14217	__builtin_ia32_scalefss_round): Remove.
14218	(__builtin_ia32_scalefsd_mask_round,
14219	__builtin_ia32_scalefss_mask_round): New intrinsics.
14220	* config/i386/sse.md (vmscalef<mode><round_name>): Renamed to ...
14221	(vmscalef<mode><mask_scalar_name><round_scalar_name>): ... this.
14222	((match_operand:VF_128 2 "<round_nimm_predicate>"
14223	"<round_constraint>")): Changed to ...
14224	((match_operand:VF_128 2 "<round_scalar_nimm_predicate>"
14225	"<round_scalar_constraint>")): ... this.
14226	("vscalef<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|
14227	%0, %1, %2<round_op3>}"): Changed to ...
14228	("vscalef<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%2, %1,
14229	%0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1,
14230	%2<round_scalar_mask_op3>}"): ... this.
14231	* config/i386/subst.md (round_scalar_nimm_predicate): New.
14232
142332018-02-12  Olga Makhotina  <olga.makhotina@intel.com>
14234
14235	* config/i386/avx512fintrin.h (_mm_mask_sqrt_round_sd)
14236	(_mm_maskz_sqrt_round_sd, _mm_mask_sqrt_round_ss)
14237	(_mm_maskz_sqrt_round_ss): New intrinsics.
14238	(__builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round): Remove.
14239	(__builtin_ia32_sqrtsd_mask_round)
14240	(__builtin_ia32_sqrtss_mask_round): New builtins.
14241	* config/i386/i386-builtin.def (__builtin_ia32_sqrtsd_round)
14242	(__builtin_ia32_sqrtss_round): Remove.
14243	(__builtin_ia32_sqrtsd_mask_round)
14244	(__builtin_ia32_sqrtss_mask_round): New builtins.
14245	* config/i386/sse.md (vmsqrt<mode>2<round_name>): Renamed to ...
14246	(vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): ... this.
14247	((match_operand:VF_128 1 "vector_operand"
14248	"xBm,<round_constraint>")): Changed to ...
14249	((match_operand:VF_128 1 "vector_operand"
14250	"xBm,<round_scalar_constraint>")): ... this.
14251	(vsqrt<ssescalarmodesuffix>\t{<round_op3>%1, %2, %0|
14252	%0, %2, %<iptr>1<round_op3>}): Changed to ...
14253	(vsqrt<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%1, %2,
14254	%0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %2,
14255	%<iptr>1<round_scalar_mask_op3>}): ... this.
14256	((set_attr "prefix" "<round_prefix>")): Changed to ...
14257	((set_attr "prefix" "<round_scalar_prefix>")): ... this.
14258
142592018-02-11  Steven Munroe  <munroesj@gcc.gnu.org>
14260
14261	PR target/84266
14262	* config/rs6000/mmintrin.h (_mm_cmpeq_pi32 [_ARCH_PWR9]):
14263	Cast vec_cmpeq result to correct type.
14264	* config/rs6000/mmintrin.h (_mm_cmpgt_pi32 [_ARCH_PWR9]):
14265	Cast vec_cmpgt result to correct type.
14266
142672018-02-11  Alexandre Oliva  <aoliva@redhat.com>
14268
14269	* final.c (final_scan_insn_1): Renamed from...
14270	(final_scan_insn): ... this.  New wrapper, to recover
14271	seen from the outermost call in recursive ones.
14272	* config/sparc/sparc.c (output_return): Drop seen from call.
14273	(output_sibcall): Likewise.
14274	* config/visium/visium.c (output_branch): Likewise.
14275
142762018-02-10  John David Anglin  <danglin@gcc.gnu.org>
14277
14278	* config/pa/pa.c (hppa_profile_hook): Mark SYMBOL_REF for _mcount as
14279	function label.
14280
142812018-02-10  Alan Modra  <amodra@gmail.com>
14282
14283	PR target/84300
14284	* config/rs6000/rs6000.md (split_stack_return): Remove (use ..).
14285	Specify LR as an input.
14286
142872018-02-10  Jakub Jelinek  <jakub@redhat.com>
14288
14289	PR sanitizer/83987
14290	* omp-low.c (maybe_remove_omp_member_access_dummy_vars,
14291	remove_member_access_dummy_vars): New functions.
14292	(lower_omp_for, lower_omp_taskreg, lower_omp_target,
14293	lower_omp_1, execute_lower_omp): Use them.
14294
14295	PR rtl-optimization/84308
14296	* shrink-wrap.c (spread_components): Release todo vector.
14297
142982018-02-09  Vladimir Makarov  <vmakarov@redhat.com>
14299
14300	PR rtl-optimization/57193
14301	* ira-color.c (struct allocno_color_data): Add member
14302	conflict_allocno_hard_prefs.
14303	(update_conflict_allocno_hard_prefs): New.
14304	(bucket_allocno_compare_func): Add a preference based on
14305	conflict_allocno_hard_prefs.
14306	(push_allocno_to_stack): Update conflict_allocno_hard_prefs.
14307	(color_allocnos): Remove a dead code.  Initiate
14308	conflict_allocno_hard_prefs.  Call update_costs_from_prefs.
14309
143102018-02-09  Jakub Jelinek  <jakub@redhat.com>
14311
14312	PR target/84226
14313	* config/rs6000/vsx.md (p9_xxbrq_v16qi): Change input operand
14314	constraint from =wa to wa.  Avoid a subreg on the output operand,
14315	instead use a pseudo and subreg it in a move.
14316	(p9_xxbrd_<mode>): Changed to ...
14317	(p9_xxbrd_v2di): ... this insn, without VSX_D iterator.
14318	(p9_xxbrd_v2df): New expander.
14319	(p9_xxbrw_<mode>): Changed to ...
14320	(p9_xxbrw_v4si): ... this insn, without VSX_W iterator.
14321	(p9_xxbrw_v4sf): New expander.
14322
143232018-02-09  Sebastian Perta  <sebastian.perta@renesas.com>
14324
14325	* config/rx/rx.md (movsicc): Update expander to be matched by GCC.
14326
143272018-02-09  Peter Bergner  <bergner@vnet.ibm.com>
14328
14329	PR target/83926
14330	* config/rs6000/vsx.md (vsx_mul_v2di): Handle generating a 64-bit
14331	multiply in 32-bit mode.
14332	(vsx_div_v2di): Handle generating a 64-bit signed divide in 32-bit mode.
14333	(vsx_udiv_v2di): Handle generating a 64-bit unsigned divide in 32-bit
14334	mode.
14335
143362018-02-09  Sebastian Perta  <sebastian.perta@renesas.com>
14337
14338	* config/rx/constraints.md (CALL_OP_SYMBOL_REF): Added new constraint
14339	to allow or block "symbol_ref" depending on the value of TARGET_JSR.
14340	* config/rx/rx.md (call_internal): Use CALL_OP_SYMBOL_REF.
14341	* config/rx/rx.md (call_value_internal): Use CALL_OP_SYMBOL_REF.
14342
143432018-02-09  Pierre-Marie de Rodat  <derodat@adacore.com>
14344
14345	PR lto/84213
14346	* dwarf2out.c (is_trivial_indirect_ref): New function.
14347	(dwarf2out_late_global_decl): Do not generate a location
14348	attribute for variables that have a non-trivial DECL_VALUE_EXPR
14349	and that are not defined in the current unit.
14350
143512018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
14352
14353	* optabs.c (prepare_cmp_insn): Try harder to emit a direct comparison
14354	instead of a libcall for UNORDERED.
14355
143562018-02-09  Tamar Christina  <tamar.christina@arm.com>
14357
14358	PR target/82641
14359	* config/arm/arm-c.c (arm_cpu_builtins): Un-define __ARM_FEATURE_LDREX,
14360	__ARM_ARCH_PROFILE, __ARM_ARCH_ISA_THUMB, __ARM_FP and __ARM_NEON_FP.
14361
143622018-02-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14363
14364	PR target/PR84295
14365	* config/s390/s390.c (s390_set_current_function): Invoke
14366	s390_indirect_branch_settings also if fndecl didn't change.
14367
143682018-02-09  Alexandre Oliva  <aoliva@redhat.com>
14369
14370	* config/rs6000/rs6000.md (blockage): Set length to zero.
14371
143722018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
14373
14374	* expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion.
14375
143762018-02-09  Jakub Jelinek  <jakub@redhat.com>
14377
14378	PR sanitizer/84285
14379	* gcc.c (STATIC_LIBASAN_LIBS, STATIC_LIBTSAN_LIBS,
14380	STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): Handle -static like
14381	-static-lib*san.
14382
14383	PR debug/84252
14384	* var-tracking.c (vt_add_function_parameter): Punt for non-onepart
14385	PARALLEL incoming that failed vt_get_decl_and_offset check.
14386
14387	PR middle-end/84237
14388	* output.h (bss_initializer_p): Add NAMED argument, defaulted to false.
14389	* varasm.c (bss_initializer_p): Add NAMED argument, if true, ignore
14390	TREE_READONLY bit.
14391	(get_variable_section): For decls in named .bss* sections pass true as
14392	second argument to bss_initializer_p.
14393
143942018-02-09  Marek Polacek  <polacek@redhat.com>
14395	    Jakub Jelinek  <jakub@redhat.com>
14396
14397	PR c++/83659
14398	* fold-const.c (fold_indirect_ref_1): Use VECTOR_TYPE_P macro.
14399	Formatting fixes.  Verify first that tree_fits_poly_int64_p (op01).
14400	Sync some changes from cxx_fold_indirect_ref.
14401
144022018-02-09  Alexandre Oliva  <aoliva@redhat.com>
14403
14404	* cfgexpand.c (expand_gimple_basic_block): Handle inline entry
14405	markers.
14406	* dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook.
14407	(BLOCK_INLINE_ENTRY_LABEL): New.
14408	(dwarf2out_var_location): Disregard inline entry markers.
14409	(inline_entry_data): New struct.
14410	(inline_entry_data_hasher): New hashtable type.
14411	(inline_entry_data_hasher::hash): New.
14412	(inline_entry_data_hasher::equal): New.
14413	(inline_entry_data_table): New variable.
14414	(add_high_low_attributes): Add DW_AT_entry_pc and
14415	DW_AT_GNU_entry_view attributes if a pending entry is found
14416	in inline_entry_data_table.  Add old entry_pc attribute only
14417	if debug nonbinding markers are disabled.
14418	(gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding
14419	markers are enabled.
14420	(block_within_block_p, dwarf2out_inline_entry): New.
14421	(dwarf2out_finish): Check that no entries remained in
14422	inline_entry_data_table.
14423	* final.c (reemit_insn_block_notes): Handle inline entry notes.
14424	(final_scan_insn, notice_source_line): Likewise.
14425	(rest_of_clean_state): Skip inline entry markers.
14426	* gimple-pretty-print.c (dump_gimple_debug): Handle inline entry
14427	markers.
14428	* gimple.c (gimple_build_debug_inline_entry): New.
14429	* gimple.h (enum gimple_debug_subcode): Add
14430	GIMPLE_DEBUG_INLINE_ENTRY.
14431	(gimple_build_debug_inline_entry): Declare.
14432	(gimple_debug_inline_entry_p): New.
14433	(gimple_debug_nonbind_marker_p): Adjust.
14434	* insn-notes.def (INLINE_ENTRY): New.
14435	* print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
14436	inline entry marker notes.
14437	(print_insn): Likewise.
14438	* rtl.h	(NOTE_MARKER_P): Add INLINE_ENTRY support.
14439	(INSN_DEBUG_MARKER_KIND): Likewise.
14440	(GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New.
14441	* tree-inline.c	(expand_call_inline): Build and insert
14442	debug_inline_entry stmt.
14443	* tree-ssa-live.c (remove_unused_scope_block_p): Preserve
14444	inline entry blocks early, if nonbind markers are enabled.
14445	(dump_scope_block): Dump fragment info.
14446	* var-tracking.c (reemit_marker_as_note): Handle inline entry note.
14447	* doc/gimple.texi (gimple_debug_inline_entry_p): New.
14448	(gimple_build_debug_inline_entry): New.
14449	* doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers):
14450	Enable/disable inline entry points too.
14451	* doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New.
14452	(DEBUG_INSN): Describe inline entry markers.
14453
14454	* common.opt (gvariable-location-views): New.
14455	(gvariable-location-views=incompat5): New.
14456	* config.in: Rebuilt.
14457	* configure: Rebuilt.
14458	* configure.ac: Test assembler for view support.
14459	* dwarf2asm.c (dw2_asm_output_symname_uleb128): New.
14460	* dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare.
14461	* dwarf2out.c (var_loc_view): New typedef.
14462	(struct dw_loc_list_struct): Add vl_symbol, vbegin, vend.
14463	(dwarf2out_locviews_in_attribute): New.
14464	(dwarf2out_locviews_in_loclist): New.
14465	(dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists.
14466	(enum dw_line_info_opcode): Add LI_adv_address.
14467	(struct dw_line_info_table): Add view.
14468	(RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros.
14469	(DWARF2_ASM_VIEW_DEBUG_INFO): Define default.
14470	(zero_view_p): New variable.
14471	(ZERO_VIEW_P): New macro.
14472	(output_asm_line_debug_info): New.
14473	(struct var_loc_node): Add view.
14474	(add_AT_view_list, AT_loc_list): New.
14475	(add_var_loc_to_decl): Add view param.  Test it against last.
14476	(new_loc_list): Add view params.  Record them.
14477	(AT_loc_list_ptr): Handle loc and view lists.
14478	(view_list_to_loc_list_val_node): New.
14479	(print_dw_val): Handle dw_val_class_view_list.
14480	(size_of_die): Likewise.
14481	(value_format): Likewise.
14482	(loc_list_has_views): New.
14483	(gen_llsym): Set vl_symbol too.
14484	(maybe_gen_llsym, skip_loc_list_entry): New.
14485	(dwarf2out_maybe_output_loclist_view_pair): New.
14486	(output_loc_list): Output view list or entries too.
14487	(output_view_list_offset): New.
14488	(output_die): Handle dw_val_class_view_list.
14489	(output_dwarf_version): New.
14490	(output_compilation_unit_header): Use it.
14491	(output_skeleton_debug_sections): Likewise.
14492	(output_rnglists, output_line_info): Likewise.
14493	(output_pubnames, output_aranges): Update version comments.
14494	(output_one_line_info_table): Output view numbers in asm comments.
14495	(dw_loc_list): Determine current endview, pass it to new_loc_list.
14496	Call maybe_gen_llsym.
14497	(loc_list_from_tree_1): Adjust.
14498	(add_AT_location_description): Create view list attribute if
14499	needed, check it's absent otherwise.
14500	(convert_cfa_to_fb_loc_list): Adjust.
14501	(maybe_emit_file): Call output_asm_line_debug_info for test.
14502	(dwarf2out_var_location): Reset views as needed.  Precompute
14503	add_var_loc_to_decl args.  Call get_attr_min_length only if we have the
14504	attribute.  Set view.
14505	(new_line_info_table): Reset next view.
14506	(set_cur_line_info_table): Call output_asm_line_debug_info for test.
14507	(dwarf2out_source_line): Likewise.  Output view resets and labels to
14508	the assembler, or select appropriate line info opcodes.
14509	(prune_unused_types_walk_attribs): Handle dw_val_class_view_list.
14510	(optimize_string_length): Catch it.  Adjust.
14511	(resolve_addr): Copy vl_symbol along with ll_symbol.  Handle
14512	dw_val_class_view_list, and remove it if no longer needed.
14513	(hash_loc_list): Hash view numbers.
14514	(loc_list_hasher::equal): Compare them.
14515	(optimize_location_lists): Check whether a view list symbol is
14516	needed, and whether the locview attribute is present, and
14517	whether they match.  Remove the locview attribute if no longer
14518	needed.
14519	(index_location_lists): Call skip_loc_list_entry for test.
14520	(dwarf2out_finish): Call output_asm_line_debug_info for test.
14521	Use output_dwarf_version.
14522	* dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list.
14523	(struct dw_val_node): Add val_view_list.
14524	* final.c (SEEN_NEXT_VIEW): New.
14525	(set_next_view_needed): New.
14526	(clear_next_view_needed): New.
14527	(maybe_output_next_view): New.
14528	(final_start_function): Rename to...
14529	(final_start_function_1): ... this.  Take pointer to FIRST,
14530	add SEEN parameter.  Emit param bindings in the initial view.
14531	(final_start_function): Reintroduce SEEN-less interface.
14532	(final): Rename to...
14533	(final_1): ... this.  Take SEEN parameter.  Output final pending
14534	next view at the end.
14535	(final): Reintroduce seen-less interface.
14536	(final_scan_insn): Output pending next view before switching
14537	sections or ending a block.  Mark the next view as needed when
14538	outputting variable locations.  Notify debug backend of section
14539	changes, and of location view changes.
14540	(rest_of_handle_final): Adjust.
14541	* toplev.c (process_options): Autodetect value for debug variable
14542	location views option.  Warn on incompat5 without -gdwarf-5.
14543	* doc/invoke.texi (gvariable-location-views): New.
14544	(gvariable-location-views=incompat5): New.
14545	(gno-variable-location-views): New.
14546
145472018-02-08  David Malcolm  <dmalcolm@redhat.com>
14548
14549	PR tree-optimization/84136
14550	* tree-cfg.c (find_taken_edge_computed_goto): Remove assertion
14551	that the result of find_edge is non-NULL.
14552
145532018-02-08  Sergey Shalnov  <sergey.shalnov@intel.com>
14554
14555	PR target/83008
14556	* config/i386/x86-tune-costs.h (skylake_cost): Fix cost of
14557	storing integer register in SImode.  Fix cost of 256 and 512
14558	byte aligned SSE register store.
14559
145602018-02-08  Sergey Shalnov  <sergey.shalnov@intel.com>
14561
14562	* config/i386/i386.c (ix86_multiplication_cost): Fix
14563	multiplication cost for TARGET_AVX512DQ.
14564
145652018-02-08  Marek Polacek  <polacek@redhat.com>
14566
14567	PR tree-optimization/84238
14568	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Verify the result of
14569	get_range_strlen.
14570
145712018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
14572
14573	PR tree-optimization/84265
14574	* tree-vect-stmts.c (vectorizable_store): Don't treat
14575	VMAT_CONTIGUOUS accesses as grouped.
14576	(vectorizable_load): Likewise.
14577
145782018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
14579
14580	PR tree-optimization/81635
14581	* wide-int.h (wi::round_down_for_mask, wi::round_up_for_mask): Declare.
14582	* wide-int.cc (wi::round_down_for_mask, wi::round_up_for_mask)
14583	(test_round_for_mask): New functions.
14584	(wide_int_cc_tests): Call test_round_for_mask.
14585	* tree-vrp.h (intersect_range_with_nonzero_bits): Declare.
14586	* tree-vrp.c (intersect_range_with_nonzero_bits): New function.
14587	* tree-data-ref.c (split_constant_offset_1): Use it to refine the
14588	range returned by get_range_info.
14589
145902018-02-08  Jan Hubicka  <hubicka@ucw.cz>
14591
14592	PR ipa/81360
14593	* cgraph.h (symtab_node::output_to_lto_symbol_table_p): Declare
14594	* symtab.c: Include builtins.h
14595	(symtab_node::output_to_lto_symbol_table_p): Move here
14596	from lto-streamer-out.c:output_symbol_p.
14597	* lto-streamer-out.c (write_symbol): Turn early exit to assert.
14598	(output_symbol_p): Move all logic to symtab.c
14599	(produce_symtab): Update.
14600
146012018-02-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14602
14603	* config/s390/s390-opts.h (enum indirect_branch): Define.
14604	* config/s390/s390-protos.h (s390_return_addr_from_memory)
14605	(s390_indirect_branch_via_thunk)
14606	(s390_indirect_branch_via_inline_thunk): Add function prototypes.
14607	(enum s390_indirect_branch_type): Define.
14608	* config/s390/s390.c (struct s390_frame_layout, struct
14609	machine_function): Remove.
14610	(indirect_branch_prez10thunk_mask, indirect_branch_z10thunk_mask)
14611	(indirect_branch_table_label_no, indirect_branch_table_name):
14612	Define variables.
14613	(INDIRECT_BRANCH_NUM_OPTIONS): Define macro.
14614	(enum s390_indirect_branch_option): Define.
14615	(s390_return_addr_from_memory): New function.
14616	(s390_handle_string_attribute): New function.
14617	(s390_attribute_table): Add new attribute handler.
14618	(s390_execute_label): Handle UNSPEC_EXECUTE_JUMP patterns.
14619	(s390_indirect_branch_via_thunk): New function.
14620	(s390_indirect_branch_via_inline_thunk): New function.
14621	(s390_function_ok_for_sibcall): When jumping via thunk disallow
14622	sibling call optimization for non z10 compiles.
14623	(s390_emit_call): Force indirect branch target to be a single
14624	register.  Add r1 clobber for non-z10 compiles.
14625	(s390_emit_epilogue): Emit return jump via return_use expander.
14626	(s390_reorg): Handle JUMP_INSNs as execute targets.
14627	(s390_option_override_internal): Perform validity checks for the
14628	new command line options.
14629	(s390_indirect_branch_attrvalue): New function.
14630	(s390_indirect_branch_settings): New function.
14631	(s390_set_current_function): Invoke s390_indirect_branch_settings.
14632	(s390_output_indirect_thunk_function):  New function.
14633	(s390_code_end): Implement target hook.
14634	(s390_case_values_threshold): Implement target hook.
14635	(TARGET_ASM_CODE_END, TARGET_CASE_VALUES_THRESHOLD): Define target
14636	macros.
14637	* config/s390/s390.h (struct s390_frame_layout)
14638	(struct	machine_function): Move here from s390.c.
14639	(TARGET_INDIRECT_BRANCH_NOBP_RET)
14640	(TARGET_INDIRECT_BRANCH_NOBP_JUMP)
14641	(TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK)
14642	(TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK)
14643	(TARGET_INDIRECT_BRANCH_NOBP_CALL)
14644	(TARGET_DEFAULT_INDIRECT_BRANCH_TABLE)
14645	(TARGET_INDIRECT_BRANCH_THUNK_NAME_EXRL)
14646	(TARGET_INDIRECT_BRANCH_THUNK_NAME_EX)
14647	(TARGET_INDIRECT_BRANCH_TABLE): Define macros.
14648	* config/s390/s390.md (UNSPEC_EXECUTE_JUMP)
14649	(INDIRECT_BRANCH_THUNK_REGNUM): Define constants.
14650	(mnemonic attribute): Add values which aren't recognized
14651	automatically.
14652	("*cjump_long", "*icjump_long", "*basr", "*basr_r"): Disable
14653	pattern for branch conversion.  Fix mnemonic attribute.
14654	("*c<code>", "*sibcall_br", "*sibcall_value_br", "*return"): Emit
14655	indirect branch via thunk if requested.
14656	("indirect_jump", "<code>"): Expand patterns for branch conversion.
14657	("*indirect_jump"): Disable for branch conversion using out of
14658	line thunks.
14659	("indirect_jump_via_thunk<mode>_z10")
14660	("indirect_jump_via_thunk<mode>")
14661	("indirect_jump_via_inlinethunk<mode>_z10")
14662	("indirect_jump_via_inlinethunk<mode>", "*casesi_jump")
14663	("casesi_jump_via_thunk<mode>_z10", "casesi_jump_via_thunk<mode>")
14664	("casesi_jump_via_inlinethunk<mode>_z10")
14665	("casesi_jump_via_inlinethunk<mode>", "*basr_via_thunk<mode>_z10")
14666	("*basr_via_thunk<mode>", "*basr_r_via_thunk_z10")
14667	("*basr_r_via_thunk", "return<mode>_prez10"): New pattern.
14668	("*indirect2_jump"): Disable for branch conversion.
14669	("casesi_jump"): Turn into expander and expand patterns for branch
14670	conversion.
14671	("return_use"): New expander.
14672	("*return"): Emit return via thunk and rename it to ...
14673	("*return<mode>"): ... this one.
14674	* config/s390/s390.opt: Add new options and and enum for the
14675	option values.
14676
146772018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
14678
14679	* lra-constraints.c (match_reload): Unconditionally use
14680	gen_lowpart_SUBREG, rather than selecting between that
14681	and equivalent gen_rtx_SUBREG code.
14682
146832018-02-08  Richard Biener  <rguenther@suse.de>
14684
14685	PR tree-optimization/84233
14686	* tree-ssa-phiprop.c (propagate_with_phi): Use separate
14687	changed flag instead of boguously re-using phi_inserted.
14688
146892018-02-08  Martin Jambor  <mjambor@suse.cz>
14690
14691	* hsa-gen.c (get_symbol_for_decl): Set program allocation for
14692	static local variables.
14693
146942018-02-08  Richard Biener  <rguenther@suse.de>
14695
14696	PR tree-optimization/84278
14697	* tree-vect-stmts.c (vectorizable_store): When looking for
14698	smaller vector types to perform grouped strided loads/stores
14699	make sure the mode is supported by the target.
14700	(vectorizable_load): Likewise.
14701
147022018-02-08  Wilco Dijkstra  <wdijkstr@arm.com>
14703
14704	* config/aarch64/aarch64.c (aarch64_components_for_bb):
14705	Increase LDP/STP opportunities by adding adjacent callee-saves.
14706
147072018-02-08  Wilco Dijkstra  <wdijkstr@arm.com>
14708
14709	PR rtl-optimization/84068
14710	PR rtl-optimization/83459
14711	* haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting.
14712
147132018-02-08  Aldy Hernandez  <aldyh@redhat.com>
14714
14715	PR tree-optimization/84224
14716	* gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert.
14717	* calls.c (gimple_alloca_call_p): Only return TRUE when we have
14718	non-zero arguments.
14719
147202018-02-07  Iain Sandoe  <iain@codesourcery.com>
14721
14722	PR target/84113
14723	* config/rs6000/altivec.md (*restore_world): Remove LR use.
14724	* config/rs6000/predicates.md (restore_world_operation): Adjust op
14725	count, remove one USE.
14726
147272018-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
14728
14729	* doc/install.texi (Configuration): Document the
14730	--with-long-double-format={ibm,ieee} PowerPC configuration
14731	options.
14732
14733	PR target/84154
14734	* config/rs6000/rs6000.md (fix_trunc<SFDF:mode><QHI:mode>2):
14735	Convert from define_expand to be define_insn_and_split.  Rework
14736	float/double/_Float128 conversions to QI/HI/SImode to work with
14737	both ISA 2.07 (power8) or ISA 3.0 (power9).  Fix regression where
14738	conversions to QI/HImode types did a store and then a load to
14739	truncate the value.  For conversions to VSX registers, don't split
14740	the insn, instead emit the code directly.  Use the code iterator
14741	any_fix to combine signed and unsigned conversions.
14742	(fix<uns>_trunc<SFDF:mode>si2_p8): Likewise.
14743	(fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
14744	(fix_trunc<IEEE128:mode><QHI:mode>2): Likewise.
14745	(fix<uns>_trunc<SFDF:mode><QHI:mode>2): Likewise.
14746	(fix_<mode>di2_hw): Likewise.
14747	(fixuns_<mode>di2_hw): Likewise.
14748	(fix_<mode>si2_hw): Likewise.
14749	(fixuns_<mode>si2_hw): Likewise.
14750	(fix<uns>_<IEEE128:mode><SDI:mode>2_hw): Likewise.
14751	(fix<uns>_trunc<IEEE128:mode><QHI:mode>2): Likewise.
14752	(fctiw<u>z_<mode>_smallint): Rename fctiw<u>z_<mode>_smallint to
14753	fix<uns>_trunc<SFDF:mode>si2_p8.
14754	(fix_trunc<SFDF:mode><QHI:mode>2_internal): Delete, no longer
14755	used.
14756	(fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
14757	(fix<uns>_<mode>_mem): Likewise.
14758	(fctiw<u>z_<mode>_mem): Likewise.
14759	(fix<uns>_<mode>_mem): Likewise.
14760	(fix<uns>_trunc<SFDF:mode><QHSI:mode>2_mem): On ISA 3.0, prevent
14761	the register allocator from doing a direct move to the GPRs to do
14762	a store, and instead use the ISA 3.0 store byte/half-word from
14763	vector register instruction.  For IEEE 128-bit floating point,
14764	also optimize stores of 32-bit ints.
14765	(fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Likewise.
14766
147672018-02-07  Alan Hayward  <alan.hayward@arm.com>
14768
14769	* genextract.c (push_pathstr_operand): New function to support
14770	[a-zA-Z].
14771	(walk_rtx): Call push_pathstr_operand.
14772	(print_path): Support [a-zA-Z].
14773
147742018-02-07  Richard Biener  <rguenther@suse.de>
14775
14776	PR tree-optimization/84037
14777	* tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member.
14778	(cse_and_gimplify_to_preheader): Declare.
14779	(vect_get_place_in_interleaving_chain): Likewise.
14780	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
14781	ivexpr_map.
14782	(_loop_vec_info::~_loop_vec_info): Delete it.
14783	(cse_and_gimplify_to_preheader): New function.
14784	* tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export.
14785	* tree-vect-stmts.c (vectorizable_store): CSE base and steps.
14786	(vectorizable_load): Likewise.  For grouped stores always base
14787	the IV on the first element.
14788	* tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning
14789	condition before gimplifying.
14790
147912018-02-07  Jakub Jelinek  <jakub@redhat.com>
14792
14793	* tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for
14794	*DIV_EXPR and *MOD_EXPR.
14795
147962018-02-07  H.J. Lu  <hongjiu.lu@intel.com>
14797
14798	PR target/84248
14799	* config/i386/i386.c (ix86_option_override_internal): Mask out
14800	the CF_SET bit when checking -fcf-protection.
14801
148022018-02-07  Tom de Vries  <tom@codesourcery.com>
14803
14804	PR libgomp/84217
14805	* omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large
14806	enough.
14807
148082018-02-07  Richard Biener  <rguenther@suse.de>
14809
14810	PR tree-optimization/84204
14811	* tree-chrec.c (chrec_fold_plus_1): Remove size limiting in
14812	this place.
14813
14814	PR tree-optimization/84205
14815	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also
14816	special-case isl_ast_op_zdiv_r.
14817
14818	PR tree-optimization/84223
14819	* graphite-scop-detection.c (gather_bbs::before_dom_children):
14820	Only add conditions from within the region.
14821	(gather_bbs::after_dom_children): Adjust.
14822
148232018-02-07  Georg-Johann Lay  <avr@gjlay.de>
14824
14825	PR target/84209
14826	* config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros.
14827	* config/avr/avr.md: Only post-reload split REG-REG moves if
14828	either register is GENERAL_REG_P.
14829
148302018-02-07  Jakub Jelinek  <jakub@redhat.com>
14831
14832	PR tree-optimization/84235
14833	* tree-ssa-scopedtables.c
14834	(avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt
14835	if the subtraction is performed in floating point type where NaNs are
14836	honored.  For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't
14837	build 1.  Formatting fix.
14838
148392018-02-06  Jakub Jelinek  <jakub@redhat.com>
14840
14841	PR target/84146
14842	* config/i386/i386.c (rest_of_insert_endbranch): Only skip
14843	NOTE_INSN_CALL_ARG_LOCATION after a call, not anything else,
14844	and skip it regardless of bb boundaries.  Use CALL_P macro,
14845	don't test INSN_P (insn) together with CALL_P or JUMP_P check
14846	unnecessarily, formatting fix.
14847
148482018-02-06  Michael Collison  <michael.collison@arm.com>
14849
14850	* config/arm/thumb2.md:
14851	(*thumb2_mov_negscc): Split only if TARGET_THUMB2 && !arm_restrict_it.
14852	(*thumb_mov_notscc): Ditto.
14853
148542018-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
14855
14856	PR target/84154
14857	* config/rs6000/rs6000.md (su code attribute): Use "u" for
14858	unsigned_fix, not "s".
14859
148602018-02-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14861
14862	* configure.ac (gcc_fn_eh_frame_ro): New function.
14863	(gcc_cv_as_cfi_directive): Check both 32 and 64-bit assembler for
14864	correct .eh_frame permissions.
14865	* configure: Regenerate.
14866
148672018-02-06  Andrew Jenner  <andrew@codeourcery.com>
14868
14869	* doc/invoke.texi: Add section for the PowerPC SPE backend. Remove
14870	irrelevant options.
14871
148722018-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14873
14874	* config/rs6000/rs6000.c (rs6000_option_override_internal):
14875	Display warning message for -mno-speculate-indirect-jumps.
14876
148772018-02-06  Andrew Jenner  <andrew@codesourcery.com>
14878
14879	* config/powerpcspe/powerpcspe.opt: (msimple-fpu, mfpu) Add
14880	Undocumented.
14881	* config/powerpcspe/sysv4.opt (mbit-align): Likewise.
14882
148832018-02-06  Aldy Hernandez  <aldyh@redhat.com>
14884
14885	PR tree-optimization/84225
14886	* tree-eh.c (find_trapping_overflow): Only call
14887	operation_no_trapping_overflow when ANY_INTEGRAL_TYPE_P.
14888
148892018-02-06  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
14890
14891	PR target/84145
14892	* config/i386/i386.c: Reimplement the check of possible options
14893	-mibt/-mshstk conbination. Change error messages.
14894	* doc/invoke.texi: Fix a typo: remove extra '='.
14895
148962018-02-06  Marek Polacek  <polacek@redhat.com>
14897
14898	PR tree-optimization/84228
14899	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Skip debug statements.
14900
149012018-02-06  Tamar Christina  <tamar.christina@arm.com>
14902
14903	PR target/82641
14904	* config/arm/arm.c (arm_print_asm_arch_directives): Record already
14905	emitted arch directives.
14906	* config/arm/arm-c.c (arm_cpu_builtins): Undefine __ARM_ARCH and
14907	__ARM_FEATURE_COPROC before changing architectures.
14908
149092018-02-06  Richard Biener  <rguenther@suse.de>
14910
14911	* config/i386/i386.c (print_reg): Fix typo.
14912	(ix86_loop_unroll_adjust): Do not unroll beyond the original nunroll.
14913
149142018-02-06  Eric Botcazou  <ebotcazou@adacore.com>
14915
14916	* configure: Regenerate.
14917
149182018-02-05  Martin Sebor  <msebor@redhat.com>
14919
14920	PR tree-optimization/83369
14921	* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Use %G to print
14922	inlining context.
14923
149242018-02-05  Martin Liska  <mliska@suse.cz>
14925
14926	* doc/invoke.texi: Cherry-pick upstream r323995.
14927
149282018-02-05  Richard Sandiford  <richard.sandiford@linaro.org>
14929
14930	* ira.c (ira_init_register_move_cost): Adjust comment.
14931
149322018-02-05  Martin Liska  <mliska@suse.cz>
14933
14934	PR gcov-profile/84137
14935	* doc/gcov.texi: Fix typo in documentation.
14936
149372018-02-05  Martin Liska  <mliska@suse.cz>
14938
14939	PR gcov-profile/83879
14940	* doc/gcov.texi: Document necessity of --dynamic-list-data when
14941	using dlopen functionality.
14942
149432018-02-05  Olga Makhotina  <olga.makhotina@intel.com>
14944
14945	* config/i386/avx512dqintrin.h (_mm_mask_range_sd, _mm_maskz_range_sd,
14946	_mm_mask_range_round_sd, _mm_maskz_range_round_sd, _mm_mask_range_ss,
14947	_mm_maskz_range_ss, _mm_mask_range_round_ss,
14948	_mm_maskz_range_round_ss): New intrinsics.
14949	(__builtin_ia32_rangesd128_round)
14950	(__builtin_ia32_rangess128_round): Remove.
14951	(__builtin_ia32_rangesd128_mask_round,
14952	__builtin_ia32_rangess128_mask_round): New builtins.
14953	* config/i386/i386-builtin.def (__builtin_ia32_rangesd128_round,
14954	__builtin_ia32_rangess128_round): Remove.
14955	(__builtin_ia32_rangesd128_mask_round,
14956	__builtin_ia32_rangess128_mask_round): New builtins.
14957	* config/i386/sse.md (ranges<mode><round_saeonly_name>): Renamed to ...
14958	(ranges<mode><mask_scalar_name><round_saeonly_scalar_name>): ... this.
14959	((match_operand:VF_128 2 "<round_saeonly_nimm_predicate>"
14960	"<round_saeonly_constraint>")): Changed to ...
14961	((match_operand:VF_128 2 "<round_saeonly_scalar_nimm_predicate>"
14962	"<round_saeonly_scalar_constraint>")): ... this.
14963	("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
14964	%0, %1, %2<round_saeonly_op4>, %3}"): Changed to ...
14965	("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_scalar_mask_op4>%2,
14966	%1, %0<mask_scalar_operand4>|%0<mask_scalar_operand4>, %1,
14967	%2<round_saeonly_scalar_mask_op4>, %3}"): ... this.
14968
149692018-02-02  Andrew Jenner  <andrew@codesourcery.com>
14970
14971	* config/powerpcspe/powerpcspe.opt: Add Undocumented to irrelevant
14972	options.
14973	* config/powerpcspe/powerpcspe-tables.opt (rs6000_cpu_opt_value):
14974	Remove all values except native, 8540 and 8548.
14975
149762018-02-02  H.J. Lu  <hongjiu.lu@intel.com>
14977
14978	* config/i386/i386.c (ix86_output_function_return): Pass
14979	INVALID_REGNUM, instead of -1, as invalid register number to
14980	indirect_thunk_name and output_indirect_thunk.
14981
149822018-02-02  Julia Koval  <julia.koval@intel.com>
14983
14984	* config.gcc: Add -march=icelake.
14985	* config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake.
14986	* config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake.
14987	* config/i386/i386.c (processor_costs): Add m_ICELAKE.
14988	(PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2,
14989	PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New.
14990	(processor_target_table): Add icelake.
14991	(ix86_option_override_internal): Handle new PTAs.
14992	(get_builtin_code_for_version): Handle icelake.
14993	(M_INTEL_COREI7_ICELAKE): New.
14994	(fold_builtin_cpu): Handle icelake.
14995	* config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New.
14996	* doc/invoke.texi: Add -march=icelake.
14997
149982018-02-02  Julia Koval  <julia.koval@intel.com>
14999
15000	* config/i386/i386.c (ix86_option_override_internal): Change flags type
15001	to wide_int_bitmask.
15002	* wide-int-bitmask.h: New.
15003
150042018-02-02  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
15005
15006	PR target/84066
15007	* config/i386/i386.md: Replace Pmode with word_mode in
15008	builtin_setjmp_setup and builtin_longjmp to support x32.
15009
150102018-02-01  Peter Bergner  <bergner@vnet.ibm.com>
15011
15012	PR target/56010
15013	PR target/83743
15014	* config/rs6000/driver-rs6000.c: #include "diagnostic.h".
15015	#include "opts.h".
15016	(rs6000_supported_cpu_names): New static variable.
15017	(linux_cpu_translation_table): Likewise.
15018	(elf_platform) <cpu>: Define new static variable and use it.
15019	Translate kernel AT_PLATFORM name to canonical name if needed.
15020	Error if platform name is unknown.
15021
150222018-02-01  Aldy Hernandez  <aldyh@redhat.com>
15023
15024	PR target/84089
15025	* config/pa/predicates.md (base14_operand): Handle E_VOIDmode.
15026
150272018-02-01  Jeff Law  <law@redhat.com>
15028
15029	PR target/84128
15030	* config/i386/i386.c (release_scratch_register_on_entry): Add new
15031	OFFSET and RELEASE_VIA_POP arguments.  Use SP+OFFSET to restore
15032	the scratch if RELEASE_VIA_POP is false.
15033	(ix86_adjust_stack_and_probe_stack_clash): Un-constify SIZE.
15034	If we have to save a temporary register, decrement SIZE appropriately.
15035	Pass new arguments to release_scratch_register_on_entry.
15036	(ix86_adjust_stack_and_probe): Likewise.
15037	(ix86_emit_probe_stack_range): Pass new arguments to
15038	release_scratch_register_on_entry.
15039
150402018-02-01  Uros Bizjak  <ubizjak@gmail.com>
15041
15042	PR rtl-optimization/84157
15043	* combine.c (change_zero_ext): Use REG_P predicate in
15044	front of HARD_REGISTER_P predicate.
15045
150462018-02-01  Georg-Johann Lay  <avr@gjlay.de>
15047
15048	* config/avr/avr.c (avr_option_override): Move disabling of
15049	-fdelete-null-pointer-checks to...
15050	* common/config/avr/avr-common.c (avr_option_optimization_table):
15051	...here.
15052
150532018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
15054
15055	PR tree-optimization/81635
15056	* tree-data-ref.c (split_constant_offset_1): For types that
15057	wrap on overflow, try to use range info to prove that wrapping
15058	cannot occur.
15059
150602018-02-01  Renlin Li  <renlin.li@arm.com>
15061
15062	PR target/83370
15063	* config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
15064	TAILCALL_ADDR_REGS.
15065	(aarch64_register_move_cost): Likewise.
15066	* config/aarch64/aarch64.h (reg_class): Rename CALLER_SAVE_REGS to
15067	TAILCALL_ADDR_REGS.
15068	(REG_CLASS_NAMES): Likewise.
15069	(REG_CLASS_CONTENTS): Rename CALLER_SAVE_REGS to
15070	TAILCALL_ADDR_REGS. Remove IP registers.
15071	* config/aarch64/aarch64.md (Ucs): Update register constraint.
15072
150732018-02-01  Richard Biener  <rguenther@suse.de>
15074
15075	* domwalk.h (dom_walker::dom_walker): Add additional constructor
15076	for specifying RPO order and allow NULL for that.
15077	* domwalk.c (dom_walker::dom_walker): Likewise.
15078	(dom_walker::walk): Handle NULL RPO order.
15079	* tree-into-ssa.c (rewrite_dom_walker): Do not walk dom children
15080	in RPO order.
15081	(rewrite_update_dom_walker): Likewise.
15082	(mark_def_dom_walker): Likewise.
15083
150842018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
15085
15086	* config/aarch64/aarch64-protos.h (aarch64_split_sve_subreg_move)
15087	(aarch64_maybe_expand_sve_subreg_move): Declare.
15088	* config/aarch64/aarch64.md (UNSPEC_REV_SUBREG): New unspec.
15089	* config/aarch64/predicates.md (aarch64_any_register_operand): New
15090	predicate.
15091	* config/aarch64/aarch64-sve.md (mov<mode>): Optimize subreg moves
15092	that are semantically a reverse operation.
15093	(*aarch64_sve_mov<mode>_subreg_be): New pattern.
15094	* config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move):
15095	(aarch64_replace_reg_mode, aarch64_split_sve_subreg_move): New
15096	functions.
15097	(aarch64_can_change_mode_class): For big-endian, forbid changes
15098	between two SVE modes if they have different element sizes.
15099
151002018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
15101
15102	* config/aarch64/aarch64.c (aarch64_expand_sve_const_vector): Prefer
15103	the TImode handling for big-endian targets.
15104
151052018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
15106
15107	* config/aarch64/aarch64-sve.md (sve_ld1rq): Replace with...
15108	(*sve_ld1rq<Vesize>): ... this new pattern.  Handle all element sizes,
15109	not just bytes.
15110	* config/aarch64/aarch64.c (aarch64_expand_sve_widened_duplicate):
15111	Remove BSWAP handing for big-endian targets and use the form of
15112	LD1RQ appropariate for the mode.
15113
151142018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
15115
15116	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Handle
15117	all CONST_VECTOR_DUPLICATE_P vectors, not just those with a single
15118	duplicated element.
15119
151202018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
15121
15122	PR tearget/83845
15123	* config/aarch64/aarch64.c (aarch64_secondary_reload): Tighten
15124	check for operands that need to go through aarch64_sve_reload_be.
15125
151262018-02-01  Jakub Jelinek  <jakub@redhat.com>
15127
15128	PR tree-optimization/81661
15129	PR tree-optimization/84117
15130	* tree-eh.h (rewrite_to_non_trapping_overflow): Declare.
15131	* tree-eh.c: Include gimplify.h.
15132	(find_trapping_overflow, replace_trapping_overflow,
15133	rewrite_to_non_trapping_overflow): New functions.
15134	* tree-vect-loop.c: Include tree-eh.h.
15135	(vect_get_loop_niters): Use rewrite_to_non_trapping_overflow.
15136	* tree-data-ref.c: Include tree-eh.h.
15137	(get_segment_min_max): Use rewrite_to_non_trapping_overflow.
15138
151392018-01-31  Uros Bizjak  <ubizjak@gmail.com>
15140
15141	PR rtl-optimization/84123
15142	* combine.c (change_zero_ext): Check if hard register satisfies
15143	can_change_dest_mode before calling gen_lowpart_SUBREG.
15144
151452018-01-31  Vladimir Makarov  <vmakarov@redhat.com>
15146
15147	PR target/82444
15148	* ira.c (ira_init_register_move_cost): Remove assert.
15149
151502018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
15151
15152	PR rtl-optimization/84071
15153	* doc/tm.texi.in (WORD_REGISTER_OPERATIONS): Add explicit case.
15154	* doc/tm.texi: Regenerate.
15155
151562018-01-31  Richard Biener  <rguenther@suse.de>
15157
15158	PR tree-optimization/84132
15159	* tree-data-ref.c (analyze_miv_subscript): Properly
15160	check whether evolution_function_is_affine_multivariate_p
15161	before calling gcd_of_steps_may_divide_p.
15162
151632018-01-31  Julia Koval  <julia.koval@intel.com>
15164
15165	PR target/83618
15166	* config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
15167	* config/i386/i386.md (rdpid_rex64) New.
15168	(rdpid): Make 32bit only.
15169
151702018-01-29  Aldy Hernandez  <aldyh@redhat.com>
15171
15172	PR lto/84105
15173	* tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with
15174	an IDENTIFIER_NODE for FUNCTION_TYPE's.
15175
151762018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
15177
15178	Revert
15179	2018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
15180
15181	* config/sparc/sparc.md (vxworks_load_got): Set the GOT register.
15182
151832018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
15184
15185	PR rtl-optimization/84071
15186	* combine.c (record_dead_and_set_regs_1): Record the source unmodified
15187	for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target.
15188
151892018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
15190
15191	* config/arc/arc.c (arc_handle_aux_attribute): New function.
15192	(arc_attribute_table): Add 'aux' attribute.
15193	(arc_in_small_data_p): Consider aux like variables.
15194	(arc_is_aux_reg_p): New function.
15195	(arc_asm_output_aligned_decl_local): Ignore 'aux' like variables.
15196	(arc_get_aux_arg): New function.
15197	(prepare_move_operands): Handle aux-register access.
15198	(arc_handle_aux_attribute): New function.
15199	* doc/extend.texi (ARC Variable attributes): Add subsection.
15200
152012018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
15202
15203	* config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto.
15204	* config/arc/arc.c (arc_handle_uncached_attribute): New function.
15205	(arc_attribute_table): Add 'uncached' attribute.
15206	(arc_print_operand): Print '.di' flag for uncached memory
15207	accesses.
15208	(arc_in_small_data_p): Do not consider for small data the uncached
15209	types.
15210	(arc_is_uncached_mem_p): New function.
15211	* config/arc/predicates.md (compact_store_memory_operand): Check
15212	for uncached memory accesses.
15213	(nonvol_nonimm_operand): Likewise.
15214	* gcc/doc/extend.texi (ARC Type Attribute): New subsection.
15215
152162018-01-31  Jakub Jelinek  <jakub@redhat.com>
15217
15218	PR c/84100
15219	* common.opt (falign-functions=, falign-jumps=, falign-labels=,
15220	falign-loops=): Add Optimization flag.
15221
152222018-01-30  Jeff Law  <law@redhat.com>
15223
15224	PR target/84064
15225	* i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument
15226	INT_REGISTERS_SAVED.  Check it prior to calling
15227	get_scratch_register_on_entry.
15228	(ix86_adjust_stack_and_probe): Similarly.
15229	(ix86_emit_probe_stack_range): Similarly.
15230	(ix86_expand_prologue): Corresponding changes.
15231
152322018-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15233
15234	PR target/40411
15235	* config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*,
15236	-std=iso9899:199409 instead of -pedantic to select values-Xc.o.
15237
152382018-01-30  Vladimir Makarov  <vmakarov@redhat.com>
15239
15240	PR target/84112
15241	* lra-constraints.c (curr_insn_transform): Process AND in the
15242	address.
15243
152442018-01-30  Jakub Jelinek  <jakub@redhat.com>
15245
15246	PR rtl-optimization/83986
15247	* sched-deps.c (sched_analyze_insn): For frame related insns, add anti
15248	dependence against last_pending_memory_flush in addition to
15249	pending_jump_insns.
15250
152512018-01-30  Alexandre Oliva  <aoliva@redhat.com>
15252
15253	PR tree-optimization/81611
15254	* tree-ssa-dom.c (simple_iv_increment_p): Skip intervening
15255	copies.
15256
152572018-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
15258
15259	PR target/83758
15260	* config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return
15261	a reg rtx.
15262
152632018-01-30  Richard Biener  <rguenther@suse.de>
15264	    Jakub Jelinek  <jakub@redhat.com>
15265
15266	PR tree-optimization/84111
15267	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Skip
15268	inner loops added during recursion, as they don't have up-to-date
15269	SSA form.
15270
152712018-01-30  Jan Hubicka  <hubicka@ucw.cz>
15272
15273	PR ipa/81360
15274	* ipa-inline.c (can_inline_edge_p): Break out late tests to...
15275	(can_inline_edge_by_limits_p): ... here.
15276	(can_early_inline_edge_p, check_callers,
15277	update_caller_keys, update_callee_keys, recursive_inlining,
15278	add_new_edges_to_heap, speculation_useful_p,
15279	inline_small_functions,
15280	inline_small_functions, flatten_function,
15281	inline_to_all_callers_1): Update.
15282
152832018-01-30  Jan Hubicka  <hubicka@ucw.cz>
15284
15285	* profile-count.c (profile_count::combine_with_ipa_count): Handle
15286	zeros correctly.
15287
152882018-01-30  Richard Biener  <rguenther@suse.de>
15289
15290	PR tree-optimization/83008
15291	* tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost
15292	invariant and constant vector uses in stmts when they need
15293	more than one stmt.
15294
152952018-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15296
15297	PR bootstrap/84017
15298	* configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86.
15299	* configure: Regenerate.
15300
153012018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
15302
15303	* config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_0): New
15304	pattern.
15305	(*vec_extract<mode><Vel>_v128): Require a nonzero lane number.
15306	Use gen_rtx_REG rather than gen_lowpart.
15307
153082018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
15309
15310	* lra-constraints.c (match_reload): Use subreg_lowpart_offset
15311	rather than 0 when creating partial subregs.
15312
153132018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
15314
15315	* vec-perm-indices.c (vec_perm_indices::series_p): Give examples
15316	of usage.
15317
153182018-01-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
15319
15320	PR target/81550
15321	* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): If DFmode
15322	and SFmode can go in Altivec registers (-mcpu=power7 for DFmode,
15323	-mcpu=power8 for SFmode) don't set the PRE_INCDEC or PRE_MODIFY
15324	flags.  This restores the settings used before the 2017-07-24.
15325	Turning off pre increment/decrement/modify allows IVOPTS to
15326	optimize DF/SF loops where the index is an int.
15327
153282018-01-29  Richard Biener  <rguenther@suse.de>
15329	    Kelvin Nilsen  <kelvin@gcc.gnu.org>
15330
15331	PR bootstrap/80867
15332	* tree-vect-stmts.c (vectorizable_call): Don't call
15333	targetm.vectorize_builtin_md_vectorized_function if callee is
15334	NULL.
15335
153362018-01-22  Carl Love  <cel@us.ibm.com>
15337
15338	* doc/extend.tex: Fix typo in second arg in
15339	__builtin_bcdadd_{lt|eq|gt|ov} and __builtin_bcdsub_{lt|eq|gt|ov}.
15340
153412018-01-29  Richard Biener  <rguenther@suse.de>
15342
15343	PR tree-optimization/84086
15344	* tree-ssanames.c: Include cfgloop.h and tree-scalar-evolution.h.
15345	(flush_ssaname_freelist): When SSA names were released reset
15346	the SCEV hash table.
15347
153482018-01-29  Richard Biener  <rguenther@suse.de>
15349
15350	PR tree-optimization/84057
15351	* tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already
15352	removed paths when removing edges.
15353
153542018-01-27  H.J. Lu  <hongjiu.lu@intel.com>
15355
15356	* doc/invoke.texi: Replace -mfunction-return==@var{choice} with
15357	-mfunction-return=@var{choice}.
15358
153592018-01-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15360
15361	PR diagnostic/84034
15362	* diagnostic-show-locus.c (get_line_width_without_trailing_whitespace):
15363	Handle CR like TAB.
15364	(layout::print_source_line): Likewise.
15365	(test_get_line_width_without_trailing_whitespace): Add test cases.
15366
153672018-01-27  Jakub Jelinek  <jakub@redhat.com>
15368
15369	PR middle-end/84040
15370	* sched-deps.c (sched_macro_fuse_insns): Return immediately for
15371	debug insns.
15372
153732018-01-26  Jim Wilson  <jimw@sifive.com>
15374
15375	* config/riscv/riscv.h (MAX_FIXED_MODE_SIZE): New.
15376
15377	* config/riscv/elf.h (LIB_SPEC): Don't include -lgloss when nosys.specs
15378	specified.
15379
153802018-01-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15381
15382	* config/aarch64/aarch64.md: Add peepholes for CMP + SUB -> SUBS
15383	and CMP + SUB-immediate -> SUBS.
15384
153852018-01-26  Martin Sebor  <msebor@redhat.com>
15386
15387	PR tree-optimization/83896
15388	* tree-ssa-strlen.c (get_string_len): Rename...
15389	(get_string_cst_length): ...to this.  Return HOST_WIDE_INT.
15390	Avoid assuming length is constant.
15391	(handle_char_store): Use HOST_WIDE_INT for string length.
15392
153932018-01-26  Uros Bizjak  <ubizjak@gmail.com>
15394
15395	PR target/81763
15396	* config/i386/i386.md (*andndi3_doubleword): Add earlyclobber
15397	to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives.
15398
153992018-01-26  Richard Biener  <rguenther@suse.de>
15400
15401	PR rtl-optimization/84003
15402	* dse.c (record_store): Only record redundant stores when
15403	the earlier store aliases at least all accesses the later one does.
15404
154052018-01-26  Jakub Jelinek  <jakub@redhat.com>
15406
15407	PR rtl-optimization/83985
15408	* dce.c (deletable_insn_p): Return false for separate shrink wrapping
15409	REG_CFA_RESTORE insns.
15410	(delete_unmarked_insns): Don't ignore separate shrink wrapping
15411	REG_CFA_RESTORE insns here.
15412
15413	PR c/83989
15414	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Don't
15415	use SSA_NAME_VAR as base for SSA_NAMEs with non-NULL SSA_NAME_VAR.
15416
154172018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
15418
15419	* config/arc/arc-arch.h (arc_tune_attr): Add ARC_TUNE_CORE_3.
15420	* config/arc/arc.c (arc_sched_issue_rate): Use ARC_TUNE_... .
15421	(arc_init): Likewise.
15422	(arc_override_options): Likewise.
15423	(arc_file_start): Choose Tag_ARC_CPU_variation based on arc_tune
15424	value.
15425	(hwloop_fail): Use TARGET_DBNZ when we want to check for dbnz insn
15426	support.
15427	* config/arc/arc.h (TARGET_DBNZ): Define.
15428	* config/arc/arc.md (attr tune): Add core_3, use ARC_TUNE_... to
15429	properly set the tune attribute.
15430	(dbnz): Use TARGET_DBNZ guard.
15431	* config/arc/arc.opt (mtune): Add core3 option.
15432
154332018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
15434
15435	* config/arc/arc.c (arc_delegitimize_address_0): Refactored to
15436	recognize new pic like addresses.
15437	(arc_delegitimize_address): Clean up.
15438
154392018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
15440
15441	* config/arc/arc-arches.def: Option mrf16 valid for all
15442	architectures.
15443	* config/arc/arc-c.def (__ARC_RF16__): New predefined macro.
15444	* config/arc/arc-cpus.def (em_mini): New cpu with rf16 on.
15445	* config/arc/arc-options.def (FL_RF16): Add mrf16 option.
15446	* config/arc/arc-tables.opt: Regenerate.
15447	* config/arc/arc.c (arc_conditional_register_usage): Handle
15448	reduced register file case.
15449	(arc_file_start): Set must have build attributes.
15450	* config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using
15451	mrf16 option value.
15452	* config/arc/arc.opt (mrf16): Add new option.
15453	* config/arc/elf.h (ATTRIBUTE_PCS): Define.
15454	* config/arc/genmultilib.awk: Handle new mrf16 option.
15455	* config/arc/linux.h (ATTRIBUTE_PCS): Define.
15456	* config/arc/t-multilib: Regenerate.
15457	* doc/invoke.texi (ARC Options): Document mrf16 option.
15458
154592018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
15460
15461	* config/arc/arc-protos.h: Add arc_is_secure_call_p proto.
15462	* config/arc/arc.c (arc_handle_secure_attribute): New function.
15463	(arc_attribute_table): Add 'secure_call' attribute.
15464	(arc_print_operand): Print secure call operand.
15465	(arc_function_ok_for_sibcall): Don't optimize tail calls when
15466	secure.
15467	(arc_is_secure_call_p): New function.  * config/arc/arc.md
15468	(call_i): Add support for sjli instruction.
15469	(call_value_i): Likewise.
15470	* config/arc/constraints.md (Csc): New constraint.
15471
154722018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
15473	    John Eric Martin  <John.Martin@emmicro-us.com>
15474
15475	* config/arc/arc-protos.h: Add arc_is_jli_call_p proto.
15476	* config/arc/arc.c (_arc_jli_section): New struct.
15477	(arc_jli_section): New type.
15478	(rc_jli_sections): New static variable.
15479	(arc_handle_jli_attribute): New function.
15480	(arc_attribute_table): Add jli_always and jli_fixed attribute.
15481	(arc_file_end): New function.
15482	(TARGET_ASM_FILE_END): Define.
15483	(arc_print_operand): Reuse 'S' letter for JLI output instruction.
15484	(arc_add_jli_section): New function.
15485	(jli_call_scan): Likewise.
15486	(arc_reorg): Call jli_call_scan.
15487	(arc_output_addsi): Remove 'S' from printing asm operand.
15488	(arc_is_jli_call_p): New function.
15489	* config/arc/arc.md (movqi_insn): Remove 'S' from printing asm
15490	operand.
15491	(movhi_insn): Likewise.
15492	(movsi_insn): Likewise.
15493	(movsi_set_cc_insn): Likewise.
15494	(loadqi_update): Likewise.
15495	(load_zeroextendqisi_update): Likewise.
15496	(load_signextendqisi_update): Likewise.
15497	(loadhi_update): Likewise.
15498	(load_zeroextendhisi_update): Likewise.
15499	(load_signextendhisi_update): Likewise.
15500	(loadsi_update): Likewise.
15501	(loadsf_update): Likewise.
15502	(movsicc_insn): Likewise.
15503	(bset_insn): Likewise.
15504	(bxor_insn): Likewise.
15505	(bclr_insn): Likewise.
15506	(bmsk_insn): Likewise.
15507	(bicsi3_insn): Likewise.
15508	(cmpsi_cc_c_insn): Likewise.
15509	(movsi_ne): Likewise.
15510	(movsi_cond_exec): Likewise.
15511	(clrsbsi2): Likewise.
15512	(norm_f): Likewise.
15513	(normw): Likewise.
15514	(swap): Likewise.
15515	(divaw): Likewise.
15516	(flag): Likewise.
15517	(sr): Likewise.
15518	(kflag): Likewise.
15519	(ffs): Likewise.
15520	(ffs_f): Likewise.
15521	(fls): Likewise.
15522	(call_i): Remove 'S' asm letter, add jli instruction.
15523	(call_value_i): Likewise.
15524	* config/arc/arc.op (mjli-always): New option.
15525	* config/arc/constraints.md (Cji): New constraint.
15526	* config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm
15527	operand.
15528	(subsf3_fpx): Likewise.
15529	(mulsf3_fpx): Likewise.
15530	* config/arc/simdext.md (vendrec_insn): Remove 'S' from printing
15531	asm operand.
15532	* doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed'
15533	function attrbutes.
15534	* doc/invoke.texi (ARC): Document mjli-always option.
15535
155362018-01-26  Sebastian Perta  <sebastian.perta@renesas.com>
15537
15538	* config/rl78/rl78.c (rl78_addsi3_internal): If operand 2 is const
15539	avoid addition with 0 and use incw and decw where possible.
15540
155412018-01-26  Richard Biener  <rguenther@suse.de>
15542
15543	PR tree-optimization/81082
15544	* fold-const.c (fold_plusminus_mult_expr): Do not perform the
15545	association if it requires casting to unsigned.
15546	* match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived
15547	from fold_plusminus_mult_expr to catch important cases late when
15548	range info is available.
15549
155502018-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15551
15552	* config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove.
15553	* configure.ac (hidden_linkonce): New test.
15554	* configure: Regenerate.
15555	* config.in: Regenerate.
15556
155572018-01-26  Julia Koval  <julia.koval@intel.com>
15558
15559	* config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask,
15560	_mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask,
15561	_mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask,
15562	_mm_mask_bitshuffle_epi64_mask): Fix type.
15563	* config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI,
15564	USI_FTYPE_V4DI_V4DI_USI): Remove.
15565	* config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask,
15566	__builtin_ia32_vpshufbitqmb256_mask,
15567	__builtin_ia32_vpshufbitqmb128_mask): Fix types.
15568	* config/i386/i386.c (ix86_expand_args_builtin): Remove old types.
15569	* config/i386/sse.md (VI1_AVX512VLBW): Change types.
15570
155712018-01-26  Alan Modra  <amodra@gmail.com>
15572
15573	PR target/84033
15574	* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude
15575	UNSPEC_VBPERMQ.  Sort other unspecs.
15576
155772018-01-25  David Edelsohn  <dje.gcc@gmail.com>
15578
15579	* doc/invoke.texi (PowerPC Options): Document 'native' cpu type.
15580
155812018-01-25  Jan Hubicka  <hubicka@ucw.cz>
15582
15583	PR middle-end/83055
15584	* predict.c (drop_profile): Do not push/pop cfun; update also
15585	node->count.
15586	(handle_missing_profiles): Fix logic looking for zero profiles.
15587
155882018-01-25  Jakub Jelinek  <jakub@redhat.com>
15589
15590	PR middle-end/83977
15591	* ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature
15592	on functions with #pragma omp declare simd or functions with simd
15593	attribute.
15594	* omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change.
15595	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
15596	Remove trailing \n from warning_at calls.
15597
155982018-01-25  Tom de Vries  <tom@codesourcery.com>
15599
15600	PR target/84028
15601	* config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call
15602	for neutered workers.
15603
156042018-01-24  Joseph Myers  <joseph@codesourcery.com>
15605
15606	PR target/68467
15607	* config/m68k/m68k.c (m68k_promote_function_mode): New function.
15608	(TARGET_PROMOTE_FUNCTION_MODE): New macro.
15609
156102018-01-24  Jeff Law  <law@redhat.com>
15611
15612	PR target/83994
15613	* i386.c (get_probe_interval): Move to earlier point.
15614	(ix86_compute_frame_layout): If -fstack-clash-protection and
15615	the frame is larger than the probe interval, then use pushes
15616	to save registers rather than reg->mem moves.
15617	(ix86_expand_prologue): Remove conditional for int_registers_saved
15618	assertion.
15619
156202018-01-24  Vladimir Makarov  <vmakarov@redhat.com>
15621
15622	PR target/84014
15623	* ira-build.c (setup_min_max_allocno_live_range_point): Set up
15624	min/max for never referenced object.
15625
156262018-01-24  Jakub Jelinek  <jakub@redhat.com>
15627
15628	PR middle-end/83977
15629	* tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN
15630	here.
15631	* omp-low.c (create_omp_child_function): Remove "omp declare simd"
15632	attributes from DECL_ATTRIBUTES (decl) without affecting
15633	DECL_ATTRIBUTES (current_function_decl).
15634	* omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL
15635	functions with non-NULL DECL_ABSTRACT_ORIGIN.
15636
156372018-01-24  Richard Sandiford  <richard.sandiford@linaro.org>
15638
15639	PR tree-optimization/83979
15640	* fold-const.c (fold_comparison): Use constant_boolean_node
15641	instead of boolean_{true,false}_node.
15642
156432018-01-24  Jan Hubicka  <hubicka@ucw.cz>
15644
15645	* ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls
15646	with zero counts.
15647
156482018-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15649
15650	* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
15651	Simplify the clause that sets the length attribute.
15652	(*call_value_indirect_nonlocal_sysv<mode>): Likewise.
15653	(*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the
15654	clause that sets the length attribute.
15655	(*sibcall_value_nonlocal_sysv<mode>): Likewise.
15656
156572018-01-24  Tom de Vries  <tom@codesourcery.com>
15658
15659	PR target/83589
15660	* config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1.
15661	(nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c.
15662	Add strict parameter.
15663	(prevent_branch_around_nothing): Insert dummy insn between branch to
15664	label and label with no ptx insn inbetween.
15665	* config/nvptx/nvptx.md (define_insn "fake_nop"): New insn.
15666
156672018-01-24  Tom de Vries  <tom@codesourcery.com>
15668
15669	PR target/81352
15670	* config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call
15671	for neutered threads in warp.
15672	* config/nvptx/nvptx.md (define_insn "exit"): New insn.
15673
156742018-01-24  Richard Biener  <rguenther@suse.de>
15675
15676	PR tree-optimization/83176
15677	* tree-chrec.c (chrec_fold_plus_1): Handle (signed T){(T) .. }
15678	operands.
15679
156802018-01-24  Richard Biener  <rguenther@suse.de>
15681
15682	PR tree-optimization/82819
15683	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Avoid
15684	code generating pluses that are no-ops in the target precision.
15685
156862018-01-24  Richard Biener  <rguenther@suse.de>
15687
15688	PR middle-end/84000
15689	* tree-cfg.c (replace_loop_annotate): Handle annot_expr_parallel_kind.
15690
156912018-01-23  Jan Hubicka  <hubicka@ucw.cz>
15692
15693	* cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count
15694	to merge probabilities.
15695	* predict.c (probably_never_executed): Also mark as cold functions
15696	with global 0 profile and guessed local profile.
15697	* profile-count.c (profile_probability::combine_with_count): New
15698	member function.
15699	* profile-count.h (profile_probability::operator*,
15700	profile_probability::operator*=, profile_probability::operator/,
15701	profile_probability::operator/=): Reduce precision to adjusted
15702	and set value to guessed on contradictory divisions.
15703	(profile_probability::combine_with_freq): Remove.
15704	(profile_probability::combine_wiht_count): Declare.
15705	(profile_count::force_nonzero):: Set to adjusted.
15706	(profile_count::probability_in):: Set quality to adjusted.
15707	* tree-ssa-tail-merge.c (replace_block_by): Use
15708	combine_with_count.
15709
157102018-01-23  Andrew Waterman  <andrew@sifive.com>
15711	    Jim Wilson  <jimw@sifive.com>
15712
15713	* config/riscv/riscv.c (riscv_stack_boundary): New.
15714	(riscv_option_override): Set riscv_stack_boundary.  Handle
15715	riscv_preferred_stack_boundary_arg.
15716	* config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New.
15717	(BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY.
15718	(STACK_BOUNDARY): Set to riscv_stack_boundary.
15719	(RISCV_STACK_ALIGN): Use STACK_BOUNDARY.
15720	* config/riscv/riscv.opt (mpreferred-stack-boundary): New.
15721	* doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary.
15722
157232018-01-23  H.J. Lu  <hongjiu.lu@intel.com>
15724
15725	PR target/83905
15726	* config/i386/i386.c (ix86_expand_prologue): Use cost reference
15727	of struct ix86_frame.
15728	(ix86_expand_epilogue): Likewise.  Add a local variable for
15729	the reg_save_offset field in struct ix86_frame.
15730
157312018-01-23  Bin Cheng  <bin.cheng@arm.com>
15732
15733	PR tree-optimization/82604
15734	* tree-loop-distribution.c (enum partition_kind): New enum item
15735	PKIND_PARTIAL_MEMSET.
15736	(partition_builtin_p): Support above new enum item.
15737	(generate_code_for_partition): Ditto.
15738	(compute_access_range): Differentiate cases that equality can be
15739	proven at all loops, the innermost loops or no loops.
15740	(classify_builtin_st, classify_builtin_ldst): Adjust call to above
15741	function.  Set PKIND_PARTIAL_MEMSET for partition appropriately.
15742	(finalize_partitions, distribute_loop): Don't fuse partition of
15743	PKIND_PARTIAL_MEMSET kind when distributing 3-level loop nest.
15744	(prepare_perfect_loop_nest): Distribute 3-level loop nest only if
15745	parloop is enabled.
15746
157472018-01-23  Martin Liska  <mliska@suse.cz>
15748
15749	* predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in
15750	order to ignore the predictor.
15751	(PRED_POLYMORPHIC_CALL): Likewise.
15752	(PRED_RECURSIVE_CALL): Likewise.
15753
157542018-01-23  Martin Liska  <mliska@suse.cz>
15755
15756	* tree-profile.c (tree_profiling): Print function header to
15757	aware reader which function we are working on.
15758	* value-prof.c (gimple_find_values_to_profile): Do not print
15759	not interesting value histograms.
15760
157612018-01-23  Martin Liska  <mliska@suse.cz>
15762
15763	* profile-count.h (enum profile_quality): Add
15764	profile_uninitialized as the first value. Do not number values
15765	as they are zero based.
15766	(profile_count::verify): Update sanity check.
15767	(profile_probability::verify): Likewise.
15768
157692018-01-23  Nathan Sidwell  <nathan@acm.org>
15770
15771	* doc/invoke.texi (ffor-scope): Deprecate.
15772
157732018-01-23  David Malcolm  <dmalcolm@redhat.com>
15774
15775	PR tree-optimization/83510
15776	* domwalk.c (set_all_edges_as_executable): New function.
15777	(dom_walker::dom_walker): Convert bool param
15778	"skip_unreachable_blocks" to enum reachability.  Move setup of
15779	edge flags to set_all_edges_as_executable and only do it when
15780	reachability is REACHABLE_BLOCKS.
15781	* domwalk.h (enum dom_walker::reachability): New enum.
15782	(dom_walker::dom_walker): Convert bool param
15783	"skip_unreachable_blocks" to enum reachability.
15784	(set_all_edges_as_executable): New decl.
15785	* graphite-scop-detection.c  (gather_bbs::gather_bbs): Convert
15786	from false for "skip_unreachable_blocks" to ALL_BLOCKS for
15787	"reachability".
15788	* tree-ssa-dom.c (dom_opt_dom_walker::dom_opt_dom_walker): Likewise,
15789	but converting true to REACHABLE_BLOCKS.
15790	* tree-ssa-sccvn.c (sccvn_dom_walker::sccvn_dom_walker): Likewise.
15791	* tree-vrp.c
15792	(check_array_bounds_dom_walker::check_array_bounds_dom_walker):
15793	Likewise, but converting it to REACHABLE_BLOCKS_PRESERVING_FLAGS.
15794	(vrp_dom_walker::vrp_dom_walker): Likewise, but converting it to
15795	REACHABLE_BLOCKS.
15796	(vrp_prop::vrp_finalize): Call set_all_edges_as_executable
15797	if check_all_array_refs will be called.
15798
157992018-01-23  David Malcolm  <dmalcolm@redhat.com>
15800
15801	* tree.c (selftest::test_location_wrappers): Add more test
15802	coverage.
15803
158042018-01-23  David Malcolm  <dmalcolm@redhat.com>
15805
15806	* sbitmap.c (selftest::test_set_range): Fix memory leaks.
15807	(selftest::test_bit_in_range): Likewise.
15808
158092018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
15810
15811	PR testsuite/83888
15812	* doc/sourcebuild.texi (vect_float): Say that the selector
15813	only describes the situation when -funsafe-math-optimizations is on.
15814	(vect_float_strict): Document.
15815
158162018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
15817
15818	PR tree-optimization/83965
15819	* tree-vect-patterns.c (vect_reassociating_reduction_p): New function.
15820	(vect_recog_dot_prod_pattern, vect_recog_sad_pattern): Use it
15821	instead of checking only for a reduction.
15822	(vect_recog_widen_sum_pattern): Likewise.
15823
158242018-01-23  Jan Hubicka  <hubicka@ucw.cz>
15825
15826	* predict.c (probably_never_executed): Only use precise profile info.
15827	(compute_function_frequency): Skip after inlining hack since we now
15828	have quality checking.
15829
158302018-01-23  Jan Hubicka  <hubicka@ucw.cz>
15831
15832	* profile-count.h (profile_probability::very_unlikely,
15833	profile_probability::unlikely, profile_probability::even): Set
15834	precision to guessed.
15835
158362018-01-23  Richard Biener  <rguenther@suse.de>
15837
15838	PR tree-optimization/83963
15839	* graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
15840	Properly terminate dominator walk when crossing the exit edge not
15841	when visiting its source block.
15842
158432018-01-23  Jakub Jelinek  <jakub@redhat.com>
15844
15845	PR c++/83918
15846	* tree.c (maybe_wrap_with_location): Use NON_LVALUE_EXPR rather than
15847	VIEW_CONVERT_EXPR to wrap CONST_DECLs.
15848
158492018-01-22  Jakub Jelinek  <jakub@redhat.com>
15850
15851	PR tree-optimization/83957
15852	* omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs.  Remove
15853	semicolon after for body surrounded by braces.
15854
15855	PR tree-optimization/83081
15856	* profile-count.h (profile_probability::split): New method.
15857	* dojump.c (do_jump_1) <case TRUTH_ANDIF_EXPR, case TRUTH_ORIF_EXPR>:
15858	Use profile_probability::split.
15859	(do_compare_rtx_and_jump): Fix adjustment of probabilities
15860	when splitting a single conditional jump into 2.
15861
158622018-01-22  David Malcolm  <dmalcolm@redhat.com>
15863
15864	PR tree-optimization/69452
15865	* tree-ssa-loop-im.c (class move_computations_dom_walker): Remove
15866	decl.
15867
158682018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
15869
15870	* config/rl78/rl78-expand.md (bswaphi2): New define_expand.
15871	* config/rl78/rl78-virt.md (*bswaphi2_virt): New define_insn.
15872	* config/rl78/rl78-real.md (*bswaphi2_real): New define_insn.
15873
158742018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
15875
15876	* config/rl78/rl78-protos.h (rl78_split_movdi): New function declaration.
15877	* config/rl78/rl78.md (movdi): New define_expand.
15878	* config/rl78/rl78.c (rl78_split_movdi): New function.
15879
158802018-01-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
15881
15882	PR target/83862
15883	* config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete,
15884	no longer used.
15885	* config/rs6000/rs6000.c (rs6000_split_signbit): Likewise.
15886	* config/rs6000/rs6000.md (signbit<mode>2): Change code for IEEE
15887	128-bit to produce an UNSPEC move to get the double word with the
15888	signbit and then a shift directly to do signbit.
15889	(signbit<mode>2_dm): Replace old IEEE 128-bit signbit
15890	implementation with a new version that just does either a direct
15891	move or a regular move.  Move memory interface to separate insns.
15892	Move insns so they are next to the expander.
15893	(signbit<mode>2_dm_mem_be): New combiner insns to combine load
15894	with signbit move.  Split big and little endian case.
15895	(signbit<mode>2_dm_mem_le): Likewise.
15896	(signbit<mode>2_dm_<su>ext): Delete, no longer used.
15897	(signbit<mode>2_dm2): Likewise.
15898
158992018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
15900
15901	* config/rl78/rl78.md (anddi3): New define_expand.
15902
159032018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
15904
15905	* config/rl78/rl78.md (umindi3): New define_expand.
15906
159072018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
15908
15909	* config/rl78/rl78.md (smindi3): New define_expand.
15910
159112018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
15912
15913	* config/rl78/rl78.md (smaxdi3): New define_expand.
15914
159152018-01-22  Carl Love  <cel@us.ibm.com>
15916
15917	* config/rs6000/rs6000-builtin.def (ST_ELEMREV_V1TI, LD_ELEMREV_V1TI,
15918	LVX_V1TI): Add macro expansion.
15919	* config/rs6000/rs6000-c.c (altivec_builtin_types): Add argument
15920	definitions for VSX_BUILTIN_VEC_XST_BE, VSX_BUILTIN_VEC_ST,
15921	VSX_BUILTIN_VEC_XL, LD_ELEMREV_V1TI builtins.
15922	* config/rs6000/rs6000-p8swap.c (insn_is_swappable_p);
15923	Change check to determine if the instruction is a byte reversing
15924	entry.  Fix typo in comment.
15925	* config/rs6000/rs6000.c (altivec_expand_builtin): Add case entry
15926	for VSX_BUILTIN_ST_ELEMREV_V1TI and VSX_BUILTIN_LD_ELEMREV_V1TI.
15927	Add def_builtin calls for new builtins.
15928	* config/rs6000/vsx.md (vsx_st_elemrev_v1ti, vsx_ld_elemrev_v1ti):
15929	Add define_insn expansion.
15930
159312018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
15932
15933	* config/rl78/rl78.md (umaxdi3): New define_expand.
15934
159352018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
15936
15937	* config/rl78/rl78.c (rl78_note_reg_set): Fixed dead reg check
15938	for non-QImode registers.
15939
159402018-01-22  Richard Biener  <rguenther@suse.de>
15941
15942	PR tree-optimization/83963
15943	* graphite-scop-detection.c (scop_detection::get_sese): Delay
15944	including the loop exit block.
15945	(scop_detection::merge_sese): Likewise.
15946	(scop_detection::add_scop): Do it here instead.
15947
159482018-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15949
15950	* doc/sourcebuild.texi (arm_softfloat): Document.
15951
159522018-01-21  John David Anglin  <danglin@gcc.gnu.org>
15953
15954	PR gcc/77734
15955	* config/pa/pa.c (pa_function_ok_for_sibcall): Use
15956	targetm.binds_local_p instead of TREE_PUBLIC to check local binding.
15957	Move TARGET_PORTABLE_RUNTIME check after TARGET_64BIT check.
15958
159592018-01-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15960	    David Edelsohn  <dje.gcc@gmail.com>
15961
15962	PR target/83946
15963	* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
15964	Change "crset eq" to "crset 2".
15965	(*call_value_indirect_nonlocal_sysv<mode>): Likewise.
15966	(*call_indirect_aix<mode>_nospec): Likewise.
15967	(*call_value_indirect_aix<mode>_nospec): Likewise.
15968	(*call_indirect_elfv2<mode>_nospec): Likewise.
15969	(*call_value_indirect_elfv2<mode>_nospec): Likewise.
15970	(*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2";
15971	change assembly output from . to $.
15972	(*sibcall_value_nonlocal_sysv<mode>): Likewise.
15973	(indirect_jump<mode>_nospec): Change assembly output from . to $.
15974	(*tablejump<mode>_internal1_nospec): Likewise.
15975
159762018-01-21  Oleg Endo  <olegendo@gcc.gnu.org>
15977
15978	PR target/80870
15979	* config/sh/sh_optimize_sett_clrt.cc:
15980	Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes.
15981
159822018-01-20  Richard Sandiford  <richard.sandiford@linaro.org>
15983
15984	PR tree-optimization/83940
15985	* tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Set
15986	offset_dt to vect_constant_def rather than vect_unknown_def_type.
15987	(vect_check_load_store_mask): Add a mask_dt_out parameter and
15988	use it to pass back the definition type.
15989	(vect_check_store_rhs): Likewise rhs_dt_out.
15990	(vect_build_gather_load_calls): Add a mask_dt argument and use
15991	it instead of a call to vect_is_simple_use.
15992	(vectorizable_store): Update calls to vect_check_load_store_mask
15993	and vect_check_store_rhs.  Use the dt returned by the latter instead
15994	of scatter_src_dt.  Use the cached mask_dt and gs_info.offset_dt
15995	instead of calls to vect_is_simple_use.  Pass the scalar rather
15996	than the vector operand to vect_is_simple_use when handling
15997	second and subsequent copies of an rhs value.
15998	(vectorizable_load): Update calls to vect_check_load_store_mask
15999	and vect_build_gather_load_calls.  Use the cached mask_dt and
16000	gs_info.offset_dt instead of calls to vect_is_simple_use.
16001
160022018-01-20  Jakub Jelinek  <jakub@redhat.com>
16003
16004	PR middle-end/83945
16005	* tree-emutls.c: Include gimplify.h.
16006	(lower_emutls_2): New function.
16007	(lower_emutls_1): If ADDR_EXPR is a gimple invariant and walk_tree
16008	with lower_emutls_2 callback finds some TLS decl in it, unshare_expr
16009	it before further processing.
16010
16011	PR target/83930
16012	* simplify-rtx.c (simplify_binary_operation_1) <case UMOD>: Use
16013	UINTVAL (trueop1) instead of INTVAL (op1).
16014
160152018-01-19  Jakub Jelinek  <jakub@redhat.com>
16016
16017	PR debug/81570
16018	PR debug/83728
16019	* dwarf2cfi.c (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define to
16020	INCOMING_FRAME_SP_OFFSET if not defined.
16021	(scan_trace): Add ENTRY argument.  If true and
16022	DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET,
16023	emit a note to adjust the CFA offset.
16024	(create_cfi_notes): Adjust scan_trace callers.
16025	(create_cie_data): Use DEFAULT_INCOMING_FRAME_SP_OFFSET rather than
16026	INCOMING_FRAME_SP_OFFSET in the CIE.
16027	* config/i386/i386.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define.
16028	* config/stormy16/stormy16.h (DEFAULT_INCOMING_FRAME_SP_OFFSET):
16029	Likewise.
16030	* doc/tm.texi.in (DEFAULT_INCOMING_FRAME_SP_OFFSET): Document.
16031	* doc/tm.texi: Regenerated.
16032
160332018-01-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16034
16035	PR rtl-optimization/83147
16036	* lra-constraints.c (remove_inheritance_pseudos): Use
16037	lra_substitute_pseudo_within_insn.
16038
160392018-01-19  Tom de Vries  <tom@codesourcery.com>
16040	    Cesar Philippidis  <cesar@codesourcery.com>
16041
16042	PR target/83920
16043	* config/nvptx/nvptx.c (nvptx_single): Fix jit workaround.
16044
160452018-01-19  Cesar Philippidis  <cesar@codesourcery.com>
16046
16047	PR target/83790
16048	* config/nvptx/nvptx.c (output_init_frag): Don't use generic address
16049	spaces for function labels.
16050
160512018-01-19  Martin Liska  <mliska@suse.cz>
16052
16053	* predict.def (PRED_LOOP_EXIT): Change from 85 to 89.
16054	(PRED_LOOP_EXIT_WITH_RECURSION): Change from 72 to 78.
16055	(PRED_LOOP_EXTRA_EXIT): Change from 83 to 67.
16056	(PRED_OPCODE_POSITIVE): Change from 64 to 59.
16057	(PRED_TREE_OPCODE_POSITIVE): Change from 64 to 59.
16058	(PRED_CONST_RETURN): Change from 69 to 65.
16059	(PRED_NULL_RETURN): Change from 91 to 71.
16060	(PRED_LOOP_IV_COMPARE_GUESS): Change from 98 to 64.
16061	(PRED_LOOP_GUARD): Change from 66 to 73.
16062
160632018-01-19  Martin Liska  <mliska@suse.cz>
16064
16065	* predict.c (predict_insn_def): Add new assert.
16066	(struct branch_predictor): Change type to signed integer.
16067	(test_prediction_value_range): Amend test to cover
16068	PROB_UNINITIALIZED.
16069	* predict.def (PRED_LOOP_ITERATIONS): Use the new constant.
16070	(PRED_LOOP_ITERATIONS_GUESSED): Likewise.
16071	(PRED_LOOP_ITERATIONS_MAX): Likewise.
16072	(PRED_LOOP_IV_COMPARE): Likewise.
16073	* predict.h (PROB_UNINITIALIZED): Define new constant.
16074
160752018-01-19  Martin Liska  <mliska@suse.cz>
16076
16077	* predict.c (dump_prediction): Add new format for
16078	analyze_brprob.py script which is enabled with -details
16079	suboption.
16080	* profile-count.h (precise_p): New function.
16081
160822018-01-19  Richard Sandiford  <richard.sandiford@linaro.org>
16083
16084	PR tree-optimization/83922
16085	* tree-vect-loop.c (vect_verify_full_masking): Return false if
16086	there are no statements that need masking.
16087	(vect_active_double_reduction_p): New function.
16088	(vect_analyze_loop_operations): Use it when handling phis that
16089	are not in the loop header.
16090
160912018-01-19  Richard Sandiford  <richard.sandiford@linaro.org>
16092
16093	PR tree-optimization/83914
16094	* tree-vect-loop.c (vectorizable_induction): Don't convert
16095	init_expr or apply the peeling adjustment for inductions
16096	that are nested within the vectorized loop.
16097
160982018-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16099
16100	* config/arm/thumb2.md (*thumb2_negsi2_short): Use RSB mnemonic
16101	instead of NEG.
16102
161032018-01-18  Jakub Jelinek  <jakub@redhat.com>
16104
16105	PR sanitizer/81715
16106	PR testsuite/83882
16107	* function.h (gimplify_parameters): Add gimple_seq * argument.
16108	* function.c: Include gimple.h and options.h.
16109	(gimplify_parameters): Add cleanup argument, add CLOBBER stmts
16110	for the added local temporaries if needed.
16111	* gimplify.c (gimplify_body): Adjust gimplify_parameters caller,
16112	if there are any parameter cleanups, wrap whole body into a
16113	try/finally with the cleanups.
16114
161152018-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
16116
16117	PR target/82964
16118	* config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
16119	Use GET_MODE_CLASS for scalar floating point.
16120
161212018-01-18  Jan Hubicka  <hubicka@ucw.cz>
16122
16123	PR ipa/82256
16124	patch by PaX Team
16125	* cgraphclones.c (cgraph_node::create_version_clone_with_body):
16126	Fix call of call_cgraph_insertion_hooks.
16127
161282018-01-18  Martin Sebor  <msebor@redhat.com>
16129
16130	* doc/invoke.texi (-Wclass-memaccess): Tweak text.
16131
161322018-01-18  Jan Hubicka  <hubicka@ucw.cz>
16133
16134	PR ipa/83619
16135	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge
16136	frequencies.
16137
161382018-01-18  Boris Kolpackov  <boris@codesynthesis.com>
16139
16140	PR other/70268
16141	* common.opt: (-ffile-prefix-map): New option.
16142	* opts.c (common_handle_option): Defer it.
16143	* opts-global.c (handle_common_deferred_options): Handle it.
16144	* debug.h (remap_debug_filename, add_debug_prefix_map): Move to...
16145	* file-prefix-map.h: New file.
16146	(remap_debug_filename, add_debug_prefix_map): ...here.
16147	(add_macro_prefix_map, add_file_prefix_map, remap_macro_filename): New.
16148	* final.c (debug_prefix_map, add_debug_prefix_map
16149	remap_debug_filename): Move to...
16150	* file-prefix-map.c: New file.
16151	(file_prefix_map, add_prefix_map, remap_filename) ...here and rename,
16152	generalize, get rid of alloca(), use strrchr() instead of strchr().
16153	(add_macro_prefix_map, add_debug_prefix_map, add_file_prefix_map):
16154	Implement in terms of add_prefix_map().
16155	(remap_macro_filename, remap_debug_filename): Implement in term of
16156	remap_filename().
16157	* Makefile.in (OBJS, PLUGIN_HEADERS): Add new files.
16158	* builtins.c (fold_builtin_FILE): Call remap_macro_filename().
16159	* dbxout.c: Include file-prefix-map.h.
16160	* varasm.c: Likewise.
16161	* vmsdbgout.c: Likewise.
16162	* xcoffout.c: Likewise.
16163	* dwarf2out.c: Likewise plus omit new options from DW_AT_producer.
16164	* doc/cppopts.texi (-fmacro-prefix-map): Document.
16165	* doc/invoke.texi (-ffile-prefix-map): Document.
16166	(-fdebug-prefix-map): Update description.
16167
161682018-01-18  Martin Liska  <mliska@suse.cz>
16169
16170	* config/i386/i386.c (indirect_thunk_name): Document that also
16171	lfence is emitted.
16172	(output_indirect_thunk): Document why both instructions
16173	(pause and lfence) are generated.
16174
161752018-01-18  Richard Biener  <rguenther@suse.de>
16176
16177	PR tree-optimization/83887
16178	* graphite-scop-detection.c
16179	(scop_detection::get_nearest_dom_with_single_entry): Remove.
16180	(scop_detection::get_nearest_pdom_with_single_exit): Likewise.
16181	(scop_detection::merge_sese): Re-implement with a flood-fill
16182	algorithm that properly finds a SESE region if it exists.
16183
161842018-01-18  Jakub Jelinek  <jakub@redhat.com>
16185
16186	PR c/61240
16187	* match.pd ((P + A) - P, P - (P + A), (P + A) - (P + B)): For
16188	pointer_diff optimizations use view_convert instead of convert.
16189
161902018-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16191
16192	* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
16193	Generate different code for -mno-speculate-indirect-jumps.
16194	(*call_value_indirect_nonlocal_sysv<mode>): Likewise.
16195	(*call_indirect_aix<mode>): Disable for
16196	-mno-speculate-indirect-jumps.
16197	(*call_indirect_aix<mode>_nospec): New define_insn.
16198	(*call_value_indirect_aix<mode>): Disable for
16199	-mno-speculate-indirect-jumps.
16200	(*call_value_indirect_aix<mode>_nospec): New define_insn.
16201	(*sibcall_nonlocal_sysv<mode>): Generate different code for
16202	-mno-speculate-indirect-jumps.
16203	(*sibcall_value_nonlocal_sysv<mode>): Likewise.
16204
162052018-01-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
16206
16207	* config/rs6000/rs6000.c (rs6000_emit_move): If we load or store a
16208	long double type, set the flags for noting the default long double
16209	type, even if we don't pass or return a long double type.
16210
162112018-01-17  Jan Hubicka  <hubicka@ucw.cz>
16212
16213	PR ipa/83051
16214	* ipa-inline.c (flatten_function): Do not overwrite final inlining
16215	failure.
16216
162172018-01-17  Will Schmidt  <will_schmidt@vnet.ibm.com>
16218
16219	* config/rs6000/rs6000.c (rs6000_gimple_builtin): Add gimple folding
16220	support for merge[hl].
16221	(fold_mergehl_helper): New helper function.
16222	(tree-vector-builder.h): New #include for tree_vector_builder usage.
16223	* config/rs6000/altivec.md (altivec_vmrghw_direct): Add xxmrghw insn.
16224	(altivec_vmrglw_direct): Add xxmrglw insn.
16225
162262018-01-17  Andrew Waterman  <andrew@sifive.com>
16227
16228	* config/riscv/riscv.c (riscv_conditional_register_usage): If
16229	UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs.
16230
162312018-01-17  David Malcolm  <dmalcolm@redhat.com>
16232
16233	PR lto/83121
16234	* ipa-devirt.c (add_type_duplicate): When comparing memory layout,
16235	call the lto_location_cache before reading the
16236	DECL_SOURCE_LOCATION of the types.
16237
162382018-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
16239	    Richard Sandiford  <richard.sandiford@linaro.org>
16240
16241	* config/aarch64/aarch64.md (movti_aarch64): Use Uti constraint.
16242	* config/aarch64/aarch64.c (aarch64_mov128_immediate): New function.
16243	(aarch64_legitimate_constant_p): Just support CONST_DOUBLE
16244	SF/DF/TF mode to avoid creating illegal CONST_WIDE_INT immediates.
16245	* config/aarch64/aarch64-protos.h (aarch64_mov128_immediate):
16246	Add declaration.
16247	* config/aarch64/constraints.md (aarch64_movti_operand):
16248	Limit immediates.
16249	* config/aarch64/predicates.md (Uti): Add new constraint.
16250
162512018-01-17 Carl Love  <cel@us.ibm.com>
16252
16253	* config/rs6000/vsx.md (define_expand xl_len_r,
16254	define_expand stxvl, define_expand *stxvl): Add match_dup argument.
16255	(define_insn): Add, match_dup 1 argument to define_insn stxvll and
16256	lxvll.
16257	(define_expand, define_insn): Move the shift left from	the
16258	define_insn to the define_expand for lxvl and stxvl instructions.
16259	* config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_2): Change LXVL
16260	and XL_LEN_R definitions to PURE.
16261
162622018-01-17  Uros Bizjak  <ubizjak@gmail.com>
16263
16264	* config/i386/i386.c (indirect_thunk_name): Declare regno
16265	as unsigned int.  Compare regno with INVALID_REGNUM.
16266	(output_indirect_thunk): Ditto.
16267	(output_indirect_thunk_function): Ditto.
16268	(ix86_code_end): Declare regno as unsigned int.  Use INVALID_REGNUM
16269	in the call to output_indirect_thunk_function.
16270
162712018-01-17  Richard Sandiford  <richard.sandiford@linaro.org>
16272
16273	PR middle-end/83884
16274	* expr.c (expand_expr_real_1): Use the size of GET_MODE (op0)
16275	rather than the size of inner_type to determine the stack slot size
16276	when handling VIEW_CONVERT_EXPRs on strict-alignment targets.
16277
162782018-01-16  Sebastian Peryt  <sebastian.peryt@intel.com>
16279
16280	PR target/83546
16281	* config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND
16282	to PTA_SILVERMONT.
16283
162842018-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
16285
16286	* config.gcc (powerpc*-linux*-*): Add support for 64-bit little
16287	endian Linux systems to optionally enable multilibs for selecting
16288	the long double type if the user configured an explicit type.
16289	* config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Indicate we
16290	have no long double multilibs if not defined.
16291	* config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
16292	warn if the user used -mabi={ieee,ibm}longdouble and we built
16293	multilibs for long double.
16294	* config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Define as the
16295	appropriate multilib option.
16296	(MULTILIB_DEFAULTS): Add MULTILIB_DEFAULTS_IEEE to the default
16297	multilib options.
16298	* config/rs6000/t-ldouble-linux64le-ibm: New configuration files
16299	for building long double multilibs.
16300	* config/rs6000/t-ldouble-linux64le-ieee: Likewise.
16301
163022018-01-16  John David Anglin  <danglin@gcc.gnu.org>
16303
16304	* config.gcc (hppa*-*-linux*): Change callee copies ABI to caller
16305	copies.
16306
16307	* config/pa.h (MALLOC_ABI_ALIGNMENT): Set 32-bit alignment default to
16308	64 bits.
16309	* config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Set alignment to
16310	128 bits.
16311
16312	* config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Cleanup type and mode
16313	variables.
16314
16315	* config/pa/pa.c (pa_function_arg_size): Apply CEIL to GET_MODE_SIZE
16316	return value.
16317
163182018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
16319
16320	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For an
16321	ADDR_EXPR, do not count the offset of a COMPONENT_REF twice.
16322
163232018-01-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
16324
16325	* config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Generate
16326	different rtl trees depending on TARGET_64BIT.
16327	(rs6000_gen_lvx): Likewise.
16328
163292018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
16330
16331	* config/visium/visium.md (nop): Tweak comment.
16332	(hazard_nop): Likewise.
16333
163342018-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16335
16336	* config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for
16337	-mspeculate-indirect-jumps.
16338	* config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable
16339	for -mno-speculate-indirect-jumps.
16340	(*call_indirect_elfv2<mode>_nospec): New define_insn.
16341	(*call_value_indirect_elfv2<mode>): Disable for
16342	-mno-speculate-indirect-jumps.
16343	(*call_value_indirect_elfv2<mode>_nospec): New define_insn.
16344	(indirect_jump): Emit different RTL for
16345	-mno-speculate-indirect-jumps.
16346	(*indirect_jump<mode>): Disable for
16347	-mno-speculate-indirect-jumps.
16348	(*indirect_jump<mode>_nospec): New define_insn.
16349	(tablejump): Emit different RTL for
16350	-mno-speculate-indirect-jumps.
16351	(tablejumpsi): Disable for -mno-speculate-indirect-jumps.
16352	(tablejumpsi_nospec): New define_expand.
16353	(tablejumpdi): Disable for -mno-speculate-indirect-jumps.
16354	(tablejumpdi_nospec): New define_expand.
16355	(*tablejump<mode>_internal1): Disable for
16356	-mno-speculate-indirect-jumps.
16357	(*tablejump<mode>_internal1_nospec): New define_insn.
16358	* config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New
16359	option.
16360
163612018-01-16  Artyom Skrobov tyomitch@gmail.com
16362
16363	* caller-save.c (insert_save): Drop unnecessary parameter.  All
16364	callers updated.
16365
163662018-01-16  Jakub Jelinek  <jakub@redhat.com>
16367	    Richard Biener  <rguenth@suse.de>
16368
16369	PR libgomp/83590
16370	* gimplify.c (gimplify_one_sizepos): For is_gimple_constant (expr)
16371	return early, inline manually is_gimple_sizepos.  Make sure if we
16372	call gimplify_expr we don't end up with a gimple constant.
16373	* tree.c (variably_modified_type_p): Don't return true for
16374	is_gimple_constant (_t).  Inline manually is_gimple_sizepos.
16375	* gimplify.h (is_gimple_sizepos): Remove.
16376
163772018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
16378
16379	PR tree-optimization/83857
16380	* tree-vect-loop.c (vect_analyze_loop_operations): Don't call
16381	vectorizable_live_operation for pure SLP statements.
16382	(vectorizable_live_operation): Handle PHIs.
16383
163842018-01-16  Richard Biener  <rguenther@suse.de>
16385
16386	PR tree-optimization/83867
16387	* tree-vect-stmts.c (vect_transform_stmt): Precompute
16388	nested_in_vect_loop_p since the scalar stmt may get invalidated.
16389
163902018-01-16  Jakub Jelinek  <jakub@redhat.com>
16391
16392	PR c/83844
16393	* stor-layout.c (handle_warn_if_not_align): Use byte_position and
16394	multiple_of_p instead of unchecked tree_to_uhwi and UHWI check.
16395	If off is not INTEGER_CST, issue a may not be aligned warning
16396	rather than isn't aligned.  Use isn%'t rather than isn't.
16397	* fold-const.c (multiple_of_p) <case BIT_AND_EXPR>: Don't fall through
16398	into MULT_EXPR.
16399	<case MULT_EXPR>: Improve the case when bottom and one of the
16400	MULT_EXPR operands are INTEGER_CSTs and bottom is multiple of that
16401	operand, in that case check if the other operand is multiple of
16402	bottom divided by the INTEGER_CST operand.
16403
164042018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
16405
16406	PR target/83858
16407	* config/pa/pa.h (FUNCTION_ARG_SIZE): Delete.
16408	* config/pa/pa-protos.h (pa_function_arg_size): Declare.
16409	* config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Use
16410	pa_function_arg_size instead of FUNCTION_ARG_SIZE.
16411	* config/pa/pa.c (pa_function_arg_advance): Likewise.
16412	(pa_function_arg, pa_arg_partial_bytes): Likewise.
16413	(pa_function_arg_size): New function.
16414
164152018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
16416
16417	* fold-const.c (fold_ternary_loc): Construct the vec_perm_indices
16418	in a separate statement.
16419
164202018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
16421
16422	PR tree-optimization/83847
16423	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Don't
16424	group gathers and scatters.
16425
164262018-01-16  Jakub Jelinek  <jakub@redhat.com>
16427
16428	PR rtl-optimization/86620
16429	* params.def (max-sched-ready-insns): Bump minimum value to 1.
16430
16431	PR rtl-optimization/83213
16432	* recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn
16433	to last if both are JUMP_INSNs.
16434
16435	PR tree-optimization/83843
16436	* gimple-ssa-store-merging.c
16437	(imm_store_chain_info::output_merged_store): Handle bit_not_p on
16438	store_immediate_info for bswap/nop orig_stores.
16439
164402018-01-15  Andrew Waterman  <andrew@sifive.com>
16441
16442	* config/riscv/riscv.c (riscv_rtx_costs) <MULT>: Increase cost if
16443	!TARGET_MUL.
16444	<UDIV>: Increase cost if !TARGET_DIV.
16445
164462018-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
16447
16448	* config/rs6000/rs6000.md (define_attr "type"): Remove delayed_cr.
16449	(define_attr "cr_logical_3op"): New.
16450	(cceq_ior_compare): Adjust.
16451	(cceq_ior_compare_complement): Adjust.
16452	(*cceq_rev_compare): Adjust.
16453	* config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
16454	(is_cracked_insn): Adjust.
16455	(insn_must_be_first_in_group): Adjust.
16456	* config/rs6000/40x.md: Adjust.
16457	* config/rs6000/440.md: Adjust.
16458	* config/rs6000/476.md: Adjust.
16459	* config/rs6000/601.md: Adjust.
16460	* config/rs6000/603.md: Adjust.
16461	* config/rs6000/6xx.md: Adjust.
16462	* config/rs6000/7450.md: Adjust.
16463	* config/rs6000/7xx.md: Adjust.
16464	* config/rs6000/8540.md: Adjust.
16465	* config/rs6000/cell.md: Adjust.
16466	* config/rs6000/e300c2c3.md: Adjust.
16467	* config/rs6000/e500mc.md: Adjust.
16468	* config/rs6000/e500mc64.md: Adjust.
16469	* config/rs6000/e5500.md: Adjust.
16470	* config/rs6000/e6500.md: Adjust.
16471	* config/rs6000/mpc.md: Adjust.
16472	* config/rs6000/power4.md: Adjust.
16473	* config/rs6000/power5.md: Adjust.
16474	* config/rs6000/power6.md: Adjust.
16475	* config/rs6000/power7.md: Adjust.
16476	* config/rs6000/power8.md: Adjust.
16477	* config/rs6000/power9.md: Adjust.
16478	* config/rs6000/rs64.md: Adjust.
16479	* config/rs6000/titan.md: Adjust.
16480
164812018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
16482
16483	* config/i386/predicates.md (indirect_branch_operand): Rewrite
16484	ix86_indirect_branch_register logic.
16485
164862018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
16487
16488	* config/i386/constraints.md (Bs): Update
16489	ix86_indirect_branch_register check.  Don't check
16490	ix86_indirect_branch_register with GOT_memory_operand.
16491	(Bw): Likewise.
16492	* config/i386/predicates.md (GOT_memory_operand): Don't check
16493	ix86_indirect_branch_register here.
16494	(GOT32_symbol_operand): Likewise.
16495
164962018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
16497
16498	* config/i386/predicates.md (constant_call_address_operand):
16499	Rewrite ix86_indirect_branch_register logic.
16500	(sibcall_insn_operand): Likewise.
16501
165022018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
16503
16504	* config/i386/constraints.md (Bs): Replace
16505	ix86_indirect_branch_thunk_register with
16506	ix86_indirect_branch_register.
16507	(Bw): Likewise.
16508	* config/i386/i386.md (indirect_jump): Likewise.
16509	(tablejump): Likewise.
16510	(*sibcall_memory): Likewise.
16511	(*sibcall_value_memory): Likewise.
16512	Peepholes of indirect call and jump via memory: Likewise.
16513	* config/i386/i386.opt: Likewise.
16514	* config/i386/predicates.md (indirect_branch_operand): Likewise.
16515	(GOT_memory_operand): Likewise.
16516	(call_insn_operand): Likewise.
16517	(sibcall_insn_operand): Likewise.
16518	(GOT32_symbol_operand): Likewise.
16519
165202018-01-15  Jakub Jelinek  <jakub@redhat.com>
16521
16522	PR middle-end/83837
16523	* omp-expand.c (expand_omp_atomic_pipeline): Use loaded_val
16524	type rather than type addr's type points to.
16525	(expand_omp_atomic_mutex): Likewise.
16526	(expand_omp_atomic): Likewise.
16527
165282018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
16529
16530	PR target/83839
16531	* config/i386/i386.c (output_indirect_thunk_function): Use
16532	ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO
16533	for  __x86_return_thunk.
16534
165352018-01-15  Richard Biener  <rguenther@suse.de>
16536
16537	PR middle-end/83850
16538	* expmed.c (extract_bit_field_1): Fix typo.
16539
165402018-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16541
16542	PR target/83687
16543	* config/arm/iterators.md (VF): New mode iterator.
16544	* config/arm/neon.md (neon_vabd<mode>_2): Use the above.
16545	Remove integer-related logic from pattern.
16546	(neon_vabd<mode>_3): Likewise.
16547
165482018-01-15  Jakub Jelinek  <jakub@redhat.com>
16549
16550	PR middle-end/82694
16551	* common.opt (fstrict-overflow): No longer an alias.
16552	(fwrapv-pointer): New option.
16553	* tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define
16554	also for pointer types based on flag_wrapv_pointer.
16555	* opts.c (common_handle_option) <case OPT_fstrict_overflow>: Set
16556	opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if
16557	opts->x_flag_wrapv got set.
16558	* fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01
16559	changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of
16560	POINTER_TYPE_OVERFLOW_UNDEFINED.
16561	* match.pd: Likewise in address comparison pattern.
16562	* doc/invoke.texi: Document -fwrapv and -fstrict-overflow.
16563
165642018-01-15  Richard Biener  <rguenther@suse.de>
16565
16566	PR lto/83804
16567	* tree.c (free_lang_data_in_type): Always unlink TYPE_DECLs
16568	from TYPE_FIELDS.  Free TYPE_BINFO if not used by devirtualization.
16569	Reset type names to their identifier if their TYPE_DECL doesn't
16570	have linkage (and thus is used for ODR and devirt).
16571	(save_debug_info_for_decl): Remove.
16572	(save_debug_info_for_type): Likewise.
16573	(add_tree_to_fld_list): Adjust.
16574	* tree-pretty-print.c (dump_generic_node): Make dumping of
16575	type names more robust.
16576
165772018-01-15  Richard Biener  <rguenther@suse.de>
16578
16579	* BASE-VER: Bump to 8.0.1.
16580
165812018-01-14  Martin Sebor  <msebor@redhat.com>
16582
16583	PR other/83508
16584	* builtins.c (check_access): Avoid warning when the no-warning bit
16585	is set.
16586
165872018-01-14  Cory Fields  <cory-nospam-@coryfields.com>
16588
16589	* tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort.
16590	* ira-color (allocno_hard_regs_compare): Likewise.
16591
165922018-01-14  Nathan Rossi  <nathan@nathanrossi.com>
16593
16594	PR target/83013
16595	* config/microblaze/microblaze.c (microblaze_asm_output_ident):
16596	Use .pushsection/.popsection.
16597
165982018-01-14  Martin Sebor  <msebor@redhat.com>
16599
16600	PR c++/81327
16601	* doc/invoke.texi (-Wlass-memaccess): Document suppression by casting.
16602
166032018-01-14  Jakub Jelinek  <jakub@redhat.com>
16604
16605	* config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h
16606	entry from extra_headers.
16607	(x86_64-*-*): Remove two duplicate gfniintrin.h entries from
16608	extra_headers, make the list bitwise identical to the i?86-*-* one.
16609
166102018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
16611
16612	* config/i386/i386.c (ix86_set_indirect_branch_type): Disallow
16613	-mcmodel=large with -mindirect-branch=thunk,
16614	-mindirect-branch=thunk-extern, -mfunction-return=thunk and
16615	-mfunction-return=thunk-extern.
16616	* doc/invoke.texi: Document -mcmodel=large is incompatible with
16617	-mindirect-branch=thunk, -mindirect-branch=thunk-extern,
16618	-mfunction-return=thunk and -mfunction-return=thunk-extern.
16619
166202018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
16621
16622	* config/i386/i386.c (print_reg): Print the name of the full
16623	integer register without '%'.
16624	(ix86_print_operand): Handle 'V'.
16625	 * doc/extend.texi: Document 'V' modifier.
16626
166272018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
16628
16629	* config/i386/constraints.md (Bs): Disallow memory operand for
16630	-mindirect-branch-register.
16631	(Bw): Likewise.
16632	* config/i386/predicates.md (indirect_branch_operand): Likewise.
16633	(GOT_memory_operand): Likewise.
16634	(call_insn_operand): Likewise.
16635	(sibcall_insn_operand): Likewise.
16636	(GOT32_symbol_operand): Likewise.
16637	* config/i386/i386.md (indirect_jump): Call convert_memory_address
16638	for -mindirect-branch-register.
16639	(tablejump): Likewise.
16640	(*sibcall_memory): Likewise.
16641	(*sibcall_value_memory): Likewise.
16642	Disallow peepholes of indirect call and jump via memory for
16643	-mindirect-branch-register.
16644	(*call_pop): Replace m with Bw.
16645	(*call_value_pop): Likewise.
16646	(*sibcall_pop_memory): Replace m with Bs.
16647	* config/i386/i386.opt (mindirect-branch-register): New option.
16648	* doc/invoke.texi: Document -mindirect-branch-register option.
16649
166502018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
16651
16652	* config/i386/i386-protos.h (ix86_output_function_return): New.
16653	* config/i386/i386.c (ix86_set_indirect_branch_type): Also
16654	set function_return_type.
16655	(indirect_thunk_name): Add ret_p to indicate thunk for function
16656	return.
16657	(output_indirect_thunk_function): Pass false to
16658	indirect_thunk_name.
16659	(ix86_output_indirect_branch_via_reg): Likewise.
16660	(ix86_output_indirect_branch_via_push): Likewise.
16661	(output_indirect_thunk_function): Create alias for function
16662	return thunk if regno < 0.
16663	(ix86_output_function_return): New function.
16664	(ix86_handle_fndecl_attribute): Handle function_return.
16665	(ix86_attribute_table): Add function_return.
16666	* config/i386/i386.h (machine_function): Add
16667	function_return_type.
16668	* config/i386/i386.md (simple_return_internal): Use
16669	ix86_output_function_return.
16670	(simple_return_internal_long): Likewise.
16671	* config/i386/i386.opt (mfunction-return=): New option.
16672	(indirect_branch): Mention -mfunction-return=.
16673	* doc/extend.texi: Document function_return function attribute.
16674	* doc/invoke.texi: Document -mfunction-return= option.
16675
166762018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
16677
16678	* config/i386/i386-opts.h (indirect_branch): New.
16679	* config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise.
16680	* config/i386/i386.c (ix86_using_red_zone): Disallow red-zone
16681	with local indirect jump when converting indirect call and jump.
16682	(ix86_set_indirect_branch_type): New.
16683	(ix86_set_current_function): Call ix86_set_indirect_branch_type.
16684	(indirectlabelno): New.
16685	(indirect_thunk_needed): Likewise.
16686	(indirect_thunk_bnd_needed): Likewise.
16687	(indirect_thunks_used): Likewise.
16688	(indirect_thunks_bnd_used): Likewise.
16689	(INDIRECT_LABEL): Likewise.
16690	(indirect_thunk_name): Likewise.
16691	(output_indirect_thunk): Likewise.
16692	(output_indirect_thunk_function): Likewise.
16693	(ix86_output_indirect_branch_via_reg): Likewise.
16694	(ix86_output_indirect_branch_via_push): Likewise.
16695	(ix86_output_indirect_branch): Likewise.
16696	(ix86_output_indirect_jmp): Likewise.
16697	(ix86_code_end): Call output_indirect_thunk_function if needed.
16698	(ix86_output_call_insn): Call ix86_output_indirect_branch if
16699	needed.
16700	(ix86_handle_fndecl_attribute): Handle indirect_branch.
16701	(ix86_attribute_table): Add indirect_branch.
16702	* config/i386/i386.h (machine_function): Add indirect_branch_type
16703	and has_local_indirect_jump.
16704	* config/i386/i386.md (indirect_jump): Set has_local_indirect_jump
16705	to true.
16706	(tablejump): Likewise.
16707	(*indirect_jump): Use ix86_output_indirect_jmp.
16708	(*tablejump_1): Likewise.
16709	(simple_return_indirect_internal): Likewise.
16710	* config/i386/i386.opt (mindirect-branch=): New option.
16711	(indirect_branch): New.
16712	(keep): Likewise.
16713	(thunk): Likewise.
16714	(thunk-inline): Likewise.
16715	(thunk-extern): Likewise.
16716	* doc/extend.texi: Document indirect_branch function attribute.
16717	* doc/invoke.texi: Document -mindirect-branch= option.
16718
167192018-01-14  Jan Hubicka  <hubicka@ucw.cz>
16720
16721	PR ipa/83051
16722	* ipa-inline.c (edge_badness): Tolerate roundoff errors.
16723
167242018-01-14  Richard Sandiford  <richard.sandiford@linaro.org>
16725
16726	* ipa-inline.c (want_inline_small_function_p): Return false if
16727	inlining has already failed with CIF_FINAL_ERROR.
16728	(update_caller_keys): Call want_inline_small_function_p before
16729	can_inline_edge_p.
16730	(update_callee_keys): Likewise.
16731
167322018-01-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
16733
16734	* config/rs6000/rs6000-p8swap.c (rs6000_sum_of_two_registers_p):
16735	New function.
16736	(rs6000_quadword_masked_address_p): Likewise.
16737	(quad_aligned_load_p): Likewise.
16738	(quad_aligned_store_p): Likewise.
16739	(const_load_sequence_p): Add comment to describe the outer-most loop.
16740	(mimic_memory_attributes_and_flags): New function.
16741	(rs6000_gen_stvx): Likewise.
16742	(replace_swapped_aligned_store): Likewise.
16743	(rs6000_gen_lvx): Likewise.
16744	(replace_swapped_aligned_load): Likewise.
16745	(replace_swapped_load_constant): Capitalize argument name in
16746	comment describing this function.
16747	(rs6000_analyze_swaps): Add a third pass to search for vector loads
16748	and stores that access quad-word aligned addresses and replace
16749	with stvx or lvx instructions when appropriate.
16750	* config/rs6000/rs6000-protos.h (rs6000_sum_of_two_registers_p):
16751	New function prototype.
16752	(rs6000_quadword_masked_address_p): Likewise.
16753	(rs6000_gen_lvx): Likewise.
16754	(rs6000_gen_stvx): Likewise.
16755	* config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): For modes
16756	VSX_D (V2DF, V2DI), modify this split to select lvx instruction
16757	when memory address is aligned.
16758	(*vsx_le_perm_load_<mode>): For modes VSX_W (V4SF, V4SI), modify
16759	this split to select lvx instruction when memory address is aligned.
16760	(*vsx_le_perm_load_v8hi): Modify this split to select lvx
16761	instruction when memory address is aligned.
16762	(*vsx_le_perm_load_v16qi): Likewise.
16763	(four unnamed splitters): Modify to select the stvx instruction
16764	when memory is aligned.
16765
167662018-01-13  Jan Hubicka  <hubicka@ucw.cz>
16767
16768	* predict.c (determine_unlikely_bbs): Handle correctly BBs
16769	which appears in the queue multiple times.
16770
167712018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
16772	    Alan Hayward  <alan.hayward@arm.com>
16773	    David Sherwood  <david.sherwood@arm.com>
16774
16775	* tree-vectorizer.h (vec_lower_bound): New structure.
16776	(_loop_vec_info): Add check_nonzero and lower_bounds.
16777	(LOOP_VINFO_CHECK_NONZERO): New macro.
16778	(LOOP_VINFO_LOWER_BOUNDS): Likewise.
16779	(LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Check lower_bounds too.
16780	* tree-data-ref.h (dr_with_seg_len): Add access_size and align
16781	fields.  Make seg_len the distance travelled, not including the
16782	access size.
16783	(dr_direction_indicator): Declare.
16784	(dr_zero_step_indicator): Likewise.
16785	(dr_known_forward_stride_p): Likewise.
16786	* tree-data-ref.c: Include stringpool.h, tree-vrp.h and
16787	tree-ssanames.h.
16788	(runtime_alias_check_p): Allow runtime alias checks with
16789	variable strides.
16790	(operator ==): Compare access_size and align.
16791	(prune_runtime_alias_test_list): Rework for new distinction between
16792	the access_size and seg_len.
16793	(create_intersect_range_checks_index): Likewise.  Cope with polynomial
16794	segment lengths.
16795	(get_segment_min_max): New function.
16796	(create_intersect_range_checks): Use it.
16797	(dr_step_indicator): New function.
16798	(dr_direction_indicator): Likewise.
16799	(dr_zero_step_indicator): Likewise.
16800	(dr_known_forward_stride_p): Likewise.
16801	* tree-loop-distribution.c (data_ref_segment_size): Return
16802	DR_STEP * (niters - 1).
16803	(compute_alias_check_pairs): Update call to the dr_with_seg_len
16804	constructor.
16805	* tree-vect-data-refs.c (vect_check_nonzero_value): New function.
16806	(vect_preserves_scalar_order_p): New function, split out from...
16807	(vect_analyze_data_ref_dependence): ...here.  Check for zero steps.
16808	(vect_vfa_segment_size): Return DR_STEP * (length_factor - 1).
16809	(vect_vfa_access_size): New function.
16810	(vect_vfa_align): Likewise.
16811	(vect_compile_time_alias): Take access_size_a and access_b arguments.
16812	(dump_lower_bound): New function.
16813	(vect_check_lower_bound): Likewise.
16814	(vect_small_gap_p): Likewise.
16815	(vectorizable_with_step_bound_p): Likewise.
16816	(vect_prune_runtime_alias_test_list): Ignore cross-iteration
16817	depencies if the vectorization factor is 1.  Convert the checks
16818	for nonzero steps into checks on the bounds of DR_STEP.  Try using
16819	a bunds check for variable steps if the minimum required step is
16820	relatively small. Update calls to the dr_with_seg_len
16821	constructor and to vect_compile_time_alias.
16822	* tree-vect-loop-manip.c (vect_create_cond_for_lower_bounds): New
16823	function.
16824	(vect_loop_versioning): Call it.
16825	* tree-vect-loop.c (vect_analyze_loop_2): Clear LOOP_VINFO_LOWER_BOUNDS
16826	when retrying.
16827	(vect_estimate_min_profitable_iters): Account for any bounds checks.
16828
168292018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
16830	    Alan Hayward  <alan.hayward@arm.com>
16831	    David Sherwood  <david.sherwood@arm.com>
16832
16833	* doc/sourcebuild.texi (vect_scatter_store): Document.
16834	* optabs.def (scatter_store_optab, mask_scatter_store_optab): New
16835	optabs.
16836	* doc/md.texi (scatter_store@var{m}, mask_scatter_store@var{m}):
16837	Document.
16838	* genopinit.c (main): Add supports_vec_scatter_store and
16839	supports_vec_scatter_store_cached to target_optabs.
16840	* gimple.h (gimple_expr_type): Handle IFN_SCATTER_STORE and
16841	IFN_MASK_SCATTER_STORE.
16842	* internal-fn.def (SCATTER_STORE, MASK_SCATTER_STORE): New internal
16843	functions.
16844	* internal-fn.h (internal_store_fn_p): Declare.
16845	(internal_fn_stored_value_index): Likewise.
16846	* internal-fn.c (scatter_store_direct): New macro.
16847	(expand_scatter_store_optab_fn): New function.
16848	(direct_scatter_store_optab_supported_p): New macro.
16849	(internal_store_fn_p): New function.
16850	(internal_gather_scatter_fn_p): Handle IFN_SCATTER_STORE and
16851	IFN_MASK_SCATTER_STORE.
16852	(internal_fn_mask_index): Likewise.
16853	(internal_fn_stored_value_index): New function.
16854	(internal_gather_scatter_fn_supported_p): Adjust operand numbers
16855	for scatter stores.
16856	* optabs-query.h (supports_vec_scatter_store_p): Declare.
16857	* optabs-query.c (supports_vec_scatter_store_p): New function.
16858	* tree-vectorizer.h (vect_get_store_rhs): Declare.
16859	* tree-vect-data-refs.c (vect_analyze_data_ref_access): Return
16860	true for scatter stores.
16861	(vect_gather_scatter_fn_p): Handle scatter stores too.
16862	(vect_check_gather_scatter): Consider using scatter stores if
16863	supports_vec_scatter_store_p.
16864	* tree-vect-patterns.c (vect_try_gather_scatter_pattern): Handle
16865	scatter stores too.
16866	* tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use
16867	internal_fn_stored_value_index.
16868	(check_load_store_masking): Handle scatter stores too.
16869	(vect_get_store_rhs): Make public.
16870	(vectorizable_call): Use internal_store_fn_p.
16871	(vectorizable_store): Handle scatter store internal functions.
16872	(vect_transform_stmt): Compare GROUP_STORE_COUNT with GROUP_SIZE
16873	when deciding whether the end of the group has been reached.
16874	* config/aarch64/aarch64.md (UNSPEC_ST1_SCATTER): New unspec.
16875	* config/aarch64/aarch64-sve.md (scatter_store<mode>): New expander.
16876	(mask_scatter_store<mode>): New insns.
16877
168782018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
16879	    Alan Hayward  <alan.hayward@arm.com>
16880	    David Sherwood  <david.sherwood@arm.com>
16881
16882	* tree-vectorizer.h (vect_gather_scatter_fn_p): Declare.
16883	* tree-vect-data-refs.c (vect_gather_scatter_fn_p): Make public.
16884	* tree-vect-stmts.c (vect_truncate_gather_scatter_offset): New
16885	function.
16886	(vect_use_strided_gather_scatters_p): Take a masked_p argument.
16887	Use vect_truncate_gather_scatter_offset if we can't treat the
16888	operation as a normal gather load or scatter store.
16889	(get_group_load_store_type): Take the gather_scatter_info
16890	as argument.  Try using a gather load or scatter store for
16891	single-element groups.
16892	(get_load_store_type): Update calls to get_group_load_store_type
16893	and vect_use_strided_gather_scatters_p.
16894
168952018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
16896	    Alan Hayward  <alan.hayward@arm.com>
16897	    David Sherwood  <david.sherwood@arm.com>
16898
16899	* tree-vectorizer.h (vect_create_data_ref_ptr): Take an extra
16900	optional tree argument.
16901	* tree-vect-data-refs.c (vect_check_gather_scatter): Check for
16902	null target hooks.
16903	(vect_create_data_ref_ptr): Take the iv_step as an optional argument,
16904	but continue to use the current value as a fallback.
16905	(bump_vector_ptr): Use operand_equal_p rather than tree_int_cst_compare
16906	to compare the updates.
16907	* tree-vect-stmts.c (vect_use_strided_gather_scatters_p): New function.
16908	(get_load_store_type): Use it when handling a strided access.
16909	(vect_get_strided_load_store_ops): New function.
16910	(vect_get_data_ptr_increment): Likewise.
16911	(vectorizable_load): Handle strided gather loads.  Always pass
16912	a step to vect_create_data_ref_ptr and bump_vector_ptr.
16913
169142018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
16915	    Alan Hayward  <alan.hayward@arm.com>
16916	    David Sherwood  <david.sherwood@arm.com>
16917
16918	* doc/md.texi (gather_load@var{m}): Document.
16919	(mask_gather_load@var{m}): Likewise.
16920	* genopinit.c (main): Add supports_vec_gather_load and
16921	supports_vec_gather_load_cached to target_optabs.
16922	* optabs-tree.c (init_tree_optimization_optabs): Use
16923	ggc_cleared_alloc to allocate target_optabs.
16924	* optabs.def (gather_load_optab, mask_gather_laod_optab): New optabs.
16925	* internal-fn.def (GATHER_LOAD, MASK_GATHER_LOAD): New internal
16926	functions.
16927	* internal-fn.h (internal_load_fn_p): Declare.
16928	(internal_gather_scatter_fn_p): Likewise.
16929	(internal_fn_mask_index): Likewise.
16930	(internal_gather_scatter_fn_supported_p): Likewise.
16931	* internal-fn.c (gather_load_direct): New macro.
16932	(expand_gather_load_optab_fn): New function.
16933	(direct_gather_load_optab_supported_p): New macro.
16934	(direct_internal_fn_optab): New function.
16935	(internal_load_fn_p): Likewise.
16936	(internal_gather_scatter_fn_p): Likewise.
16937	(internal_fn_mask_index): Likewise.
16938	(internal_gather_scatter_fn_supported_p): Likewise.
16939	* optabs-query.c (supports_at_least_one_mode_p): New function.
16940	(supports_vec_gather_load_p): Likewise.
16941	* optabs-query.h (supports_vec_gather_load_p): Declare.
16942	* tree-vectorizer.h (gather_scatter_info): Add ifn, element_type
16943	and memory_type field.
16944	(NUM_PATTERNS): Bump to 15.
16945	* tree-vect-data-refs.c: Include internal-fn.h.
16946	(vect_gather_scatter_fn_p): New function.
16947	(vect_describe_gather_scatter_call): Likewise.
16948	(vect_check_gather_scatter): Try using internal functions for
16949	gather loads.  Recognize existing calls to a gather load function.
16950	(vect_analyze_data_refs): Consider using gather loads if
16951	supports_vec_gather_load_p.
16952	* tree-vect-patterns.c (vect_get_load_store_mask): New function.
16953	(vect_get_gather_scatter_offset_type): Likewise.
16954	(vect_convert_mask_for_vectype): Likewise.
16955	(vect_add_conversion_to_patterm): Likewise.
16956	(vect_try_gather_scatter_pattern): Likewise.
16957	(vect_recog_gather_scatter_pattern): New pattern recognizer.
16958	(vect_vect_recog_func_ptrs): Add it.
16959	* tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use
16960	internal_fn_mask_index and internal_gather_scatter_fn_p.
16961	(check_load_store_masking): Take the gather_scatter_info as an
16962	argument and handle gather loads.
16963	(vect_get_gather_scatter_ops): New function.
16964	(vectorizable_call): Check internal_load_fn_p.
16965	(vectorizable_load): Likewise.  Handle gather load internal
16966	functions.
16967	(vectorizable_store): Update call to check_load_store_masking.
16968	* config/aarch64/aarch64.md (UNSPEC_LD1_GATHER): New unspec.
16969	* config/aarch64/iterators.md (SVE_S, SVE_D): New mode iterators.
16970	* config/aarch64/predicates.md (aarch64_gather_scale_operand_w)
16971	(aarch64_gather_scale_operand_d): New predicates.
16972	* config/aarch64/aarch64-sve.md (gather_load<mode>): New expander.
16973	(mask_gather_load<mode>): New insns.
16974
169752018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
16976	    Alan Hayward  <alan.hayward@arm.com>
16977	    David Sherwood  <david.sherwood@arm.com>
16978
16979	* optabs.def (fold_left_plus_optab): New optab.
16980	* doc/md.texi (fold_left_plus_@var{m}): Document.
16981	* internal-fn.def (IFN_FOLD_LEFT_PLUS): New internal function.
16982	* internal-fn.c (fold_left_direct): Define.
16983	(expand_fold_left_optab_fn): Likewise.
16984	(direct_fold_left_optab_supported_p): Likewise.
16985	* fold-const-call.c (fold_const_fold_left): New function.
16986	(fold_const_call): Use it to fold CFN_FOLD_LEFT_PLUS.
16987	* tree-parloops.c (valid_reduction_p): New function.
16988	(gather_scalar_reductions): Use it.
16989	* tree-vectorizer.h (FOLD_LEFT_REDUCTION): New vect_reduction_type.
16990	(vect_finish_replace_stmt): Declare.
16991	* tree-vect-loop.c (fold_left_reduction_fn): New function.
16992	(needs_fold_left_reduction_p): New function, split out from...
16993	(vect_is_simple_reduction): ...here.  Accept reductions that
16994	forbid reassociation, but give them type FOLD_LEFT_REDUCTION.
16995	(vect_force_simple_reduction): Also store the reduction type in
16996	the assignment's STMT_VINFO_REDUC_TYPE.
16997	(vect_model_reduction_cost): Handle FOLD_LEFT_REDUCTION.
16998	(merge_with_identity): New function.
16999	(vect_expand_fold_left): Likewise.
17000	(vectorize_fold_left_reduction): Likewise.
17001	(vectorizable_reduction): Handle FOLD_LEFT_REDUCTION.  Leave the
17002	scalar phi in place for it.  Check for target support and reject
17003	cases that would reassociate the operation.  Defer the transform
17004	phase to vectorize_fold_left_reduction.
17005	* config/aarch64/aarch64.md (UNSPEC_FADDA): New unspec.
17006	* config/aarch64/aarch64-sve.md (fold_left_plus_<mode>): New expander.
17007	(*fold_left_plus_<mode>, *pred_fold_left_plus_<mode>): New insns.
17008
170092018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17010
17011	* tree-if-conv.c (predicate_mem_writes): Remove redundant
17012	call to ifc_temp_var.
17013
170142018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17015	    Alan Hayward  <alan.hayward@arm.com>
17016	    David Sherwood  <david.sherwood@arm.com>
17017
17018	* target.def (legitimize_address_displacement): Take the original
17019	offset as a poly_int.
17020	* targhooks.h (default_legitimize_address_displacement): Update
17021	accordingly.
17022	* targhooks.c (default_legitimize_address_displacement): Likewise.
17023	* doc/tm.texi: Regenerate.
17024	* lra-constraints.c (base_plus_disp_to_reg): Take the displacement
17025	as an argument, moving assert of ad->disp == ad->disp_term to...
17026	(process_address_1): ...here.  Update calls to base_plus_disp_to_reg.
17027	Try calling targetm.legitimize_address_displacement before expanding
17028	the address rather than afterwards, and adjust for the new interface.
17029	* config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
17030	Match the new hook interface.  Handle SVE addresses.
17031	* config/sh/sh.c (sh_legitimize_address_displacement): Make the
17032	new hook interface.
17033
170342018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17035
17036	* Makefile.in (OBJS): Add early-remat.o.
17037	* target.def (select_early_remat_modes): New hook.
17038	* doc/tm.texi.in (TARGET_SELECT_EARLY_REMAT_MODES): New hook.
17039	* doc/tm.texi: Regenerate.
17040	* targhooks.h (default_select_early_remat_modes): Declare.
17041	* targhooks.c (default_select_early_remat_modes): New function.
17042	* timevar.def (TV_EARLY_REMAT): New timevar.
17043	* passes.def (pass_early_remat): New pass.
17044	* tree-pass.h (make_pass_early_remat): Declare.
17045	* early-remat.c: New file.
17046	* config/aarch64/aarch64.c (aarch64_select_early_remat_modes): New
17047	function.
17048	(TARGET_SELECT_EARLY_REMAT_MODES): Define.
17049
170502018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17051	    Alan Hayward  <alan.hayward@arm.com>
17052	    David Sherwood  <david.sherwood@arm.com>
17053
17054	* tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Replace
17055	vfm1 with a bound_epilog parameter.
17056	(vect_do_peeling): Update calls accordingly, and move the prologue
17057	call earlier in the function.  Treat the base bound_epilog as 0 for
17058	fully-masked loops and retain vf - 1 for other loops.  Add 1 to
17059	this base when peeling for gaps.
17060	* tree-vect-loop.c (vect_analyze_loop_2): Allow peeling for gaps
17061	with fully-masked loops.
17062	(vect_estimate_min_profitable_iters): Handle the single peeled
17063	iteration in that case.
17064
170652018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17066	    Alan Hayward  <alan.hayward@arm.com>
17067	    David Sherwood  <david.sherwood@arm.com>
17068
17069	* tree-vect-data-refs.c (vect_analyze_group_access_1): Allow
17070	single-element interleaving even if the size is not a power of 2.
17071	* tree-vect-stmts.c (get_load_store_type): Disallow elementwise
17072	accesses for single-element interleaving if the group size is
17073	not a power of 2.
17074
170752018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17076	    Alan Hayward  <alan.hayward@arm.com>
17077	    David Sherwood  <david.sherwood@arm.com>
17078
17079	* doc/md.texi (fold_extract_last_@var{m}): Document.
17080	* doc/sourcebuild.texi (vect_fold_extract_last): Likewise.
17081	* optabs.def (fold_extract_last_optab): New optab.
17082	* internal-fn.def (FOLD_EXTRACT_LAST): New internal function.
17083	* internal-fn.c (fold_extract_direct): New macro.
17084	(expand_fold_extract_optab_fn): Likewise.
17085	(direct_fold_extract_optab_supported_p): Likewise.
17086	* tree-vectorizer.h (EXTRACT_LAST_REDUCTION): New vect_reduction_type.
17087	* tree-vect-loop.c (vect_model_reduction_cost): Handle
17088	EXTRACT_LAST_REDUCTION.
17089	(get_initial_def_for_reduction): Do not create an initial vector
17090	for EXTRACT_LAST_REDUCTION reductions.
17091	(vectorizable_reduction): Leave the scalar phi in place for
17092	EXTRACT_LAST_REDUCTIONs.  Try using EXTRACT_LAST_REDUCTION
17093	ahead of INTEGER_INDUC_COND_REDUCTION.  Do not check for an
17094	epilogue code for EXTRACT_LAST_REDUCTION and defer the
17095	transform phase to vectorizable_condition.
17096	* tree-vect-stmts.c (vect_finish_stmt_generation_1): New function,
17097	split out from...
17098	(vect_finish_stmt_generation): ...here.
17099	(vect_finish_replace_stmt): New function.
17100	(vectorizable_condition): Handle EXTRACT_LAST_REDUCTION.
17101	* config/aarch64/aarch64-sve.md (fold_extract_last_<mode>): New
17102	pattern.
17103	* config/aarch64/aarch64.md (UNSPEC_CLASTB): New unspec.
17104
171052018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17106	    Alan Hayward  <alan.hayward@arm.com>
17107	    David Sherwood  <david.sherwood@arm.com>
17108
17109	* doc/md.texi (extract_last_@var{m}): Document.
17110	* optabs.def (extract_last_optab): New optab.
17111	* internal-fn.def (EXTRACT_LAST): New internal function.
17112	* internal-fn.c (cond_unary_direct): New macro.
17113	(expand_cond_unary_optab_fn): Likewise.
17114	(direct_cond_unary_optab_supported_p): Likewise.
17115	* tree-vect-loop.c (vectorizable_live_operation): Allow fully-masked
17116	loops using EXTRACT_LAST.
17117	* config/aarch64/aarch64-sve.md (aarch64_sve_lastb<mode>): Rename to...
17118	(extract_last_<mode>): ...this optab.
17119	(vec_extract<mode><Vel>): Update accordingly.
17120
171212018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17122	    Alan Hayward  <alan.hayward@arm.com>
17123	    David Sherwood  <david.sherwood@arm.com>
17124
17125	* target.def (empty_mask_is_expensive): New hook.
17126	* doc/tm.texi.in (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): New hook.
17127	* doc/tm.texi: Regenerate.
17128	* targhooks.h (default_empty_mask_is_expensive): Declare.
17129	* targhooks.c (default_empty_mask_is_expensive): New function.
17130	* tree-vectorizer.c (vectorize_loops): Only call optimize_mask_stores
17131	if the target says that empty masks are expensive.
17132	* config/aarch64/aarch64.c (aarch64_empty_mask_is_expensive):
17133	New function.
17134	(TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Redefine.
17135
171362018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17137	    Alan Hayward  <alan.hayward@arm.com>
17138	    David Sherwood  <david.sherwood@arm.com>
17139
17140	* tree-vectorizer.h (_loop_vec_info::mask_skip_niters): New field.
17141	(LOOP_VINFO_MASK_SKIP_NITERS): New macro.
17142	(vect_use_loop_mask_for_alignment_p): New function.
17143	(vect_prepare_for_masked_peels, vect_gen_while_not): Declare.
17144	* tree-vect-loop-manip.c (vect_set_loop_masks_directly): Add an
17145	niters_skip argument.  Make sure that the first niters_skip elements
17146	of the first iteration are inactive.
17147	(vect_set_loop_condition_masked): Handle LOOP_VINFO_MASK_SKIP_NITERS.
17148	Update call to vect_set_loop_masks_directly.
17149	(get_misalign_in_elems): New function, split out from...
17150	(vect_gen_prolog_loop_niters): ...here.
17151	(vect_update_init_of_dr): Take a code argument that specifies whether
17152	the adjustment should be added or subtracted.
17153	(vect_update_init_of_drs): Likewise.
17154	(vect_prepare_for_masked_peels): New function.
17155	(vect_do_peeling): Skip prologue peeling if we're using a mask
17156	instead.  Update call to vect_update_inits_of_drs.
17157	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
17158	mask_skip_niters.
17159	(vect_analyze_loop_2): Allow fully-masked loops with peeling for
17160	alignment.  Do not include the number of peeled iterations in
17161	the minimum threshold in that case.
17162	(vectorizable_induction): Adjust the start value down by
17163	LOOP_VINFO_MASK_SKIP_NITERS iterations.
17164	(vect_transform_loop): Call vect_prepare_for_masked_peels.
17165	Take the number of skipped iterations into account when calculating
17166	the loop bounds.
17167	* tree-vect-stmts.c (vect_gen_while_not): New function.
17168
171692018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17170	    Alan Hayward  <alan.hayward@arm.com>
17171	    David Sherwood  <david.sherwood@arm.com>
17172
17173	* doc/sourcebuild.texi (vect_fully_masked): Document.
17174	* params.def (PARAM_MIN_VECT_LOOP_BOUND): Change minimum and
17175	default value to 0.
17176	* tree-vect-loop.c (vect_analyze_loop_costing): New function,
17177	split out from...
17178	(vect_analyze_loop_2): ...here. Don't check the vectorization
17179	factor against the number of loop iterations if the loop is
17180	fully-masked.
17181
171822018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17183	    Alan Hayward  <alan.hayward@arm.com>
17184	    David Sherwood  <david.sherwood@arm.com>
17185
17186	* tree-ssa-loop-ivopts.c (USE_ADDRESS): Split into...
17187	(USE_REF_ADDRESS, USE_PTR_ADDRESS): ...these new use types.
17188	(dump_groups): Update accordingly.
17189	(iv_use::mem_type): New member variable.
17190	(address_p): New function.
17191	(record_use): Add a mem_type argument and initialize the new
17192	mem_type field.
17193	(record_group_use): Add a mem_type argument.  Use address_p.
17194	Remove obsolete null checks of base_object.  Update call to record_use.
17195	(find_interesting_uses_op): Update call to record_group_use.
17196	(find_interesting_uses_cond): Likewise.
17197	(find_interesting_uses_address): Likewise.
17198	(get_mem_type_for_internal_fn): New function.
17199	(find_address_like_use): Likewise.
17200	(find_interesting_uses_stmt): Try find_address_like_use before
17201	calling find_interesting_uses_op.
17202	(addr_offset_valid_p): Use the iv mem_type field as the type
17203	of the addressed memory.
17204	(add_autoinc_candidates): Likewise.
17205	(get_address_cost): Likewise.
17206	(split_small_address_groups_p): Use address_p.
17207	(split_address_groups): Likewise.
17208	(add_iv_candidate_for_use): Likewise.
17209	(autoinc_possible_for_pair): Likewise.
17210	(rewrite_groups): Likewise.
17211	(get_use_type): Check for USE_REF_ADDRESS instead of USE_ADDRESS.
17212	(determine_group_iv_cost): Update after split of USE_ADDRESS.
17213	(get_alias_ptr_type_for_ptr_address): New function.
17214	(rewrite_use_address): Rewrite address uses in calls that were
17215	identified by find_address_like_use.
17216
172172018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17218	    Alan Hayward  <alan.hayward@arm.com>
17219	    David Sherwood  <david.sherwood@arm.com>
17220
17221	* expr.c (expand_expr_addr_expr_1): Handle ADDR_EXPRs of
17222	TARGET_MEM_REFs.
17223	* gimple-expr.h (is_gimple_addressable: Likewise.
17224	* gimple-expr.c (is_gimple_address): Likewise.
17225	* internal-fn.c (expand_call_mem_ref): New function.
17226	(expand_mask_load_optab_fn): Use it.
17227	(expand_mask_store_optab_fn): Likewise.
17228
172292018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17230	    Alan Hayward  <alan.hayward@arm.com>
17231	    David Sherwood  <david.sherwood@arm.com>
17232
17233	* doc/md.texi (cond_add@var{mode}, cond_sub@var{mode})
17234	(cond_and@var{mode}, cond_ior@var{mode}, cond_xor@var{mode})
17235	(cond_smin@var{mode}, cond_smax@var{mode}, cond_umin@var{mode})
17236	(cond_umax@var{mode}): Document.
17237	* optabs.def (cond_add_optab, cond_sub_optab, cond_and_optab)
17238	(cond_ior_optab, cond_xor_optab, cond_smin_optab, cond_smax_optab)
17239	(cond_umin_optab, cond_umax_optab): New optabs.
17240	* internal-fn.def (COND_ADD, COND_SUB, COND_MIN, COND_MAX, COND_AND)
17241	(COND_IOR, COND_XOR): New internal functions.
17242	* internal-fn.h (get_conditional_internal_fn): Declare.
17243	* internal-fn.c (cond_binary_direct): New macro.
17244	(expand_cond_binary_optab_fn): Likewise.
17245	(direct_cond_binary_optab_supported_p): Likewise.
17246	(get_conditional_internal_fn): New function.
17247	* tree-vect-loop.c (vectorizable_reduction): Handle fully-masked loops.
17248	Cope with reduction statements that are vectorized as calls rather
17249	than assignments.
17250	* config/aarch64/aarch64-sve.md (cond_<optab><mode>): New insns.
17251	* config/aarch64/iterators.md (UNSPEC_COND_ADD, UNSPEC_COND_SUB)
17252	(UNSPEC_COND_SMAX, UNSPEC_COND_UMAX, UNSPEC_COND_SMIN)
17253	(UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR)
17254	(UNSPEC_COND_EOR): New unspecs.
17255	(optab): Add mappings for them.
17256	(SVE_COND_INT_OP, SVE_COND_FP_OP): New int iterators.
17257	(sve_int_op, sve_fp_op): New int attributes.
17258
172592018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17260	    Alan Hayward  <alan.hayward@arm.com>
17261	    David Sherwood  <david.sherwood@arm.com>
17262
17263	* optabs.def (while_ult_optab): New optab.
17264	* doc/md.texi (while_ult@var{m}@var{n}): Document.
17265	* internal-fn.def (WHILE_ULT): New internal function.
17266	* internal-fn.h (direct_internal_fn_supported_p): New override
17267	that takes two types as argument.
17268	* internal-fn.c (while_direct): New macro.
17269	(expand_while_optab_fn): New function.
17270	(convert_optab_supported_p): Likewise.
17271	(direct_while_optab_supported_p): New macro.
17272	* wide-int.h (wi::udiv_ceil): New function.
17273	* tree-vectorizer.h (rgroup_masks): New structure.
17274	(vec_loop_masks): New typedef.
17275	(_loop_vec_info): Add masks, mask_compare_type, can_fully_mask_p
17276	and fully_masked_p.
17277	(LOOP_VINFO_CAN_FULLY_MASK_P, LOOP_VINFO_FULLY_MASKED_P)
17278	(LOOP_VINFO_MASKS, LOOP_VINFO_MASK_COMPARE_TYPE): New macros.
17279	(vect_max_vf): New function.
17280	(slpeel_make_loop_iterate_ntimes): Delete.
17281	(vect_set_loop_condition, vect_get_loop_mask_type, vect_gen_while)
17282	(vect_halve_mask_nunits, vect_double_mask_nunits): Declare.
17283	(vect_record_loop_mask, vect_get_loop_mask): Likewise.
17284	* tree-vect-loop-manip.c: Include tree-ssa-loop-niter.h,
17285	internal-fn.h, stor-layout.h and optabs-query.h.
17286	(vect_set_loop_mask): New function.
17287	(add_preheader_seq): Likewise.
17288	(add_header_seq): Likewise.
17289	(interleave_supported_p): Likewise.
17290	(vect_maybe_permute_loop_masks): Likewise.
17291	(vect_set_loop_masks_directly): Likewise.
17292	(vect_set_loop_condition_masked): Likewise.
17293	(vect_set_loop_condition_unmasked): New function, split out from
17294	slpeel_make_loop_iterate_ntimes.
17295	(slpeel_make_loop_iterate_ntimes): Rename to..
17296	(vect_set_loop_condition): ...this.  Use vect_set_loop_condition_masked
17297	for fully-masked loops and vect_set_loop_condition_unmasked otherwise.
17298	(vect_do_peeling): Update call accordingly.
17299	(vect_gen_vector_loop_niters): Use VF as the step for fully-masked
17300	loops.
17301	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
17302	mask_compare_type, can_fully_mask_p and fully_masked_p.
17303	(release_vec_loop_masks): New function.
17304	(_loop_vec_info): Use it to free the loop masks.
17305	(can_produce_all_loop_masks_p): New function.
17306	(vect_get_max_nscalars_per_iter): Likewise.
17307	(vect_verify_full_masking): Likewise.
17308	(vect_analyze_loop_2): Save LOOP_VINFO_CAN_FULLY_MASK_P around
17309	retries, and free the mask rgroups before retrying.  Check loop-wide
17310	reasons for disallowing fully-masked loops.  Make the final decision
17311	about whether use a fully-masked loop or not.
17312	(vect_estimate_min_profitable_iters): Do not assume that peeling
17313	for the number of iterations will be needed for fully-masked loops.
17314	(vectorizable_reduction): Disable fully-masked loops.
17315	(vectorizable_live_operation): Likewise.
17316	(vect_halve_mask_nunits): New function.
17317	(vect_double_mask_nunits): Likewise.
17318	(vect_record_loop_mask): Likewise.
17319	(vect_get_loop_mask): Likewise.
17320	(vect_transform_loop): Handle the case in which the final loop
17321	iteration might handle a partial vector.  Call vect_set_loop_condition
17322	instead of slpeel_make_loop_iterate_ntimes.
17323	* tree-vect-stmts.c: Include tree-ssa-loop-niter.h and gimple-fold.h.
17324	(check_load_store_masking): New function.
17325	(prepare_load_store_mask): Likewise.
17326	(vectorizable_store): Handle fully-masked loops.
17327	(vectorizable_load): Likewise.
17328	(supportable_widening_operation): Use vect_halve_mask_nunits for
17329	booleans.
17330	(supportable_narrowing_operation): Likewise vect_double_mask_nunits.
17331	(vect_gen_while): New function.
17332	* config/aarch64/aarch64.md (umax<mode>3): New expander.
17333	(aarch64_uqdec<mode>): New insn.
17334
173352018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17336	    Alan Hayward  <alan.hayward@arm.com>
17337	    David Sherwood  <david.sherwood@arm.com>
17338
17339	* optabs.def (reduc_and_scal_optab, reduc_ior_scal_optab)
17340	(reduc_xor_scal_optab): New optabs.
17341	* doc/md.texi (reduc_and_scal_@var{m}, reduc_ior_scal_@var{m})
17342	(reduc_xor_scal_@var{m}): Document.
17343	* doc/sourcebuild.texi (vect_logical_reduc): Likewise.
17344	* internal-fn.def (IFN_REDUC_AND, IFN_REDUC_IOR, IFN_REDUC_XOR): New
17345	internal functions.
17346	* fold-const-call.c (fold_const_call): Handle them.
17347	* tree-vect-loop.c (reduction_fn_for_scalar_code): Return the new
17348	internal functions for BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
17349	* config/aarch64/aarch64-sve.md (reduc_<bit_reduc>_scal_<mode>):
17350	(*reduc_<bit_reduc>_scal_<mode>): New patterns.
17351	* config/aarch64/iterators.md (UNSPEC_ANDV, UNSPEC_ORV)
17352	(UNSPEC_XORV): New unspecs.
17353	(optab): Add entries for them.
17354	(BITWISEV): New int iterator.
17355	(bit_reduc_op): New int attributes.
17356
173572018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17358	    Alan Hayward  <alan.hayward@arm.com>
17359	    David Sherwood  <david.sherwood@arm.com>
17360
17361	* doc/md.texi (vec_shl_insert_@var{m}): New optab.
17362	* internal-fn.def (VEC_SHL_INSERT): New internal function.
17363	* optabs.def (vec_shl_insert_optab): New optab.
17364	* tree-vectorizer.h (can_duplicate_and_interleave_p): Declare.
17365	(duplicate_and_interleave): Likewise.
17366	* tree-vect-loop.c: Include internal-fn.h.
17367	(neutral_op_for_slp_reduction): New function, split out from
17368	get_initial_defs_for_reduction.
17369	(get_initial_def_for_reduction): Handle option 2 for variable-length
17370	vectors by loading the neutral value into a vector and then shifting
17371	the initial value into element 0.
17372	(get_initial_defs_for_reduction): Replace the code argument with
17373	the neutral value calculated by neutral_op_for_slp_reduction.
17374	Use gimple_build_vector for constant-length vectors.
17375	Use IFN_VEC_SHL_INSERT for variable-length vectors if all
17376	but the first group_size elements have a neutral value.
17377	Use duplicate_and_interleave otherwise.
17378	(vect_create_epilog_for_reduction): Take a neutral_op parameter.
17379	Update call to get_initial_defs_for_reduction.  Handle SLP
17380	reductions for variable-length vectors by creating one vector
17381	result for each scalar result, with the elements associated
17382	with other scalar results stubbed out with the neutral value.
17383	(vectorizable_reduction): Call neutral_op_for_slp_reduction.
17384	Require IFN_VEC_SHL_INSERT for double reductions on
17385	variable-length vectors, or SLP reductions that have
17386	a neutral value.  Require can_duplicate_and_interleave_p
17387	support for variable-length unchained SLP reductions if there
17388	is no neutral value, such as for MIN/MAX reductions.  Also require
17389	the number of vector elements to be a multiple of the number of
17390	SLP statements when doing variable-length unchained SLP reductions.
17391	Update call to vect_create_epilog_for_reduction.
17392	* tree-vect-slp.c (can_duplicate_and_interleave_p): Make public
17393	and remove initial values.
17394	(duplicate_and_interleave): Make public.
17395	* config/aarch64/aarch64.md (UNSPEC_INSR): New unspec.
17396	* config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): New insn.
17397
173982018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17399	    Alan Hayward  <alan.hayward@arm.com>
17400	    David Sherwood  <david.sherwood@arm.com>
17401
17402	* tree-vect-slp.c: Include gimple-fold.h and internal-fn.h
17403	(can_duplicate_and_interleave_p): New function.
17404	(vect_get_and_check_slp_defs): Take the vector of statements
17405	rather than just the current one.  Remove excess parentheses.
17406	Restriction rejectinon of vect_constant_def and vect_external_def
17407	for variable-length vectors to boolean types, or types for which
17408	can_duplicate_and_interleave_p is false.
17409	(vect_build_slp_tree_2): Update call to vect_get_and_check_slp_defs.
17410	(duplicate_and_interleave): New function.
17411	(vect_get_constant_vectors): Use gimple_build_vector for
17412	constant-length vectors and suitable variable-length constant
17413	vectors.  Use duplicate_and_interleave for other variable-length
17414	vectors.  Don't defer the update when inserting new statements.
17415
174162018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17417	    Alan Hayward  <alan.hayward@arm.com>
17418	    David Sherwood  <david.sherwood@arm.com>
17419
17420	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Make sure
17421	min_profitable_iters doesn't go negative.
17422
174232018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17424	    Alan Hayward  <alan.hayward@arm.com>
17425	    David Sherwood  <david.sherwood@arm.com>
17426
17427	* doc/md.texi (vec_mask_load_lanes@var{m}@var{n}): Document.
17428	(vec_mask_store_lanes@var{m}@var{n}): Likewise.
17429	* optabs.def (vec_mask_load_lanes_optab): New optab.
17430	(vec_mask_store_lanes_optab): Likewise.
17431	* internal-fn.def (MASK_LOAD_LANES): New internal function.
17432	(MASK_STORE_LANES): Likewise.
17433	* internal-fn.c (mask_load_lanes_direct): New macro.
17434	(mask_store_lanes_direct): Likewise.
17435	(expand_mask_load_optab_fn): Handle masked operations.
17436	(expand_mask_load_lanes_optab_fn): New macro.
17437	(expand_mask_store_optab_fn): Handle masked operations.
17438	(expand_mask_store_lanes_optab_fn): New macro.
17439	(direct_mask_load_lanes_optab_supported_p): Likewise.
17440	(direct_mask_store_lanes_optab_supported_p): Likewise.
17441	* tree-vectorizer.h (vect_store_lanes_supported): Take a masked_p
17442	parameter.
17443	(vect_load_lanes_supported): Likewise.
17444	* tree-vect-data-refs.c (strip_conversion): New function.
17445	(can_group_stmts_p): Likewise.
17446	(vect_analyze_data_ref_accesses): Use it instead of checking
17447	for a pair of assignments.
17448	(vect_store_lanes_supported): Take a masked_p parameter.
17449	(vect_load_lanes_supported): Likewise.
17450	* tree-vect-loop.c (vect_analyze_loop_2): Update calls to
17451	vect_store_lanes_supported and vect_load_lanes_supported.
17452	* tree-vect-slp.c (vect_analyze_slp_instance): Likewise.
17453	* tree-vect-stmts.c (get_group_load_store_type): Take a masked_p
17454	parameter.  Don't allow gaps for masked accesses.
17455	Use vect_get_store_rhs.  Update calls to vect_store_lanes_supported
17456	and vect_load_lanes_supported.
17457	(get_load_store_type): Take a masked_p parameter and update
17458	call to get_group_load_store_type.
17459	(vectorizable_store): Update call to get_load_store_type.
17460	Handle IFN_MASK_STORE_LANES.
17461	(vectorizable_load): Update call to get_load_store_type.
17462	Handle IFN_MASK_LOAD_LANES.
17463
174642018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17465	    Alan Hayward  <alan.hayward@arm.com>
17466	    David Sherwood  <david.sherwood@arm.com>
17467
17468	* config/aarch64/aarch64-modes.def: Define x2, x3 and x4 vector
17469	modes for SVE.
17470	* config/aarch64/aarch64-protos.h
17471	(aarch64_sve_struct_memory_operand_p): Declare.
17472	* config/aarch64/iterators.md (SVE_STRUCT): New mode iterator.
17473	(vector_count, insn_length, VSINGLE, vsingle): New mode attributes.
17474	(VPRED, vpred): Handle SVE structure modes.
17475	* config/aarch64/constraints.md (Utx): New constraint.
17476	* config/aarch64/predicates.md (aarch64_sve_struct_memory_operand)
17477	(aarch64_sve_struct_nonimmediate_operand): New predicates.
17478	* config/aarch64/aarch64.md (UNSPEC_LDN, UNSPEC_STN): New unspecs.
17479	* config/aarch64/aarch64-sve.md (mov<mode>, *aarch64_sve_mov<mode>_le)
17480	(*aarch64_sve_mov<mode>_be, pred_mov<mode>): New patterns for
17481	structure modes.  Split into pieces after RA.
17482	(vec_load_lanes<mode><vsingle>, vec_mask_load_lanes<mode><vsingle>)
17483	(vec_store_lanes<mode><vsingle>, vec_mask_store_lanes<mode><vsingle>):
17484	New patterns.
17485	* config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
17486	SVE structure modes.
17487	(aarch64_classify_address): Likewise.
17488	(sizetochar): Move earlier in file.
17489	(aarch64_print_operand): Handle SVE register lists.
17490	(aarch64_array_mode): New function.
17491	(aarch64_sve_struct_memory_operand_p): Likewise.
17492	(TARGET_ARRAY_MODE): Redefine.
17493
174942018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17495	    Alan Hayward  <alan.hayward@arm.com>
17496	    David Sherwood  <david.sherwood@arm.com>
17497
17498	* target.def (array_mode): New target hook.
17499	* doc/tm.texi.in (TARGET_ARRAY_MODE): New hook.
17500	* doc/tm.texi: Regenerate.
17501	* hooks.h (hook_optmode_mode_uhwi_none): Declare.
17502	* hooks.c (hook_optmode_mode_uhwi_none): New function.
17503	* tree-vect-data-refs.c (vect_lanes_optab_supported_p): Use
17504	targetm.array_mode.
17505	* stor-layout.c (mode_for_array): Likewise.  Support polynomial
17506	type sizes.
17507
175082018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17509	    Alan Hayward  <alan.hayward@arm.com>
17510	    David Sherwood  <david.sherwood@arm.com>
17511
17512	* fold-const.c (fold_binary_loc): Check the argument types
17513	rather than the result type when testing for a vector operation.
17514
175152018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17516
17517	* doc/tm.texi.in (DWARF_LAZY_REGISTER_VALUE): Document.
17518	* doc/tm.texi: Regenerate.
17519
175202018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17521	    Alan Hayward  <alan.hayward@arm.com>
17522	    David Sherwood  <david.sherwood@arm.com>
17523
17524	* doc/invoke.texi (-msve-vector-bits=): Document new option.
17525	(sve): Document new AArch64 extension.
17526	* doc/md.texi (w): Extend the description of the AArch64
17527	constraint to include SVE vectors.
17528	(Upl, Upa): Document new AArch64 predicate constraints.
17529	* config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): New
17530	enum.
17531	* config/aarch64/aarch64.opt (sve_vector_bits): New enum.
17532	(msve-vector-bits=): New option.
17533	* config/aarch64/aarch64-option-extensions.def (fp, simd): Disable
17534	SVE when these are disabled.
17535	(sve): New extension.
17536	* config/aarch64/aarch64-modes.def: Define SVE vector and predicate
17537	modes.  Adjust their number of units based on aarch64_sve_vg.
17538	(MAX_BITSIZE_MODE_ANY_MODE): Define.
17539	* config/aarch64/aarch64-protos.h (ADDR_QUERY_ANY): New
17540	aarch64_addr_query_type.
17541	(aarch64_const_vec_all_same_in_range_p, aarch64_sve_pred_mode)
17542	(aarch64_sve_cnt_immediate_p, aarch64_sve_addvl_addpl_immediate_p)
17543	(aarch64_sve_inc_dec_immediate_p, aarch64_add_offset_temporaries)
17544	(aarch64_split_add_offset, aarch64_output_sve_cnt_immediate)
17545	(aarch64_output_sve_addvl_addpl, aarch64_output_sve_inc_dec_immediate)
17546	(aarch64_output_sve_mov_immediate, aarch64_output_ptrue): Declare.
17547	(aarch64_simd_imm_zero_p): Delete.
17548	(aarch64_check_zero_based_sve_index_immediate): Declare.
17549	(aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p)
17550	(aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p)
17551	(aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p)
17552	(aarch64_sve_float_mul_immediate_p): Likewise.
17553	(aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT
17554	rather than an rtx.
17555	(aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): Declare.
17556	(aarch64_expand_mov_immediate): Take a gen_vec_duplicate callback.
17557	(aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move): Declare.
17558	(aarch64_expand_sve_vec_cmp_int, aarch64_expand_sve_vec_cmp_float)
17559	(aarch64_expand_sve_vcond, aarch64_expand_sve_vec_perm): Declare.
17560	(aarch64_regmode_natural_size): Likewise.
17561	* config/aarch64/aarch64.h (AARCH64_FL_SVE): New macro.
17562	(AARCH64_FL_V8_3, AARCH64_FL_RCPC, AARCH64_FL_DOTPROD): Shift
17563	left one place.
17564	(AARCH64_ISA_SVE, TARGET_SVE): New macros.
17565	(FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add entries
17566	for VG and the SVE predicate registers.
17567	(V_ALIASES): Add a "z"-prefixed alias.
17568	(FIRST_PSEUDO_REGISTER): Change to P15_REGNUM + 1.
17569	(AARCH64_DWARF_VG, AARCH64_DWARF_P0): New macros.
17570	(PR_REGNUM_P, PR_LO_REGNUM_P): Likewise.
17571	(PR_LO_REGS, PR_HI_REGS, PR_REGS): New reg_classes.
17572	(REG_CLASS_NAMES): Add entries for them.
17573	(REG_CLASS_CONTENTS): Likewise.  Update ALL_REGS to include VG
17574	and the predicate registers.
17575	(aarch64_sve_vg): Declare.
17576	(BITS_PER_SVE_VECTOR, BYTES_PER_SVE_VECTOR, BYTES_PER_SVE_PRED)
17577	(SVE_BYTE_MODE, MAX_COMPILE_TIME_VEC_BYTES): New macros.
17578	(REGMODE_NATURAL_SIZE): Define.
17579	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle
17580	SVE macros.
17581	* config/aarch64/aarch64.c: Include cfgrtl.h.
17582	(simd_immediate_info): Add a constructor for series vectors,
17583	and an associated step field.
17584	(aarch64_sve_vg): New variable.
17585	(aarch64_dbx_register_number): Handle VG and the predicate registers.
17586	(aarch64_vect_struct_mode_p, aarch64_vector_mode_p): Delete.
17587	(VEC_ADVSIMD, VEC_SVE_DATA, VEC_SVE_PRED, VEC_STRUCT, VEC_ANY_SVE)
17588	(VEC_ANY_DATA, VEC_STRUCT): New constants.
17589	(aarch64_advsimd_struct_mode_p, aarch64_sve_pred_mode_p)
17590	(aarch64_classify_vector_mode, aarch64_vector_data_mode_p)
17591	(aarch64_sve_data_mode_p, aarch64_sve_pred_mode)
17592	(aarch64_get_mask_mode): New functions.
17593	(aarch64_hard_regno_nregs): Handle SVE data modes for FP_REGS
17594	and FP_LO_REGS.  Handle PR_REGS, PR_LO_REGS and PR_HI_REGS.
17595	(aarch64_hard_regno_mode_ok): Handle VG.  Also handle the SVE
17596	predicate modes and predicate registers.  Explicitly restrict
17597	GPRs to modes of 16 bytes or smaller.  Only allow FP registers
17598	to store a vector mode if it is recognized by
17599	aarch64_classify_vector_mode.
17600	(aarch64_regmode_natural_size): New function.
17601	(aarch64_hard_regno_caller_save_mode): Return the original mode
17602	for predicates.
17603	(aarch64_sve_cnt_immediate_p, aarch64_output_sve_cnt_immediate)
17604	(aarch64_sve_addvl_addpl_immediate_p, aarch64_output_sve_addvl_addpl)
17605	(aarch64_sve_inc_dec_immediate_p, aarch64_output_sve_inc_dec_immediate)
17606	(aarch64_add_offset_1_temporaries, aarch64_offset_temporaries): New
17607	functions.
17608	(aarch64_add_offset): Add a temp2 parameter.  Assert that temp1
17609	does not overlap dest if the function is frame-related.  Handle
17610	SVE constants.
17611	(aarch64_split_add_offset): New function.
17612	(aarch64_add_sp, aarch64_sub_sp): Add temp2 parameters and pass
17613	them aarch64_add_offset.
17614	(aarch64_allocate_and_probe_stack_space): Add a temp2 parameter
17615	and update call to aarch64_sub_sp.
17616	(aarch64_add_cfa_expression): New function.
17617	(aarch64_expand_prologue): Pass extra temporary registers to the
17618	functions above.  Handle the case in which we need to emit new
17619	DW_CFA_expressions for registers that were originally saved
17620	relative to the stack pointer, but now have to be expressed
17621	relative to the frame pointer.
17622	(aarch64_output_mi_thunk): Pass extra temporary registers to the
17623	functions above.
17624	(aarch64_expand_epilogue): Likewise.  Prevent inheritance of
17625	IP0 and IP1 values for SVE frames.
17626	(aarch64_expand_vec_series): New function.
17627	(aarch64_expand_sve_widened_duplicate): Likewise.
17628	(aarch64_expand_sve_const_vector): Likewise.
17629	(aarch64_expand_mov_immediate): Add a gen_vec_duplicate parameter.
17630	Handle SVE constants.  Use emit_move_insn to move a force_const_mem
17631	into the register, rather than emitting a SET directly.
17632	(aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move)
17633	(aarch64_get_reg_raw_mode, offset_4bit_signed_scaled_p)
17634	(offset_6bit_unsigned_scaled_p, aarch64_offset_7bit_signed_scaled_p)
17635	(offset_9bit_signed_scaled_p): New functions.
17636	(aarch64_replicate_bitmask_imm): New function.
17637	(aarch64_bitmask_imm): Use it.
17638	(aarch64_cannot_force_const_mem): Reject expressions involving
17639	a CONST_POLY_INT.  Update call to aarch64_classify_symbol.
17640	(aarch64_classify_index): Handle SVE indices, by requiring
17641	a plain register index with a scale that matches the element size.
17642	(aarch64_classify_address): Handle SVE addresses.  Assert that
17643	the mode of the address is VOIDmode or an integer mode.
17644	Update call to aarch64_classify_symbol.
17645	(aarch64_classify_symbolic_expression): Update call to
17646	aarch64_classify_symbol.
17647	(aarch64_const_vec_all_in_range_p): New function.
17648	(aarch64_print_vector_float_operand): Likewise.
17649	(aarch64_print_operand): Handle 'N' and 'C'.  Use "zN" rather than
17650	"vN" for FP registers with SVE modes.  Handle (const ...) vectors
17651	and the FP immediates 1.0 and 0.5.
17652	(aarch64_print_address_internal): Handle SVE addresses.
17653	(aarch64_print_operand_address): Use ADDR_QUERY_ANY.
17654	(aarch64_regno_regclass): Handle predicate registers.
17655	(aarch64_secondary_reload): Handle big-endian reloads of SVE
17656	data modes.
17657	(aarch64_class_max_nregs): Handle SVE modes and predicate registers.
17658	(aarch64_rtx_costs): Check for ADDVL and ADDPL instructions.
17659	(aarch64_convert_sve_vector_bits): New function.
17660	(aarch64_override_options): Use it to handle -msve-vector-bits=.
17661	(aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT
17662	rather than an rtx.
17663	(aarch64_legitimate_constant_p): Use aarch64_classify_vector_mode.
17664	Handle SVE vector and predicate modes.  Accept VL-based constants
17665	that need only one temporary register, and VL offsets that require
17666	no temporary registers.
17667	(aarch64_conditional_register_usage): Mark the predicate registers
17668	as fixed if SVE isn't available.
17669	(aarch64_vector_mode_supported_p): Use aarch64_classify_vector_mode.
17670	Return true for SVE vector and predicate modes.
17671	(aarch64_simd_container_mode): Take the number of bits as a poly_int64
17672	rather than an unsigned int.  Handle SVE modes.
17673	(aarch64_preferred_simd_mode): Update call accordingly.  Handle
17674	SVE modes.
17675	(aarch64_autovectorize_vector_sizes): Add BYTES_PER_SVE_VECTOR
17676	if SVE is enabled.
17677	(aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p)
17678	(aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p)
17679	(aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p)
17680	(aarch64_sve_float_mul_immediate_p): New functions.
17681	(aarch64_sve_valid_immediate): New function.
17682	(aarch64_simd_valid_immediate): Use it as the fallback for SVE vectors.
17683	Explicitly reject structure modes.  Check for INDEX constants.
17684	Handle PTRUE and PFALSE constants.
17685	(aarch64_check_zero_based_sve_index_immediate): New function.
17686	(aarch64_simd_imm_zero_p): Delete.
17687	(aarch64_mov_operand_p): Use aarch64_simd_valid_immediate for
17688	vector modes.  Accept constants in the range of CNT[BHWD].
17689	(aarch64_simd_scalar_immediate_valid_for_move): Explicitly
17690	ask for an Advanced SIMD mode.
17691	(aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): New functions.
17692	(aarch64_simd_vector_alignment): Handle SVE predicates.
17693	(aarch64_vectorize_preferred_vector_alignment): New function.
17694	(aarch64_simd_vector_alignment_reachable): Use it instead of
17695	the vector size.
17696	(aarch64_shift_truncation_mask): Use aarch64_vector_data_mode_p.
17697	(aarch64_output_sve_mov_immediate, aarch64_output_ptrue): New
17698	functions.
17699	(MAX_VECT_LEN): Delete.
17700	(expand_vec_perm_d): Add a vec_flags field.
17701	(emit_unspec2, aarch64_expand_sve_vec_perm): New functions.
17702	(aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
17703	(aarch64_evpc_ext): Don't apply a big-endian lane correction
17704	for SVE modes.
17705	(aarch64_evpc_rev): Rename to...
17706	(aarch64_evpc_rev_local): ...this.  Use a predicated operation for SVE.
17707	(aarch64_evpc_rev_global): New function.
17708	(aarch64_evpc_dup): Enforce a 64-byte range for SVE DUP.
17709	(aarch64_evpc_tbl): Use MAX_COMPILE_TIME_VEC_BYTES instead of
17710	MAX_VECT_LEN.
17711	(aarch64_evpc_sve_tbl): New function.
17712	(aarch64_expand_vec_perm_const_1): Update after rename of
17713	aarch64_evpc_rev.  Handle SVE permutes too, trying
17714	aarch64_evpc_rev_global and using aarch64_evpc_sve_tbl rather
17715	than aarch64_evpc_tbl.
17716	(aarch64_vectorize_vec_perm_const): Initialize vec_flags.
17717	(aarch64_sve_cmp_operand_p, aarch64_unspec_cond_code)
17718	(aarch64_gen_unspec_cond, aarch64_expand_sve_vec_cmp_int)
17719	(aarch64_emit_unspec_cond, aarch64_emit_unspec_cond_or)
17720	(aarch64_emit_inverted_unspec_cond, aarch64_expand_sve_vec_cmp_float)
17721	(aarch64_expand_sve_vcond): New functions.
17722	(aarch64_modes_tieable_p): Use aarch64_vector_data_mode_p instead
17723	of aarch64_vector_mode_p.
17724	(aarch64_dwarf_poly_indeterminate_value): New function.
17725	(aarch64_compute_pressure_classes): Likewise.
17726	(aarch64_can_change_mode_class): Likewise.
17727	(TARGET_GET_RAW_RESULT_MODE, TARGET_GET_RAW_ARG_MODE): Redefine.
17728	(TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Likewise.
17729	(TARGET_VECTORIZE_GET_MASK_MODE): Likewise.
17730	(TARGET_DWARF_POLY_INDETERMINATE_VALUE): Likewise.
17731	(TARGET_COMPUTE_PRESSURE_CLASSES): Likewise.
17732	(TARGET_CAN_CHANGE_MODE_CLASS): Likewise.
17733	* config/aarch64/constraints.md (Upa, Upl, Uav, Uat, Usv, Usi, Utr)
17734	(Uty, Dm, vsa, vsc, vsd, vsi, vsn, vsl, vsm, vsA, vsM, vsN): New
17735	constraints.
17736	(Dn, Dl, Dr): Accept const as well as const_vector.
17737	(Dz): Likewise.  Compare against CONST0_RTX.
17738	* config/aarch64/iterators.md: Refer to "Advanced SIMD" instead
17739	of "vector" where appropriate.
17740	(SVE_ALL, SVE_BH, SVE_BHS, SVE_BHSI, SVE_HSDI, SVE_HSF, SVE_SD)
17741	(SVE_SDI, SVE_I, SVE_F, PRED_ALL, PRED_BHS): New mode iterators.
17742	(UNSPEC_SEL, UNSPEC_ANDF, UNSPEC_IORF, UNSPEC_XORF, UNSPEC_COND_LT)
17743	(UNSPEC_COND_LE, UNSPEC_COND_EQ, UNSPEC_COND_NE, UNSPEC_COND_GE)
17744	(UNSPEC_COND_GT, UNSPEC_COND_LO, UNSPEC_COND_LS, UNSPEC_COND_HS)
17745	(UNSPEC_COND_HI, UNSPEC_COND_UO): New unspecs.
17746	(Vetype, VEL, Vel, VWIDE, Vwide, vw, vwcore, V_INT_EQUIV)
17747	(v_int_equiv): Extend to SVE modes.
17748	(Vesize, V128, v128, Vewtype, V_FP_EQUIV, v_fp_equiv, VPRED): New
17749	mode attributes.
17750	(LOGICAL_OR, SVE_INT_UNARY, SVE_FP_UNARY): New code iterators.
17751	(optab): Handle popcount, smin, smax, umin, umax, abs and sqrt.
17752	(logical_nn, lr, sve_int_op, sve_fp_op): New code attributs.
17753	(LOGICALF, OPTAB_PERMUTE, UNPACK, UNPACK_UNSIGNED, SVE_COND_INT_CMP)
17754	(SVE_COND_FP_CMP): New int iterators.
17755	(perm_hilo): Handle the new unpack unspecs.
17756	(optab, logicalf_op, su, perm_optab, cmp_op, imm_con): New int
17757	attributes.
17758	* config/aarch64/predicates.md (aarch64_sve_cnt_immediate)
17759	(aarch64_sve_addvl_addpl_immediate, aarch64_split_add_offset_immediate)
17760	(aarch64_pluslong_or_poly_operand, aarch64_nonmemory_operand)
17761	(aarch64_equality_operator, aarch64_constant_vector_operand)
17762	(aarch64_sve_ld1r_operand, aarch64_sve_ldr_operand): New predicates.
17763	(aarch64_sve_nonimmediate_operand): Likewise.
17764	(aarch64_sve_general_operand): Likewise.
17765	(aarch64_sve_dup_operand, aarch64_sve_arith_immediate): Likewise.
17766	(aarch64_sve_sub_arith_immediate, aarch64_sve_inc_dec_immediate)
17767	(aarch64_sve_logical_immediate, aarch64_sve_mul_immediate): Likewise.
17768	(aarch64_sve_dup_immediate, aarch64_sve_cmp_vsc_immediate): Likewise.
17769	(aarch64_sve_cmp_vsd_immediate, aarch64_sve_index_immediate): Likewise.
17770	(aarch64_sve_float_arith_immediate): Likewise.
17771	(aarch64_sve_float_arith_with_sub_immediate): Likewise.
17772	(aarch64_sve_float_mul_immediate, aarch64_sve_arith_operand): Likewise.
17773	(aarch64_sve_add_operand, aarch64_sve_logical_operand): Likewise.
17774	(aarch64_sve_lshift_operand, aarch64_sve_rshift_operand): Likewise.
17775	(aarch64_sve_mul_operand, aarch64_sve_cmp_vsc_operand): Likewise.
17776	(aarch64_sve_cmp_vsd_operand, aarch64_sve_index_operand): Likewise.
17777	(aarch64_sve_float_arith_operand): Likewise.
17778	(aarch64_sve_float_arith_with_sub_operand): Likewise.
17779	(aarch64_sve_float_mul_operand): Likewise.
17780	(aarch64_sve_vec_perm_operand): Likewise.
17781	(aarch64_pluslong_operand): Include aarch64_sve_addvl_addpl_immediate.
17782	(aarch64_mov_operand): Accept const_poly_int and const_vector.
17783	(aarch64_simd_lshift_imm, aarch64_simd_rshift_imm): Accept const
17784	as well as const_vector.
17785	(aarch64_simd_imm_zero, aarch64_simd_imm_minus_one): Move earlier
17786	in file.  Use CONST0_RTX and CONSTM1_RTX.
17787	(aarch64_simd_or_scalar_imm_zero): Likewise.  Add match_codes.
17788	(aarch64_simd_reg_or_zero): Accept const as well as const_vector.
17789	Use aarch64_simd_imm_zero.
17790	* config/aarch64/aarch64-sve.md: New file.
17791	* config/aarch64/aarch64.md: Include it.
17792	(VG_REGNUM, P0_REGNUM, P7_REGNUM, P15_REGNUM): New register numbers.
17793	(UNSPEC_REV, UNSPEC_LD1_SVE, UNSPEC_ST1_SVE, UNSPEC_MERGE_PTRUE)
17794	(UNSPEC_PTEST_PTRUE, UNSPEC_UNPACKSHI, UNSPEC_UNPACKUHI)
17795	(UNSPEC_UNPACKSLO, UNSPEC_UNPACKULO, UNSPEC_PACK)
17796	(UNSPEC_FLOAT_CONVERT, UNSPEC_WHILE_LO): New unspec constants.
17797	(sve): New attribute.
17798	(enabled): Disable instructions with the sve attribute unless
17799	TARGET_SVE.
17800	(movqi, movhi): Pass CONST_POLY_INT operaneds through
17801	aarch64_expand_mov_immediate.
17802	(*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64): Handle
17803	CNT[BHSD] immediates.
17804	(movti): Split CONST_POLY_INT moves into two halves.
17805	(add<mode>3): Accept aarch64_pluslong_or_poly_operand.
17806	Split additions that need a temporary here if the destination
17807	is the stack pointer.
17808	(*add<mode>3_aarch64): Handle ADDVL and ADDPL immediates.
17809	(*add<mode>3_poly_1): New instruction.
17810	(set_clobber_cc): New expander.
17811
178122018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17813
17814	* simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes
17815	parameter and use it instead of GET_MODE_SIZE (innermode).  Use
17816	inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode).
17817	Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of
17818	GET_MODE_NUNITS (innermode).  Also add a first_elem parameter.
17819	Change innermode from fixed_mode_size to machine_mode.
17820	(simplify_subreg): Update call accordingly.  Handle a constant-sized
17821	subreg of a variable-length CONST_VECTOR.
17822
178232018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
17824	    Alan Hayward  <alan.hayward@arm.com>
17825	    David Sherwood  <david.sherwood@arm.com>
17826
17827	* tree-ssa-address.c (mem_ref_valid_without_offset_p): New function.
17828	(add_offset_to_base): New function, split out from...
17829	(create_mem_ref): ...here.  When handling a scale other than 1,
17830	check first whether the address is valid without the offset.
17831	Add it into the base if so, leaving the index and scale as-is.
17832
178332018-01-12  Jakub Jelinek  <jakub@redhat.com>
17834
17835	PR c++/83778
17836	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call
17837	fold_for_warn before checking if arg2 is INTEGER_CST.
17838
178392018-01-12  Segher Boessenkool  <segher@kernel.crashing.org>
17840
17841	* config/rs6000/predicates.md (load_multiple_operation): Delete.
17842	(store_multiple_operation): Delete.
17843	* config/rs6000/rs6000-cpus.def (601): Remove MASK_STRING.
17844	* config/rs6000/rs6000-protos.h (rs6000_output_load_multiple): Delete.
17845	* config/rs6000/rs6000-string.c (expand_block_move): Delete everything
17846	guarded by TARGET_STRING.
17847	(rs6000_output_load_multiple): Delete.
17848	* config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
17849	OPTION_MASK_STRING / TARGET_STRING handling.
17850	(print_operand) <'N', 'O'>: Add comment that these are unused now.
17851	(const rs6000_opt_masks) <"string">: Change mask to 0.
17852	* config/rs6000/rs6000.h (TARGET_DEFAULT): Remove MASK_STRING.
17853	(MASK_STRING): Delete.
17854	* config/rs6000/rs6000.md (*mov<mode>_string): Delete TARGET_STRING
17855	parts.  Simplify.
17856	(load_multiple): Delete.
17857	(*ldmsi8): Delete.
17858	(*ldmsi7): Delete.
17859	(*ldmsi6): Delete.
17860	(*ldmsi5): Delete.
17861	(*ldmsi4): Delete.
17862	(*ldmsi3): Delete.
17863	(store_multiple): Delete.
17864	(*stmsi8): Delete.
17865	(*stmsi7): Delete.
17866	(*stmsi6): Delete.
17867	(*stmsi5): Delete.
17868	(*stmsi4): Delete.
17869	(*stmsi3): Delete.
17870	(movmemsi_8reg): Delete.
17871	(corresponding unnamed define_insn): Delete.
17872	(movmemsi_6reg): Delete.
17873	(corresponding unnamed define_insn): Delete.
17874	(movmemsi_4reg): Delete.
17875	(corresponding unnamed define_insn): Delete.
17876	(movmemsi_2reg): Delete.
17877	(corresponding unnamed define_insn): Delete.
17878	(movmemsi_1reg): Delete.
17879	(corresponding unnamed define_insn): Delete.
17880	* config/rs6000/rs6000.opt (mno-string): New.
17881	(mstring): Replace by deprecation warning stub.
17882	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mstring.
17883
178842018-01-12  Jakub Jelinek  <jakub@redhat.com>
17885
17886	* regrename.c (regrename_do_replace): If replacing the same
17887	reg multiple times, try to reuse last created gen_raw_REG.
17888
17889	PR debug/81155
17890	* bb-reorder.c (pass_partition_blocks::gate): In lto don't partition
17891	main to workaround a bug in GDB.
17892
178932018-01-12  Tom de Vries  <tom@codesourcery.com>
17894
17895	PR target/83737
17896	* config.gcc (nvptx*-*-*): Set use_gcc_stdint=wrap.
17897
178982018-01-12  Vladimir Makarov  <vmakarov@redhat.com>
17899
17900	PR rtl-optimization/80481
17901	* ira-color.c (get_cap_member): New function.
17902	(allocnos_conflict_by_live_ranges_p): Use it.
17903	(slot_coalesced_allocno_live_ranges_intersect_p): Add assert.
17904	(setup_slot_coalesced_allocno_live_ranges): Ditto.
17905
179062018-01-12  Uros Bizjak  <ubizjak@gmail.com>
17907
17908	PR target/83628
17909	* config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern.
17910	(*saddl_se_1): Ditto.
17911	(*ssubsi_1): Ditto.
17912	(*ssubl_se_1): Ditto.
17913
179142018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
17915
17916	* tree-predcom.c (aff_combination_dr_offset): Use wi::to_poly_widest
17917	rather than wi::to_widest for DR_INITs.
17918	* tree-vect-data-refs.c (vect_find_same_alignment_drs): Use
17919	wi::to_poly_offset rather than wi::to_offset for DR_INIT.
17920	(vect_analyze_data_ref_accesses): Require both DR_INITs to be
17921	INTEGER_CSTs.
17922	(vect_analyze_group_access_1): Note that here.
17923
179242018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
17925
17926	* tree-vectorizer.c (get_vec_alignment_for_array_type): Handle
17927	polynomial type sizes.
17928
179292018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
17930
17931	* gimplify.c (gimple_add_tmp_var_fn): Allow variables to have a
17932	poly_uint64 size, rather than requiring an unsigned HOST_WIDE_INT size.
17933	(gimple_add_tmp_var): Likewise.
17934
179352018-01-12  Martin Liska  <mliska@suse.cz>
17936
17937	* gimple.c (gimple_alloc_counts): Use uint64_t instead of int.
17938	(gimple_alloc_sizes): Likewise.
17939	(dump_gimple_statistics): Use PRIu64 in printf format.
17940	* gimple.h: Change uint64_t to int.
17941
179422018-01-12  Martin Liska  <mliska@suse.cz>
17943
17944	* tree-core.h: Use uint64_t instead of int.
17945	* tree.c (tree_node_counts): Likewise.
17946	(tree_node_sizes): Likewise.
17947	(dump_tree_statistics): Use PRIu64 in printf format.
17948
179492018-01-12  Martin Liska  <mliska@suse.cz>
17950
17951	* Makefile.in: As qsort_chk is implemented in vec.c, add
17952	vec.o to linkage of gencfn-macros.
17953	* tree.c (build_new_poly_int_cst): Add CXX_MEM_STAT_INFO as it's
17954	passing the info to record_node_allocation_statistics.
17955	(test_vector_cst_patterns): Add CXX_MEM_STAT_INFO to declaration
17956	and pass the info.
17957	* ggc-common.c (struct ggc_usage): Add operator== and use
17958	it in operator< and compare function.
17959	* mem-stats.h (struct mem_usage): Likewise.
17960	* vec.c (struct vec_usage): Remove operator< and compare
17961	function. Can be simply inherited.
17962
179632018-01-12  Martin Jambor  <mjambor@suse.cz>
17964
17965	PR target/81616
17966	* params.def: New parameter PARAM_AVOID_FMA_MAX_BITS.
17967	* tree-ssa-math-opts.c: Include domwalk.h.
17968	(convert_mult_to_fma_1): New function.
17969	(fma_transformation_info): New type.
17970	(fma_deferring_state): Likewise.
17971	(cancel_fma_deferring): New function.
17972	(result_of_phi): Likewise.
17973	(last_fma_candidate_feeds_initial_phi): Likewise.
17974	(convert_mult_to_fma): Added deferring logic, split actual
17975	transformation to convert_mult_to_fma_1.
17976	(math_opts_dom_walker): New type.
17977	(math_opts_dom_walker::after_dom_children): New method, body moved
17978	here from pass_optimize_widening_mul::execute, added deferring logic
17979	bits.
17980	(pass_optimize_widening_mul::execute): Moved most of code to
17981	math_opts_dom_walker::after_dom_children.
17982	* config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): New.
17983	* config/i386/i386.c (ix86_option_override_internal): Added
17984	maybe_setting of PARAM_AVOID_FMA_MAX_BITS.
17985
179862018-01-12  Richard Biener  <rguenther@suse.de>
17987
17988	PR debug/83157
17989	* dwarf2out.c (gen_variable_die): Do not reset old_die for
17990	inline instance vars.
17991
179922018-01-12  Oleg Endo  <olegendo@gcc.gnu.org>
17993
17994	PR target/81819
17995	* config/rx/rx.c (rx_is_restricted_memory_address):
17996	Handle SUBREG case.
17997
179982018-01-12  Richard Biener  <rguenther@suse.de>
17999
18000	PR tree-optimization/80846
18001	* target.def (split_reduction): New target hook.
18002	* targhooks.c (default_split_reduction): New function.
18003	* targhooks.h (default_split_reduction): Declare.
18004	* tree-vect-loop.c (vect_create_epilog_for_reduction): If the
18005	target requests first reduce vectors by combining low and high
18006	parts.
18007	* tree-vect-stmts.c (vect_gen_perm_mask_any): Adjust.
18008	(get_vectype_for_scalar_type_and_size): Export.
18009	* tree-vectorizer.h (get_vectype_for_scalar_type_and_size): Declare.
18010	* doc/tm.texi.in (TARGET_VECTORIZE_SPLIT_REDUCTION): Document.
18011	* doc/tm.texi: Regenerate.
18012	* config/i386/i386.c (ix86_split_reduction): Implement
18013	TARGET_VECTORIZE_SPLIT_REDUCTION.
18014
180152018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
18016
18017	PR target/83368
18018	* config/sparc/sparc.h (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM
18019	in PIC mode except for TARGET_VXWORKS_RTP.
18020	* config/sparc/sparc.c: Include cfgrtl.h.
18021	(TARGET_INIT_PIC_REG): Define.
18022	(TARGET_USE_PSEUDO_PIC_REG): Likewise.
18023	(sparc_pic_register_p): New predicate.
18024	(sparc_legitimate_address_p): Use it.
18025	(sparc_legitimize_pic_address): Likewise.
18026	(sparc_delegitimize_address): Likewise.
18027	(sparc_mode_dependent_address_p): Likewise.
18028	(gen_load_pcrel_sym): Remove 4th parameter.
18029	(load_got_register): Adjust call to above.  Remove obsolete stuff.
18030	(sparc_expand_prologue): Do not call load_got_register here.
18031	(sparc_flat_expand_prologue): Likewise.
18032	(sparc_output_mi_thunk): Set the pic_offset_table_rtx object.
18033	(sparc_use_pseudo_pic_reg): New function.
18034	(sparc_init_pic_reg): Likewise.
18035	* config/sparc/sparc.md (vxworks_load_got): Set the GOT register.
18036	(builtin_setjmp_receiver): Enable only for TARGET_VXWORKS_RTP.
18037
180382018-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
18039
18040	* doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
18041	Add item for branch_cost.
18042
180432018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
18044
18045	PR rtl-optimization/83565
18046	* rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do
18047	not extend the result to a larger mode for rotate operations.
18048	(num_sign_bit_copies1): Likewise.
18049
180502018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18051
18052	PR target/40411
18053	* config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or
18054	-symbolic.
18055	Use values-Xc.o for -pedantic.
18056	Link with values-xpg4.o for C90, values-xpg6.o otherwise.
18057
180582018-01-12  Martin Liska  <mliska@suse.cz>
18059
18060	PR ipa/83054
18061	* ipa-devirt.c (final_warning_record::grow_type_warnings):
18062	New function.
18063	(possible_polymorphic_call_targets): Use it.
18064	(ipa_devirt): Likewise.
18065
180662018-01-12  Martin Liska  <mliska@suse.cz>
18067
18068	* profile-count.h (enum profile_quality): Use 0 as invalid
18069	enum value of profile_quality.
18070
180712018-01-12  Chung-Ju Wu  <jasonwucj@gmail.com>
18072
18073	* doc/invoke.texi (NDS32 Options): Add -mext-perf, -mext-perf2 and
18074	-mext-string options.
18075
180762018-01-12  Richard Biener  <rguenther@suse.de>
18077
18078	* lto-streamer-out.c (DFS::DFS_write_tree_body): Process
18079	DECL_DEBUG_EXPR conditional on DECL_HAS_DEBUG_EXPR_P.
18080	* tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
18081	Likewise.
18082	* tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
18083
180842018-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
18085
18086	* configure.ac (--with-long-double-format): Add support for the
18087	configuration option to change the default long double format on
18088	PowerPC systems.
18089	* config.gcc (powerpc*-linux*-*): Likewise.
18090	* configure: Regenerate.
18091	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If long
18092	double is IEEE, define __KC__ and __KF__ to allow floatn.h to be
18093	used without modification.
18094
180952018-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18096
18097	* config/rs6000/rs6000-builtin.def (BU_P7_MISC_X): New #define.
18098	(SPEC_BARRIER): New instantiation of BU_P7_MISC_X.
18099	* config/rs6000/rs6000.c (rs6000_expand_builtin): Handle
18100	MISC_BUILTIN_SPEC_BARRIER.
18101	(rs6000_init_builtins): Likewise.
18102	* config/rs6000/rs6000.md (UNSPECV_SPEC_BARRIER): New UNSPECV
18103	enum value.
18104	(speculation_barrier): New define_insn.
18105	* doc/extend.texi: Document __builtin_speculation_barrier.
18106
181072018-01-11  Jakub Jelinek  <jakub@redhat.com>
18108
18109	PR target/83203
18110	* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): If one_var
18111	is 0, for V{8,16}S[IF] and V[48]D[IF]mode use gen_vec_set<mode>_0.
18112	* config/i386/sse.md (VI8_AVX_AVX512F, VI4F_256_512): New mode
18113	iterators.
18114	(ssescalarmodesuffix): Add 512-bit vectors.  Use "d" or "q" for
18115	integral modes instead of "ss" and "sd".
18116	(vec_set<mode>_0): New define_insns for 256-bit and 512-bit
18117	vectors with 32-bit and 64-bit elements.
18118	(vecdupssescalarmodesuffix): New mode attribute.
18119	(vec_dup<mode>): Use it.
18120
181212018-01-11  H.J. Lu  <hongjiu.lu@intel.com>
18122
18123	PR target/83330
18124	* config/i386/i386.c (ix86_compute_frame_layout): Align stack
18125	frame if argument is passed on stack.
18126
181272018-01-11  Jakub Jelinek  <jakub@redhat.com>
18128
18129	PR target/82682
18130	* ree.c (combine_reaching_defs): Optimize also
18131	reg2=exp; reg1=reg2; reg2=any_extend(reg1); into
18132	reg2=any_extend(exp); reg1=reg2;, formatting fix.
18133
181342018-01-11  Jan Hubicka  <hubicka@ucw.cz>
18135
18136	PR middle-end/83189
18137	* gimple-ssa-isolate-paths.c (isolate_path): Fix profile update.
18138
181392018-01-11  Jan Hubicka  <hubicka@ucw.cz>
18140
18141	PR middle-end/83718
18142	* tree-inline.c (copy_cfg_body): Adjust num&den for scaling
18143	after they are computed.
18144
181452018-01-11  Bin Cheng  <bin.cheng@arm.com>
18146
18147	PR tree-optimization/83695
18148	* gimple-loop-linterchange.cc
18149	(tree_loop_interchange::interchange_loops): Call scev_reset_htab to
18150	reset cached scev information after interchange.
18151	(pass_linterchange::execute): Remove call to scev_reset_htab.
18152
181532018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18154
18155	* config/arm/arm_neon.h (vfmlal_lane_low_u32, vfmlal_lane_high_u32,
18156	vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, vfmlal_laneq_low_u32,
18157	vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, vfmlal_laneq_high_u32,
18158	vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, vfmlslq_laneq_low_u32,
18159	vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, vfmlslq_laneq_high_u32,
18160	vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): Define.
18161	* config/arm/arm_neon_builtins.def (vfmal_lane_low,
18162	vfmal_lane_lowv4hf, vfmal_lane_lowv8hf, vfmal_lane_high,
18163	vfmal_lane_highv4hf, vfmal_lane_highv8hf, vfmsl_lane_low,
18164	vfmsl_lane_lowv4hf, vfmsl_lane_lowv8hf, vfmsl_lane_high,
18165	vfmsl_lane_highv4hf, vfmsl_lane_highv8hf): New sets of builtins.
18166	* config/arm/iterators.md (VFMLSEL2, vfmlsel2): New mode attributes.
18167	(V_lane_reg): Likewise.
18168	* config/arm/neon.md (neon_vfm<vfml_op>l_lane_<vfml_half><VCVTF:mode>):
18169	New define_expand.
18170	(neon_vfm<vfml_op>l_lane_<vfml_half><vfmlsel2><mode>): Likewise.
18171	(vfmal_lane_low<mode>_intrinsic,
18172	vfmal_lane_low<vfmlsel2><mode>_intrinsic,
18173	vfmal_lane_high<vfmlsel2><mode>_intrinsic,
18174	vfmal_lane_high<mode>_intrinsic, vfmsl_lane_low<mode>_intrinsic,
18175	vfmsl_lane_low<vfmlsel2><mode>_intrinsic,
18176	vfmsl_lane_high<vfmlsel2><mode>_intrinsic,
18177	vfmsl_lane_high<mode>_intrinsic): New define_insns.
18178
181792018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18180
18181	* config/arm/arm-cpus.in (fp16fml): New feature.
18182	(ALL_SIMD): Add fp16fml.
18183	(armv8.2-a): Add fp16fml as an option.
18184	(armv8.3-a): Likewise.
18185	(armv8.4-a): Add fp16fml as part of fp16.
18186	* config/arm/arm.h (TARGET_FP16FML): Define.
18187	* config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_FP16_FML
18188	when appropriate.
18189	* config/arm/arm-modes.def (V2HF): Define.
18190	* config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
18191	vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32,
18192	vfmlslq_low_u32, vfmlalq_high_u32, vfmlslq_high_u32): Define.
18193	* config/arm/arm_neon_builtins.def (vfmal_low, vfmal_high,
18194	vfmsl_low, vfmsl_high): New set of builtins.
18195	* config/arm/iterators.md (PLUSMINUS): New code iterator.
18196	(vfml_op): New code attribute.
18197	(VFMLHALVES): New int iterator.
18198	(VFML, VFMLSEL): New mode attributes.
18199	(V_reg): Define mapping for V2HF.
18200	(V_hi, V_lo): New mode attributes.
18201	(VF_constraint): Likewise.
18202	(vfml_half, vfml_half_selector): New int attributes.
18203	* config/arm/neon.md (neon_vfm<vfml_op>l_<vfml_half><mode>): New
18204	define_expand.
18205	(vfmal_low<mode>_intrinsic, vfmsl_high<mode>_intrinsic,
18206	vfmal_high<mode>_intrinsic, vfmsl_low<mode>_intrinsic):
18207	New define_insn.
18208	* config/arm/t-arm-elf (v8_fps): Add fp16fml.
18209	* config/arm/t-multilib (v8_2_a_simd_variants): Add fp16fml.
18210	* config/arm/unspecs.md (UNSPEC_VFML_LO, UNSPEC_VFML_HI): New unspecs.
18211	* doc/invoke.texi (ARM Options): Document fp16fml.  Update armv8.4-a
18212	documentation.
18213	* doc/sourcebuild.texi (arm_fp16fml_neon_ok, arm_fp16fml_neon):
18214	Document new effective target and option set.
18215
182162018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18217
18218	* config/arm/arm-cpus.in (armv8_4): New feature.
18219	(ARMv8_4a): New fgroup.
18220	(armv8.4-a): New arch.
18221	* config/arm/arm-tables.opt: Regenerate.
18222	* config/arm/t-aprofile: Add matching rules for -march=armv8.4-a.
18223	* config/arm/t-arm-elf (all_v8_archs): Add armv8.4-a.
18224	* config/arm/t-multilib (v8_4_a_simd_variants): New variable.
18225	Add matching rules for -march=armv8.4-a and extensions.
18226	* doc/invoke.texi (ARM Options): Document -march=armv8.4-a.
18227
182282018-01-11  Oleg Endo  <olegendo@gcc.gnu.org>
18229
18230	PR target/81821
18231	* config/rx/rx.md (BW): New mode attribute.
18232	(sync_lock_test_and_setsi): Add mode suffix to insn output.
18233
182342018-01-11  Richard Biener  <rguenther@suse.de>
18235
18236	PR tree-optimization/83435
18237	* graphite.c (canonicalize_loop_form): Ignore fake loop exit edges.
18238	* graphite-scop-detection.c (scop_detection::get_sese): Likewise.
18239	* tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear.
18240
182412018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
18242	    Alan Hayward  <alan.hayward@arm.com>
18243	    David Sherwood  <david.sherwood@arm.com>
18244
18245	* config/aarch64/aarch64.c (aarch64_address_info): Add a const_offset
18246	field.
18247	(aarch64_classify_address): Initialize it.  Track polynomial offsets.
18248	(aarch64_print_address_internal): Use it to check for a zero offset.
18249
182502018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
18251	    Alan Hayward  <alan.hayward@arm.com>
18252	    David Sherwood  <david.sherwood@arm.com>
18253
18254	* config/aarch64/aarch64-modes.def (NUM_POLY_INT_COEFFS): Set to 2.
18255	* config/aarch64/aarch64-protos.h (aarch64_initial_elimination_offset):
18256	Return a poly_int64 rather than a HOST_WIDE_INT.
18257	(aarch64_offset_7bit_signed_scaled_p): Take the offset as a poly_int64
18258	rather than a HOST_WIDE_INT.
18259	* config/aarch64/aarch64.h (aarch64_frame): Protect with
18260	HAVE_POLY_INT_H rather than HOST_WIDE_INT.  Change locals_offset,
18261	hard_fp_offset, frame_size, initial_adjust, callee_offset and
18262	final_offset from HOST_WIDE_INT to poly_int64.
18263	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
18264	to_constant when getting the number of units in an Advanced SIMD
18265	mode.
18266	(aarch64_builtin_vectorized_function): Check for a constant number
18267	of units.
18268	* config/aarch64/aarch64-simd.md (mov<mode>): Handle polynomial
18269	GET_MODE_SIZE.
18270	(aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use the nunits
18271	attribute instead of GET_MODE_NUNITS.
18272	* config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
18273	(aarch64_class_max_nregs): Use the constant_lowest_bound of the
18274	GET_MODE_SIZE for fixed-size registers.
18275	(aarch64_const_vec_all_same_in_range_p): Use const_vec_duplicate_p.
18276	(aarch64_hard_regno_call_part_clobbered, aarch64_classify_index)
18277	(aarch64_mode_valid_for_sched_fusion_p, aarch64_classify_address)
18278	(aarch64_legitimize_address_displacement, aarch64_secondary_reload)
18279	(aarch64_print_operand, aarch64_print_address_internal)
18280	(aarch64_address_cost, aarch64_rtx_costs, aarch64_register_move_cost)
18281	(aarch64_short_vector_p, aapcs_vfp_sub_candidate)
18282	(aarch64_simd_attr_length_rglist, aarch64_operands_ok_for_ldpstp):
18283	Handle polynomial GET_MODE_SIZE.
18284	(aarch64_hard_regno_caller_save_mode): Likewise.  Return modes
18285	wider than SImode without modification.
18286	(tls_symbolic_operand_type): Use strip_offset instead of split_const.
18287	(aarch64_pass_by_reference, aarch64_layout_arg, aarch64_pad_reg_upward)
18288	(aarch64_gimplify_va_arg_expr): Assert that we don't yet handle
18289	passing and returning SVE modes.
18290	(aarch64_function_value, aarch64_layout_arg): Use gen_int_mode
18291	rather than GEN_INT.
18292	(aarch64_emit_probe_stack_range): Take the size as a poly_int64
18293	rather than a HOST_WIDE_INT, but call sorry if it isn't constant.
18294	(aarch64_allocate_and_probe_stack_space): Likewise.
18295	(aarch64_layout_frame): Cope with polynomial offsets.
18296	(aarch64_save_callee_saves, aarch64_restore_callee_saves): Take the
18297	start_offset as a poly_int64 rather than a HOST_WIDE_INT.  Track
18298	polynomial offsets.
18299	(offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p)
18300	(aarch64_offset_7bit_signed_scaled_p): Take the offset as a
18301	poly_int64 rather than a HOST_WIDE_INT.
18302	(aarch64_get_separate_components, aarch64_process_components)
18303	(aarch64_expand_prologue, aarch64_expand_epilogue)
18304	(aarch64_use_return_insn_p): Handle polynomial frame offsets.
18305	(aarch64_anchor_offset): New function, split out from...
18306	(aarch64_legitimize_address): ...here.
18307	(aarch64_builtin_vectorization_cost): Handle polynomial
18308	TYPE_VECTOR_SUBPARTS.
18309	(aarch64_simd_check_vect_par_cnst_half): Handle polynomial
18310	GET_MODE_NUNITS.
18311	(aarch64_simd_make_constant, aarch64_expand_vector_init): Get the
18312	number of elements from the PARALLEL rather than the mode.
18313	(aarch64_shift_truncation_mask): Use GET_MODE_UNIT_BITSIZE
18314	rather than GET_MODE_BITSIZE.
18315	(aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_ext)
18316	(aarch64_evpc_rev, aarch64_evpc_dup, aarch64_evpc_zip)
18317	(aarch64_expand_vec_perm_const_1): Handle polynomial
18318	d->perm.length () and d->perm elements.
18319	(aarch64_evpc_tbl): Likewise.  Use nelt rather than GET_MODE_NUNITS.
18320	Apply to_constant to d->perm elements.
18321	(aarch64_simd_valid_immediate, aarch64_vec_fpconst_pow_of_2): Handle
18322	polynomial CONST_VECTOR_NUNITS.
18323	(aarch64_move_pointer): Take amount as a poly_int64 rather
18324	than an int.
18325	(aarch64_progress_pointer): Avoid temporary variable.
18326	* config/aarch64/aarch64.md (aarch64_<crc_variant>): Use
18327	the mode attribute instead of GET_MODE.
18328
183292018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
18330	    Alan Hayward  <alan.hayward@arm.com>
18331	    David Sherwood  <david.sherwood@arm.com>
18332
18333	* config/aarch64/aarch64.c (aarch64_force_temporary): Assert that
18334	x exists before using it.
18335	(aarch64_add_constant_internal): Rename to...
18336	(aarch64_add_offset_1): ...this.  Replace regnum with separate
18337	src and dest rtxes.  Handle the case in which they're different,
18338	including when the offset is zero.  Replace scratchreg with an rtx.
18339	Use 2 additions if there is no spare register into which we can
18340	move a 16-bit constant.
18341	(aarch64_add_constant): Delete.
18342	(aarch64_add_offset): Replace reg with separate src and dest
18343	rtxes.  Take a poly_int64 offset instead of a HOST_WIDE_INT.
18344	Use aarch64_add_offset_1.
18345	(aarch64_add_sp, aarch64_sub_sp): Take the scratch register as
18346	an rtx rather than an int.  Take the delta as a poly_int64
18347	rather than a HOST_WIDE_INT.  Use aarch64_add_offset.
18348	(aarch64_expand_mov_immediate): Update uses of aarch64_add_offset.
18349	(aarch64_expand_prologue): Update calls to aarch64_sub_sp,
18350	aarch64_allocate_and_probe_stack_space and aarch64_add_offset.
18351	(aarch64_expand_epilogue): Update calls to aarch64_add_offset
18352	and aarch64_add_sp.
18353	(aarch64_output_mi_thunk): Use aarch64_add_offset rather than
18354	aarch64_add_constant.
18355
183562018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
18357
18358	* config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
18359	Use scalar_float_mode.
18360
183612018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
18362
18363	* config/aarch64/aarch64-simd.md
18364	(aarch64_fml<f16mac1>l<f16quad>_low<mode>): Avoid GET_MODE_NUNITS.
18365	(aarch64_fml<f16mac1>l<f16quad>_high<mode>): Likewise.
18366	(aarch64_fml<f16mac1>l_lane_lowv2sf): Likewise.
18367	(aarch64_fml<f16mac1>l_lane_highv2sf): Likewise.
18368	(aarch64_fml<f16mac1>lq_laneq_lowv4sf): Likewise.
18369	(aarch64_fml<f16mac1>lq_laneq_highv4sf): Likewise.
18370	(aarch64_fml<f16mac1>l_laneq_lowv2sf): Likewise.
18371	(aarch64_fml<f16mac1>l_laneq_highv2sf): Likewise.
18372	(aarch64_fml<f16mac1>lq_lane_lowv4sf): Likewise.
18373	(aarch64_fml<f16mac1>lq_lane_highv4sf): Likewise.
18374
183752018-01-11  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
18376
18377	PR target/83514
18378	* config/arm/arm.c (arm_declare_function_name): Set arch_to_print if
18379	targ_options->x_arm_arch_string is non NULL.
18380
183812018-01-11  Tamar Christina  <tamar.christina@arm.com>
18382
18383	* config/aarch64/aarch64.h
18384	(AARCH64_FL_FOR_ARCH8_4): Add  AARCH64_FL_DOTPROD.
18385
183862018-01-11  Sudakshina Das  <sudi.das@arm.com>
18387
18388	PR target/82096
18389	* expmed.c (emit_store_flag_force): Swap if const op0
18390	and change VOIDmode to mode of op0.
18391
183922018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
18393
18394	PR rtl-optimization/83761
18395	* caller-save.c (replace_reg_with_saved_mem): Pass bits rather
18396	than bytes to mode_for_size.
18397
183982018-01-10  Jan Hubicka  <hubicka@ucw.cz>
18399
18400	PR middle-end/83189
18401	* gfortran.fortran-torture/compile/pr83189.f90: New testcase.
18402	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero
18403	profile.
18404
184052018-01-10  Jan Hubicka  <hubicka@ucw.cz>
18406
18407	PR middle-end/83575
18408	* cfgrtl.c (rtl_verify_edges): Only verify fixability of partition
18409	when in layout mode.
18410	(cfg_layout_finalize): Do not verify cfg before we are out of layout.
18411	* cfgcleanup.c (try_optimize_cfg): Only verify flow info when doing
18412	partition fixup.
18413
184142018-01-10  Michael Collison  <michael.collison@arm.com>
18415
18416	* config/aarch64/aarch64-modes.def (V2HF): New VECTOR_MODE.
18417	* config/aarch64/aarch64-option-extension.def: Add
18418	AARCH64_OPT_EXTENSION of 'fp16fml'.
18419	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
18420	(__ARM_FEATURE_FP16_FML): Define if TARGET_F16FML is true.
18421	* config/aarch64/predicates.md (aarch64_lane_imm3): New predicate.
18422	* config/aarch64/constraints.md (Ui7): New constraint.
18423	* config/aarch64/iterators.md (VFMLA_W): New mode iterator.
18424	(VFMLA_SEL_W): Ditto.
18425	(f16quad): Ditto.
18426	(f16mac1): Ditto.
18427	(VFMLA16_LOW): New int iterator.
18428	(VFMLA16_HIGH): Ditto.
18429	(UNSPEC_FMLAL): New unspec.
18430	(UNSPEC_FMLSL): Ditto.
18431	(UNSPEC_FMLAL2): Ditto.
18432	(UNSPEC_FMLSL2): Ditto.
18433	(f16mac): New code attribute.
18434	* config/aarch64/aarch64-simd-builtins.def
18435	(aarch64_fmlal_lowv2sf): Ditto.
18436	(aarch64_fmlsl_lowv2sf): Ditto.
18437	(aarch64_fmlalq_lowv4sf): Ditto.
18438	(aarch64_fmlslq_lowv4sf): Ditto.
18439	(aarch64_fmlal_highv2sf): Ditto.
18440	(aarch64_fmlsl_highv2sf): Ditto.
18441	(aarch64_fmlalq_highv4sf): Ditto.
18442	(aarch64_fmlslq_highv4sf): Ditto.
18443	(aarch64_fmlal_lane_lowv2sf): Ditto.
18444	(aarch64_fmlsl_lane_lowv2sf): Ditto.
18445	(aarch64_fmlal_laneq_lowv2sf): Ditto.
18446	(aarch64_fmlsl_laneq_lowv2sf): Ditto.
18447	(aarch64_fmlalq_lane_lowv4sf): Ditto.
18448	(aarch64_fmlsl_lane_lowv4sf): Ditto.
18449	(aarch64_fmlalq_laneq_lowv4sf): Ditto.
18450	(aarch64_fmlsl_laneq_lowv4sf): Ditto.
18451	(aarch64_fmlal_lane_highv2sf): Ditto.
18452	(aarch64_fmlsl_lane_highv2sf): Ditto.
18453	(aarch64_fmlal_laneq_highv2sf): Ditto.
18454	(aarch64_fmlsl_laneq_highv2sf): Ditto.
18455	(aarch64_fmlalq_lane_highv4sf): Ditto.
18456	(aarch64_fmlsl_lane_highv4sf): Ditto.
18457	(aarch64_fmlalq_laneq_highv4sf): Ditto.
18458	(aarch64_fmlsl_laneq_highv4sf): Ditto.
18459	* config/aarch64/aarch64-simd.md:
18460	(aarch64_fml<f16mac1>l<f16quad>_low<mode>): New pattern.
18461	(aarch64_fml<f16mac1>l<f16quad>_high<mode>): Ditto.
18462	(aarch64_simd_fml<f16mac1>l<f16quad>_low<mode>): Ditto.
18463	(aarch64_simd_fml<f16mac1>l<f16quad>_high<mode>): Ditto.
18464	(aarch64_fml<f16mac1>l_lane_lowv2sf): Ditto.
18465	(aarch64_fml<f16mac1>l_lane_highv2sf): Ditto.
18466	(aarch64_simd_fml<f16mac>l_lane_lowv2sf): Ditto.
18467	(aarch64_simd_fml<f16mac>l_lane_highv2sf): Ditto.
18468	(aarch64_fml<f16mac1>lq_laneq_lowv4sf): Ditto.
18469	(aarch64_fml<f16mac1>lq_laneq_highv4sf): Ditto.
18470	(aarch64_simd_fml<f16mac>lq_laneq_lowv4sf): Ditto.
18471	(aarch64_simd_fml<f16mac>lq_laneq_highv4sf): Ditto.
18472	(aarch64_fml<f16mac1>l_laneq_lowv2sf): Ditto.
18473	(aarch64_fml<f16mac1>l_laneq_highv2sf): Ditto.
18474	(aarch64_simd_fml<f16mac>l_laneq_lowv2sf): Ditto.
18475	(aarch64_simd_fml<f16mac>l_laneq_highv2sf): Ditto.
18476	(aarch64_fml<f16mac1>lq_lane_lowv4sf): Ditto.
18477	(aarch64_fml<f16mac1>lq_lane_highv4sf): Ditto.
18478	(aarch64_simd_fml<f16mac>lq_lane_lowv4sf): Ditto.
18479	(aarch64_simd_fml<f16mac>lq_lane_highv4sf): Ditto.
18480	* config/aarch64/arm_neon.h (vfmlal_low_u32): New intrinsic.
18481	(vfmlsl_low_u32): Ditto.
18482	(vfmlalq_low_u32): Ditto.
18483	(vfmlslq_low_u32): Ditto.
18484	(vfmlal_high_u32): Ditto.
18485	(vfmlsl_high_u32): Ditto.
18486	(vfmlalq_high_u32): Ditto.
18487	(vfmlslq_high_u32): Ditto.
18488	(vfmlal_lane_low_u32): Ditto.
18489	(vfmlsl_lane_low_u32): Ditto.
18490	(vfmlal_laneq_low_u32): Ditto.
18491	(vfmlsl_laneq_low_u32): Ditto.
18492	(vfmlalq_lane_low_u32): Ditto.
18493	(vfmlslq_lane_low_u32): Ditto.
18494	(vfmlalq_laneq_low_u32): Ditto.
18495	(vfmlslq_laneq_low_u32): Ditto.
18496	(vfmlal_lane_high_u32): Ditto.
18497	(vfmlsl_lane_high_u32): Ditto.
18498	(vfmlal_laneq_high_u32): Ditto.
18499	(vfmlsl_laneq_high_u32): Ditto.
18500	(vfmlalq_lane_high_u32): Ditto.
18501	(vfmlslq_lane_high_u32): Ditto.
18502	(vfmlalq_laneq_high_u32): Ditto.
18503	(vfmlslq_laneq_high_u32): Ditto.
18504	* config/aarch64/aarch64.h (AARCH64_FL_F16SML): New flag.
18505	(AARCH64_FL_FOR_ARCH8_4): New.
18506	(AARCH64_ISA_F16FML): New ISA flag.
18507	(TARGET_F16FML): New feature flag for fp16fml.
18508	(doc/invoke.texi): Document new fp16fml option.
18509
185102018-01-10  Michael Collison  <michael.collison@arm.com>
18511
18512	* config/aarch64/aarch64-builtins.c:
18513	(aarch64_types_ternopu_imm_qualifiers, TYPES_TERNOPUI): New.
18514	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
18515	(__ARM_FEATURE_SHA3): Define if TARGET_SHA3 is true.
18516	* config/aarch64/aarch64.h (AARCH64_FL_SHA3): New flags.
18517	(AARCH64_ISA_SHA3): New ISA flag.
18518	(TARGET_SHA3): New feature flag for sha3.
18519	* config/aarch64/iterators.md (sha512_op): New int attribute.
18520	(CRYPTO_SHA512): New int iterator.
18521	(UNSPEC_SHA512H): New unspec.
18522	(UNSPEC_SHA512H2): Ditto.
18523	(UNSPEC_SHA512SU0): Ditto.
18524	(UNSPEC_SHA512SU1): Ditto.
18525	* config/aarch64/aarch64-simd-builtins.def
18526	(aarch64_crypto_sha512hqv2di): New builtin.
18527	(aarch64_crypto_sha512h2qv2di): Ditto.
18528	(aarch64_crypto_sha512su0qv2di): Ditto.
18529	(aarch64_crypto_sha512su1qv2di): Ditto.
18530	(aarch64_eor3qv8hi): Ditto.
18531	(aarch64_rax1qv2di): Ditto.
18532	(aarch64_xarqv2di): Ditto.
18533	(aarch64_bcaxqv8hi): Ditto.
18534	* config/aarch64/aarch64-simd.md:
18535	(aarch64_crypto_sha512h<sha512_op>qv2di): New pattern.
18536	(aarch64_crypto_sha512su0qv2di): Ditto.
18537	(aarch64_crypto_sha512su1qv2di): Ditto.
18538	(aarch64_eor3qv8hi): Ditto.
18539	(aarch64_rax1qv2di): Ditto.
18540	(aarch64_xarqv2di): Ditto.
18541	(aarch64_bcaxqv8hi): Ditto.
18542	* config/aarch64/arm_neon.h (vsha512hq_u64): New intrinsic.
18543	(vsha512h2q_u64): Ditto.
18544	(vsha512su0q_u64): Ditto.
18545	(vsha512su1q_u64): Ditto.
18546	(veor3q_u16): Ditto.
18547	(vrax1q_u64): Ditto.
18548	(vxarq_u64): Ditto.
18549	(vbcaxq_u16): Ditto.
18550	* config/arm/types.md (crypto_sha512): New type attribute.
18551	(crypto_sha3): Ditto.
18552	(doc/invoke.texi): Document new sha3 option.
18553
185542018-01-10  Michael Collison  <michael.collison@arm.com>
18555
18556	* config/aarch64/aarch64-builtins.c:
18557	(aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): New.
18558	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
18559	(__ARM_FEATURE_SM3): Define if TARGET_SM4 is true.
18560	(__ARM_FEATURE_SM4): Define if TARGET_SM4 is true.
18561	* config/aarch64/aarch64.h (AARCH64_FL_SM4): New flags.
18562	(AARCH64_ISA_SM4): New ISA flag.
18563	(TARGET_SM4): New feature flag for sm4.
18564	* config/aarch64/aarch64-simd-builtins.def
18565	(aarch64_sm3ss1qv4si): Ditto.
18566	(aarch64_sm3tt1aq4si): Ditto.
18567	(aarch64_sm3tt1bq4si): Ditto.
18568	(aarch64_sm3tt2aq4si): Ditto.
18569	(aarch64_sm3tt2bq4si): Ditto.
18570	(aarch64_sm3partw1qv4si): Ditto.
18571	(aarch64_sm3partw2qv4si): Ditto.
18572	(aarch64_sm4eqv4si): Ditto.
18573	(aarch64_sm4ekeyqv4si): Ditto.
18574	* config/aarch64/aarch64-simd.md:
18575	(aarch64_sm3ss1qv4si): Ditto.
18576	(aarch64_sm3tt<sm3tt_op>qv4si): Ditto.
18577	(aarch64_sm3partw<sm3part_op>qv4si): Ditto.
18578	(aarch64_sm4eqv4si): Ditto.
18579	(aarch64_sm4ekeyqv4si): Ditto.
18580	* config/aarch64/iterators.md (sm3tt_op): New int iterator.
18581	(sm3part_op): Ditto.
18582	(CRYPTO_SM3TT): Ditto.
18583	(CRYPTO_SM3PART): Ditto.
18584	(UNSPEC_SM3SS1): New unspec.
18585	(UNSPEC_SM3TT1A): Ditto.
18586	(UNSPEC_SM3TT1B): Ditto.
18587	(UNSPEC_SM3TT2A): Ditto.
18588	(UNSPEC_SM3TT2B): Ditto.
18589	(UNSPEC_SM3PARTW1): Ditto.
18590	(UNSPEC_SM3PARTW2): Ditto.
18591	(UNSPEC_SM4E): Ditto.
18592	(UNSPEC_SM4EKEY): Ditto.
18593	* config/aarch64/constraints.md (Ui2): New constraint.
18594	* config/aarch64/predicates.md (aarch64_imm2): New predicate.
18595	* config/arm/types.md (crypto_sm3): New type attribute.
18596	(crypto_sm4): Ditto.
18597	* config/aarch64/arm_neon.h (vsm3ss1q_u32): New intrinsic.
18598	(vsm3tt1aq_u32): Ditto.
18599	(vsm3tt1bq_u32): Ditto.
18600	(vsm3tt2aq_u32): Ditto.
18601	(vsm3tt2bq_u32): Ditto.
18602	(vsm3partw1q_u32): Ditto.
18603	(vsm3partw2q_u32): Ditto.
18604	(vsm4eq_u32): Ditto.
18605	(vsm4ekeyq_u32): Ditto.
18606	(doc/invoke.texi): Document new sm4 option.
18607
186082018-01-10  Michael Collison  <michael.collison@arm.com>
18609
18610	* config/aarch64/aarch64-arches.def (armv8.4-a): New architecture.
18611	* config/aarch64/aarch64.h (AARCH64_ISA_V8_4): New ISA flag.
18612	(AARCH64_FL_FOR_ARCH8_4): New.
18613	(AARCH64_FL_V8_4): New flag.
18614	(doc/invoke.texi): Document new armv8.4-a option.
18615
186162018-01-10  Michael Collison  <michael.collison@arm.com>
18617
18618	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
18619	(__ARM_FEATURE_AES): Define if TARGET_AES is true.
18620	(__ARM_FEATURE_SHA2): Define if TARGET_SHA2 is true.
18621	* config/aarch64/aarch64-option-extension.def: Add
18622	AARCH64_OPT_EXTENSION of 'sha2'.
18623	(aes): Add AARCH64_OPT_EXTENSION of 'aes'.
18624	(crypto): Disable sha2 and aes if crypto disabled.
18625	(crypto): Enable aes and sha2 if enabled.
18626	(simd): Disable sha2 and aes if simd disabled.
18627	* config/aarch64/aarch64.h (AARCH64_FL_AES, AARCH64_FL_SHA2):
18628	New flags.
18629	(AARCH64_ISA_AES, AARCH64_ISA_SHA2): New ISA flags.
18630	(TARGET_SHA2): New feature flag for sha2.
18631	(TARGET_AES): New feature flag for aes.
18632	* config/aarch64/aarch64-simd.md:
18633	(aarch64_crypto_aes<aes_op>v16qi): Make pattern
18634	conditional on TARGET_AES.
18635	(aarch64_crypto_aes<aesmc_op>v16qi): Ditto.
18636	(aarch64_crypto_sha1hsi): Make pattern conditional
18637	on TARGET_SHA2.
18638	(aarch64_crypto_sha1hv4si): Ditto.
18639	(aarch64_be_crypto_sha1hv4si): Ditto.
18640	(aarch64_crypto_sha1su1v4si): Ditto.
18641	(aarch64_crypto_sha1<sha1_op>v4si): Ditto.
18642	(aarch64_crypto_sha1su0v4si): Ditto.
18643	(aarch64_crypto_sha256h<sha256_op>v4si): Ditto.
18644	(aarch64_crypto_sha256su0v4si): Ditto.
18645	(aarch64_crypto_sha256su1v4si): Ditto.
18646	(doc/invoke.texi): Document new aes and sha2 options.
18647
186482018-01-10  Martin Sebor  <msebor@redhat.com>
18649
18650	PR tree-optimization/83781
18651	* gimple-fold.c (get_range_strlen): Avoid treating arrays of pointers
18652	as string arrays.
18653
186542018-01-11  Martin Sebor  <msebor@gmail.com>
18655	    Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
18656
18657	PR tree-optimization/83501
18658	PR tree-optimization/81703
18659
18660	* tree-ssa-strlen.c (get_string_cst): Rename...
18661	(get_string_len): ...to this.  Handle global constants.
18662	(handle_char_store): Adjust.
18663
186642018-01-10  Kito Cheng  <kito.cheng@gmail.com>
18665	    Jim Wilson  <jimw@sifive.com>
18666
18667	* config/riscv/riscv-protos.h (riscv_output_return): New.
18668	* config/riscv/riscv.c (struct machine_function): New naked_p field.
18669	(riscv_attribute_table, riscv_output_return),
18670	(riscv_handle_fndecl_attribute, riscv_naked_function_p),
18671	(riscv_allocate_stack_slots_for_args, riscv_warn_func_return): New.
18672	(riscv_compute_frame_info): Only compute frame->mask if not a naked
18673	function.
18674	(riscv_expand_prologue): Add early return for naked function.
18675	(riscv_expand_epilogue): Likewise.
18676	(riscv_function_ok_for_sibcall): Return false for naked function.
18677	(riscv_set_current_function): New.
18678	(TARGET_SET_CURRENT_FUNCTION, TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS),
18679	(TARGET_ATTRIBUTE_TABLE, TARGET_WARN_FUNC_RETURN): New.
18680	* config/riscv/riscv.md (simple_return): Call riscv_output_return.
18681	* doc/extend.texi (RISC-V Function Attributes): New.
18682
186832018-01-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
18684
18685	* config/rs6000/rs6000.c (is_complex_IBM_long_double): Explicitly
18686	check for 128-bit long double before checking TCmode.
18687	* config/rs6000/rs6000.h (FLOAT128_IEEE_P): Explicitly check for
18688	128-bit long doubles before checking TFmode or TCmode.
18689	(FLOAT128_IBM_P): Likewise.
18690
186912018-01-10  Martin Sebor  <msebor@redhat.com>
18692
18693	PR tree-optimization/83671
18694	* builtins.c (c_strlen): Unconditionally return zero for the empty
18695	string.
18696	Use -Warray-bounds for warnings.
18697	* gimple-fold.c (get_range_strlen): Handle non-constant lengths
18698	for non-constant array indices with COMPONENT_REF, arrays of
18699	arrays, and pointers to arrays.
18700	(gimple_fold_builtin_strlen): Determine and set length range for
18701	non-constant character arrays.
18702
187032018-01-10  Aldy Hernandez  <aldyh@redhat.com>
18704
18705	PR middle-end/81897
18706	* tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip
18707	empty blocks.
18708
187092018-01-10  Eric Botcazou  <ebotcazou@adacore.com>
18710
18711	* dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf.
18712
187132018-01-10  Peter Bergner  <bergner@vnet.ibm.com>
18714
18715	PR target/83399
18716	* config/rs6000/rs6000.c (print_operand) <'y'>: Use
18717	VECTOR_MEM_ALTIVEC_OR_VSX_P.
18718	* config/rs6000/vsx.md (*vsx_le_perm_load_<mode> for VSX_D): Use
18719	indexed_or_indirect_operand predicate.
18720	(*vsx_le_perm_load_<mode> for VSX_W): Likewise.
18721	(*vsx_le_perm_load_v8hi): Likewise.
18722	(*vsx_le_perm_load_v16qi): Likewise.
18723	(*vsx_le_perm_store_<mode> for VSX_D): Likewise.
18724	(*vsx_le_perm_store_<mode> for VSX_W): Likewise.
18725	(*vsx_le_perm_store_v8hi): Likewise.
18726	(*vsx_le_perm_store_v16qi): Likewise.
18727	(eight unnamed splitters): Likewise.
18728
187292018-01-10  Peter Bergner  <bergner@vnet.ibm.com>
18730
18731	* config/rs6000/x86intrin.h: Change #warning to #error. Update message.
18732	* config/rs6000/emmintrin.h: Likewise.
18733	* config/rs6000/mmintrin.h: Likewise.
18734	* config/rs6000/xmmintrin.h: Likewise.
18735
187362018-01-10  David Malcolm  <dmalcolm@redhat.com>
18737
18738	PR c++/43486
18739	* tree-core.h: Document EXPR_LOCATION_WRAPPER_P's usage of
18740	"public_flag".
18741	* tree.c (tree_nop_conversion): Return true for location wrapper
18742	nodes.
18743	(maybe_wrap_with_location): New function.
18744	(selftest::check_strip_nops): New function.
18745	(selftest::test_location_wrappers): New function.
18746	(selftest::tree_c_tests): Call it.
18747	* tree.h (STRIP_ANY_LOCATION_WRAPPER): New macro.
18748	(maybe_wrap_with_location): New decl.
18749	(EXPR_LOCATION_WRAPPER_P): New macro.
18750	(location_wrapper_p): New inline function.
18751	(tree_strip_any_location_wrapper): New inline function.
18752
187532018-01-10  H.J. Lu  <hongjiu.lu@intel.com>
18754
18755	PR target/83735
18756	* config/i386/i386.c (ix86_compute_frame_layout): Always adjust
18757	stack_realign_offset for the largest alignment of stack slot
18758	actually used.
18759	(ix86_find_max_used_stack_alignment): New function.
18760	(ix86_finalize_stack_frame_flags): Use it.  Set
18761	max_used_stack_alignment if we don't realign stack.
18762	* config/i386/i386.h (machine_function): Add
18763	max_used_stack_alignment.
18764
187652018-01-10  Christophe Lyon  <christophe.lyon@linaro.org>
18766
18767	* config/arm/arm.opt (-mbranch-cost): New option.
18768	* config/arm/arm.h (BRANCH_COST): Take arm_branch_cost into
18769	account.
18770
187712018-01-10  Segher Boessenkool  <segher@kernel.crashing.org>
18772
18773	PR target/83629
18774	* config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b,
18775	load_toc_v4_PIC_3c): Wrap const term in CONST RTL.
18776
187772018-01-10  Richard Biener  <rguenther@suse.de>
18778
18779	PR debug/83765
18780	* dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration
18781	early out so it also covers the case where we have a non-NULL
18782	origin.
18783
187842018-01-10  Richard Sandiford  <richard.sandiford@linaro.org>
18785
18786	PR tree-optimization/83753
18787	* tree-vect-stmts.c (get_group_load_store_type): Use VMAT_CONTIGUOUS
18788	for non-strided grouped accesses if the number of elements is 1.
18789
187902018-01-10  Jan Hubicka  <hubicka@ucw.cz>
18791
18792	PR target/81616
18793	* i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER.
18794	* i386.h (TARGET_USE_GATHER): Define.
18795	* x86-tune.def (X86_TUNE_USE_GATHER): New.
18796
187972018-01-10  Martin Liska  <mliska@suse.cz>
18798
18799	PR bootstrap/82831
18800	* basic-block.h (CLEANUP_NO_PARTITIONING): New define.
18801	* bb-reorder.c (pass_reorder_blocks::execute): Do not clean up
18802	partitioning.
18803	* cfgcleanup.c (try_optimize_cfg): Fix up partitioning if
18804	CLEANUP_NO_PARTITIONING is not set.
18805
188062018-01-10  Richard Sandiford  <richard.sandiford@linaro.org>
18807
18808	* doc/rtl.texi: Remove documentation of (const ...) wrappers
18809	for vectors, as a partial revert of r254296.
18810	* rtl.h (const_vec_p): Delete.
18811	(const_vec_duplicate_p): Don't test for vector CONSTs.
18812	(unwrap_const_vec_duplicate, const_vec_series_p): Likewise.
18813	* expmed.c (make_tree): Likewise.
18814
18815	Revert:
18816	* common.md (E, F): Use CONSTANT_P instead of checking for
18817	CONST_VECTOR.
18818	* emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
18819	checking for CONST_VECTOR.
18820
188212018-01-09  Jan Hubicka  <hubicka@ucw.cz>
18822
18823	PR middle-end/83575
18824	* predict.c (force_edge_cold): Handle in more sane way edges
18825	with no prediction.
18826
188272018-01-09  Carl Love  <cel@us.ibm.com>
18828
18829	* config/rs6002/altivec.md (p8_vmrgow): Add support for V2DI, V2DF,
18830	V4SI, V4SF types.
18831	(p8_vmrgew): Add support for V2DI, V2DF, V4SF types.
18832	* config/rs6000/rs6000-builtin.def: Add definitions for FLOAT2_V2DF,
18833	VMRGEW_V2DI, VMRGEW_V2DF, VMRGEW_V4SF, VMRGOW_V4SI, VMRGOW_V4SF,
18834	VMRGOW_V2DI, VMRGOW_V2DF.  Remove definition for VMRGOW.
18835	* config/rs6000/rs6000-c.c (VSX_BUILTIN_VEC_FLOAT2,
18836	P8V_BUILTIN_VEC_VMRGEW, P8V_BUILTIN_VEC_VMRGOW):  Add definitions.
18837	* config/rs6000/rs6000-protos.h: Add extern defition for
18838	rs6000_generate_float2_double_code.
18839	* config/rs6000/rs6000.c (rs6000_generate_float2_double_code): Add
18840	function.
18841	* config/rs6000/vsx.md (vsx_xvcdpsp): Add define_insn.
18842	(float2_v2df): Add define_expand.
18843
188442018-01-09  Uros Bizjak  <ubizjak@gmail.com>
18845
18846	PR target/83628
18847	* combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of
18848	op_mode in the force_to_mode call.
18849
188502018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
18851
18852	* config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p
18853	instead of checking each element individually.
18854	(aarch64_evpc_uzp): Likewise.
18855	(aarch64_evpc_zip): Likewise.
18856	(aarch64_evpc_ext): Likewise.
18857	(aarch64_evpc_rev): Likewise.
18858	(aarch64_evpc_dup): Test the encoding for a single duplicated element,
18859	instead of checking each element individually.  Return true without
18860	generating rtl if
18861	(aarch64_vectorize_vec_perm_const): Use all_from_input_p to test
18862	whether all selected elements come from the same input, instead of
18863	checking each element individually.  Remove calls to gen_rtx_REG,
18864	start_sequence and end_sequence and instead assert that no rtl is
18865	generated.
18866
188672018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
18868
18869	* config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix
18870	order of HIGH and CONST checks.
18871
188722018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
18873
18874	* tree-vect-stmts.c (permute_vec_elements): Create a fresh variable
18875	if the destination isn't an SSA_NAME.
18876
188772018-01-09  Richard Biener  <rguenther@suse.de>
18878
18879	PR tree-optimization/83668
18880	* graphite.c (canonicalize_loop_closed_ssa): Add edge argument,
18881	move prologue...
18882	(canonicalize_loop_form): ... here, renamed from ...
18883	(canonicalize_loop_closed_ssa_form): ... this and amended to
18884	swap successor edges for loop exit blocks to make us use
18885	the RPO order we need for initial schedule generation.
18886
188872018-01-09  Joseph Myers  <joseph@codesourcery.com>
18888
18889	PR tree-optimization/64811
18890	* match.pd: When optimizing comparisons with Inf, avoid
18891	introducing or losing exceptions from comparisons with NaN.
18892
188932018-01-09  Martin Liska  <mliska@suse.cz>
18894
18895	PR sanitizer/82517
18896	* asan.c (shadow_mem_size): Add gcc_assert.
18897
188982018-01-09  Georg-Johann Lay  <avr@gjlay.de>
18899
18900	Don't save registers in main().
18901
18902	PR target/83738
18903	* doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it.
18904	* config/avr/avr.opt (-mmain-is-OS_task): New target option.
18905	* config/avr/avr.c (avr_set_current_function): Don't error if
18906	naked, OS_task or OS_main are specified at the same time.
18907	(avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task,
18908	OS_main.
18909	(avr_insert_attributes) [-mmain-is-OS_task] <main>: Add OS_task
18910	attribute.
18911	* common/config/avr/avr-common.c (avr_option_optimization_table):
18912	Switch on -mmain-is-OS_task for optimizing compilations.
18913
189142018-01-09  Richard Biener  <rguenther@suse.de>
18915
18916	PR tree-optimization/83572
18917	* graphite.c: Include cfganal.h.
18918	(graphite_transform_loops): Connect infinite loops to exit
18919	and remove fake edges at the end.
18920
189212018-01-09  Jan Hubicka  <hubicka@ucw.cz>
18922
18923	* ipa-inline.c (edge_badness): Revert accidental checkin.
18924
189252018-01-09  Jan Hubicka  <hubicka@ucw.cz>
18926
18927	PR ipa/80763
18928	* ipa-comdats.c (set_comdat_group): Only set comdat group of real
18929	symbols; not inline clones.
18930
189312018-01-09  Jakub Jelinek  <jakub@redhat.com>
18932
18933	PR target/83507
18934	* modulo-sched.c (schedule_reg_moves): Punt if we'd need to move
18935	hard registers.  Formatting fixes.
18936
18937	PR preprocessor/83722
18938	* gcc.c (try_generate_repro): Pass
18939	&temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than
18940	&temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to
18941	do_report_bug.
18942
189432018-01-08  Monk Chiang  <sh.chiang04@gmail.com>
18944	    Kito Cheng  <kito.cheng@gmail.com>
18945
18946	* config/riscv/riscv.c (machine_function::is_leaf): Remove field.
18947	(riscv_leaf_function_p): Delete.
18948	(riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE.
18949
189502018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
18951
18952	* config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New
18953	function.
18954	(do_ifelse): New function.
18955	(do_isel): New function.
18956	(do_sub3): New function.
18957	(do_add3): New function.
18958	(do_load_mask_compare): New function.
18959	(do_overlap_load_compare): New function.
18960	(expand_compare_loop): New function.
18961	(expand_block_compare): Call expand_compare_loop() when appropriate.
18962	* config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change
18963	option description.
18964	(-mblock-compare-inline-loop-limit): New option.
18965
189662018-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18967
18968	PR target/83677
18969	* config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
18970	Reverse order of second and third operands in first alternative.
18971	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order
18972	of first and second elements in UNSPEC_VPERMR vector.
18973	(altivec_expand_vec_perm_le): Likewise.
18974
189752018-01-08  Jeff Law  <law@redhat.com>
18976
18977	PR rtl-optimizatin/81308
18978	* tree-switch-conversion.c (cfg_altered): New file scoped static.
18979	(process_switch): If group_case_labels makes a change, then set
18980	cfg_altered.
18981	(pass_convert_switch::execute): If a switch is converted, then
18982	set cfg_altered.  Return TODO_cfg_cleanup if cfg_altered is true.
18983
18984	PR rtl-optimization/81308
18985	* recog.c (split_all_insns): Conditionally cleanup the CFG after
18986	splitting insns.
18987
189882018-01-08  Vidya Praveen  <vidyapraveen@arm.com>
18989
18990	PR target/83663 - Revert r255946
18991	* config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code
18992	generation for cases where splatting a value is not useful.
18993	* simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
18994	across a vec_duplicate and a paradoxical subreg forming a vector
18995	mode to a vec_concat.
18996
189972018-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18998
18999	* config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for
19000	-march=armv8.3-a variants.
19001	* config/arm/t-multilib: Likewise.
19002	* config/arm/t-arm-elf: Likewise.  Handle dotprod extension.
19003
190042018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
19005
19006	* config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it
19007	to generate rtl.
19008	(cceq_ior_compare_complement): Give it a name so I can use it, and
19009	change boolean_or_operator predicate to boolean_operator so it can
19010	be used to generate a crand.
19011	(eqne): New code iterator.
19012	(bd/bd_neg): New code_attrs.
19013	(<bd>_<mode>): New name for ctr<mode>_internal[12] now combined into
19014	a single define_insn.
19015	(<bd>tf_<mode>): A new insn pattern for the conditional form branch
19016	decrement (bdnzt/bdnzf/bdzt/bdzf).
19017	* config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated
19018	with the new names of the branch decrement patterns, and added the
19019	names of the branch decrement conditional patterns.
19020
190212018-01-08  Richard Biener  <rguenther@suse.de>
19022
19023	PR tree-optimization/83563
19024	* graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV
19025	cache.
19026
190272018-01-08  Richard Biener  <rguenther@suse.de>
19028
19029	PR middle-end/83713
19030	* convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks.
19031
190322018-01-08  Richard Biener  <rguenther@suse.de>
19033
19034	PR tree-optimization/83685
19035	* tree-ssa-pre.c (create_expression_by_pieces): Do not insert
19036	references to abnormals.
19037
190382018-01-08  Richard Biener  <rguenther@suse.de>
19039
19040	PR lto/83719
19041	* dwarf2out.c (output_indirect_strings): Handle empty
19042	skeleton_debug_str_hash.
19043	(dwarf2out_early_finish): Index strings for -gsplit-dwarf.
19044
190452018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
19046
19047	* config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete.
19048	(emit_store_direct): Likewise.
19049	(arc_trampoline_adjust_address): Likewise.
19050	(arc_asm_trampoline_template): New function.
19051	(arc_initialize_trampoline): Use asm_trampoline_template.
19052	(TARGET_ASM_TRAMPOLINE_TEMPLATE): Define.
19053	* config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16.
19054	* config/arc/arc.md (flush_icache): Delete pattern.
19055
190562018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
19057
19058	* config/arc/arc-c.def (__ARC_UNALIGNED__): New define.
19059	* config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using
19060	munaligned-access.
19061
190622018-01-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19063
19064	PR target/83681
19065	* config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard
19066	by not USED_FOR_TARGET.
19067	(make_pass_resolve_sw_modes): Likewise.
19068
190692018-01-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19070
19071	* config/nios2/nios2.h (nios2_section_threshold): Guard by not
19072	USED_FOR_TARGET.
19073
190742018-01-08  Richard Biener  <rguenther@suse.de>
19075
19076	PR middle-end/83580
19077	* tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS.
19078
190792018-01-08  Richard Biener  <rguenther@suse.de>
19080
19081	PR middle-end/83517
19082	* match.pd ((t * 2) / 2) -> t): Add missing :c.
19083
190842018-01-06  Aldy Hernandez  <aldyh@redhat.com>
19085
19086	PR middle-end/81897
19087	* tree-ssa-uninit.c (compute_control_dep_chain): Do not bail on
19088	basic blocks with a small number of successors.
19089	(convert_control_dep_chain_into_preds): Improve handling of
19090	forwarder blocks.
19091	(dump_predicates): Split apart into...
19092	(dump_pred_chain): ...here...
19093	(dump_pred_info): ...and here.
19094	(can_one_predicate_be_invalidated_p): Add debugging printfs.
19095	(can_chain_union_be_invalidated_p): Improve check for invalidation
19096	of paths.
19097	(uninit_uses_cannot_happen): Avoid unnecessary if
19098	convert_control_dep_chain_into_preds yielded nothing.
19099
191002018-01-06  Martin Sebor  <msebor@redhat.com>
19101
19102	PR tree-optimization/83640
19103	* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Avoid
19104	subtracting negative offset from size.
19105	(builtin_access::overlap): Adjust offset bounds of the access to fall
19106	within the size of the object if possible.
19107
191082018-01-06  Richard Sandiford  <richard.sandiford@linaro.org>
19109
19110	PR rtl-optimization/83699
19111	* expmed.c (extract_bit_field_1): Restrict the vector usage of
19112	extract_bit_field_as_subreg to cases in which the extracted
19113	value is also a vector.
19114
19115	* lra-constraints.c (process_alt_operands): Test for the equivalence
19116	substitutions when detecting a possible reload cycle.
19117
191182018-01-06  Jakub Jelinek  <jakub@redhat.com>
19119
19120	PR debug/83480
19121	* toplev.c (process_options): Don't enable debug_nonbind_markers_p
19122	by default if flag_selective_schedling{,2}.  Formatting fixes.
19123
19124	PR rtl-optimization/83682
19125	* rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE
19126	if it has non-VECTOR_MODE element mode.
19127	(vec_duplicate_p): Likewise.
19128
19129	PR middle-end/83694
19130	* cfgexpand.c (expand_debug_expr): Punt if mode1 is VOIDmode
19131	and bitsize might be greater than MAX_BITSIZE_MODE_ANY_INT.
19132
191332018-01-05  Jakub Jelinek  <jakub@redhat.com>
19134
19135	PR target/83604
19136	* config/i386/i386-builtin.def
19137	(__builtin_ia32_vgf2p8affineinvqb_v64qi,
19138	__builtin_ia32_vgf2p8affineqb_v64qi, __builtin_ia32_vgf2p8mulb_v64qi):
19139	Require also OPTION_MASK_ISA_AVX512F in addition to
19140	OPTION_MASK_ISA_GFNI.
19141	(__builtin_ia32_vgf2p8affineinvqb_v16qi_mask,
19142	__builtin_ia32_vgf2p8affineqb_v16qi_mask): Require
19143	OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_SSE in addition
19144	to OPTION_MASK_ISA_GFNI.
19145	(__builtin_ia32_vgf2p8mulb_v32qi_mask): Require
19146	OPTION_MASK_ISA_AVX512VL in addition to OPTION_MASK_ISA_GFNI and
19147	OPTION_MASK_ISA_AVX512BW.
19148	(__builtin_ia32_vgf2p8mulb_v16qi_mask): Require
19149	OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_AVX512BW in
19150	addition to OPTION_MASK_ISA_GFNI.
19151	(__builtin_ia32_vgf2p8affineinvqb_v16qi,
19152	__builtin_ia32_vgf2p8affineqb_v16qi, __builtin_ia32_vgf2p8mulb_v16qi):
19153	Require OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_SSE in addition
19154	to OPTION_MASK_ISA_GFNI.
19155	* config/i386/i386.c (def_builtin): Change to builtin isa/isa2 being
19156	a requirement for all ISAs rather than any of them with a few
19157	exceptions.
19158	(ix86_add_new_builtins): Clear OPTION_MASK_ISA_64BIT from isa before
19159	processing.
19160	(ix86_expand_builtin): Require all ISAs from builtin's isa and isa2
19161	bitmasks to be enabled with 3 exceptions, instead of requiring any
19162	enabled ISA with lots of exceptions.
19163	* config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
19164	vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
19165	Change avx512bw in isa attribute to avx512f.
19166	* config/i386/sgxintrin.h: Add license boilerplate.
19167	* config/i386/vaesintrin.h: Likewise.  Fix macro spelling __AVX512F
19168	to __AVX512F__ and __AVX512VL to __AVX512VL__.
19169	(_mm256_aesdec_epi128, _mm256_aesdeclast_epi128, _mm256_aesenc_epi128,
19170	_mm256_aesenclast_epi128): Enable temporarily avx if __AVX__ is not
19171	defined.
19172	* config/i386/gfniintrin.h (_mm_gf2p8mul_epi8,
19173	_mm_gf2p8affineinv_epi64_epi8, _mm_gf2p8affine_epi64_epi8): Enable
19174	temporarily sse2 rather than sse if not enabled already.
19175
19176	PR target/83604
19177	* config/i386/sse.md (VI248_VLBW): Rename to ...
19178	(VI248_AVX512VL): ... this.  Don't guard V32HI with TARGET_AVX512BW.
19179	(vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>,
19180	vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz,
19181	vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask,
19182	vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): Use VI248_AVX512VL
19183	mode iterator instead of VI248_VLBW.
19184
191852018-01-05  Jan Hubicka  <hubicka@ucw.cz>
19186
19187	* ipa-fnsummary.c (record_modified_bb_info): Add OP.
19188	(record_modified): Skip clobbers; add debug output.
19189	(param_change_prob): Use sreal frequencies.
19190
191912018-01-05  Richard Sandiford  <richard.sandiford@linaro.org>
19192
19193	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
19194	punt for user-aligned variables.
19195
191962018-01-05  Richard Sandiford  <richard.sandiford@linaro.org>
19197
19198	* tree-chrec.c (chrec_contains_symbols): Return true for
19199	POLY_INT_CST.
19200
192012018-01-05  Sudakshina Das  <sudi.das@arm.com>
19202
19203	PR target/82439
19204	* simplify-rtx.c (simplify_relational_operation_1): Add simplifications
19205	of (x|y) == x for BICS pattern.
19206
192072018-01-05  Jakub Jelinek  <jakub@redhat.com>
19208
19209	PR tree-optimization/83605
19210	* gimple-ssa-strength-reduction.c: Include tree-eh.h.
19211	(find_candidates_dom_walker::before_dom_children): Ignore stmts that
19212	can throw.
19213
192142018-01-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19215
19216	* config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration.
19217	* config/epiphany/rtems.h: New file.
19218
192192018-01-04  Jakub Jelinek  <jakub@redhat.com>
19220	    Uros Bizjak  <ubizjak@gmail.com>
19221
19222	PR target/83554
19223	* config/i386/i386.md (*<rotate_insn>hi3_1 splitter): Use
19224	QIreg_operand instead of register_operand predicate.
19225	* config/i386/i386.c (ix86_rop_should_change_byte_p,
19226	set_rop_modrm_reg_bits, ix86_mitigate_rop): Use -mmitigate-rop in
19227	comments instead of -fmitigate[-_]rop.
19228
192292018-01-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19230
19231	PR bootstrap/81926
19232	* cgraphunit.c (symbol_table::compile): Switch to text_section
19233	before calling assembly_start debug hook.
19234	* run-rtl-passes.c (run_rtl_passes): Likewise.
19235	Include output.h.
19236
192372018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
19238
19239	* tree-vrp.c (extract_range_from_binary_expr_1): Check
19240	range_int_cst_p rather than !symbolic_range_p before calling
19241	extract_range_from_multiplicative_op_1.
19242
192432018-01-04  Jeff Law  <law@redhat.com>
19244
19245	* tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove
19246	redundant test in assertion.
19247
192482018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
19249
19250	* doc/rtl.texi: Document machine_mode wrapper classes.
19251
192522018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
19253
19254	* fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before
19255	using tree_to_uhwi.
19256
192572018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
19258
19259	* tree-ssa-forwprop.c (is_combined_permutation_identity): Allow
19260	the VEC_PERM_EXPR fold to fail.
19261
192622018-01-04  Jakub Jelinek  <jakub@redhat.com>
19263
19264	PR debug/83585
19265	* bb-reorder.c (insert_section_boundary_note): Set has_bb_partition
19266	to switched_sections.
19267
192682018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
19269
19270	PR target/83680
19271	* config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted
19272	test for d.testing.
19273
192742018-01-04  Peter Bergner  <bergner@vnet.ibm.com>
19275
19276	PR target/83387
19277	* config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not
19278	allow arguments in FP registers if TARGET_HARD_FLOAT is false.
19279
192802018-01-04  Jakub Jelinek  <jakub@redhat.com>
19281
19282	PR debug/83666
19283	* cfgexpand.c (expand_debug_expr) <case BIT_FIELD_REF>: Punt if mode
19284	is BLKmode and bitpos not zero or mode change is needed.
19285
192862018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
19287
19288	PR target/83675
19289	* config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require
19290	TARGET_VIS2.
19291
192922018-01-04  Uros Bizjak  <ubizjak@gmail.com>
19293
19294	PR target/83628
19295	* config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT
19296	instead of MULT rtx.  Update all corresponding splitters.
19297	(*saddl_se): Ditto.
19298	(*ssub<modesuffix>): Ditto.
19299	(*ssubl_se): Ditto.
19300	(*cmp_sadd_di): Update split patterns.
19301	(*cmp_sadd_si): Ditto.
19302	(*cmp_sadd_sidi): Ditto.
19303	(*cmp_ssub_di): Ditto.
19304	(*cmp_ssub_si): Ditto.
19305	(*cmp_ssub_sidi): Ditto.
19306	* config/alpha/predicates.md (const23_operand): New predicate.
19307	* config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]:
19308	Look for ASHIFT, not MULT inner operand.
19309	(alpha_split_conditional_move): Update for *sadd<modesuffix> change.
19310
193112018-01-04  Martin Liska  <mliska@suse.cz>
19312
19313	PR gcov-profile/83669
19314	* gcov.c (output_intermediate_file): Add version to intermediate
19315	gcov file.
19316	* doc/gcov.texi: Document new field 'version' in intermediate
19317	file format. Fix location of '-k' option of gcov command.
19318
193192018-01-04  Martin Liska  <mliska@suse.cz>
19320
19321	PR ipa/82352
19322	* ipa-icf.c (sem_function::merge): Do not cross comdat boundary.
19323
193242018-01-04  Jakub Jelinek  <jakub@redhat.com>
19325
19326	* gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi.
19327
193282018-01-03  Martin Sebor  <msebor@redhat.com>
19329
19330	PR tree-optimization/83655
19331	* gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid
19332	checking calls with invalid arguments.
19333
193342018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19335
19336	* tree-vect-stmts.c (vect_get_store_rhs): New function.
19337	(vectorizable_mask_load_store): Delete.
19338	(vectorizable_call): Return false for masked loads and stores.
19339	(vectorizable_store): Handle IFN_MASK_STORE.  Use vect_get_store_rhs
19340	instead of gimple_assign_rhs1.
19341	(vectorizable_load): Handle IFN_MASK_LOAD.
19342	(vect_transform_stmt): Don't set is_store for call_vec_info_type.
19343
193442018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19345
19346	* tree-vect-stmts.c (vect_build_gather_load_calls): New function,
19347	split out from..,
19348	(vectorizable_mask_load_store): ...here.
19349	(vectorizable_load): ...and here.
19350
193512018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19352
19353	* tree-vect-stmts.c (vect_build_all_ones_mask)
19354	(vect_build_zero_merge_argument): New functions, split out from...
19355	(vectorizable_load): ...here.
19356
193572018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19358
19359	* tree-vect-stmts.c (vect_check_store_rhs): New function,
19360	split out from...
19361	(vectorizable_mask_load_store): ...here.
19362	(vectorizable_store): ...and here.
19363
193642018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19365
19366	* tree-vect-stmts.c (vect_check_load_store_mask): New function,
19367	split out from...
19368	(vectorizable_mask_load_store): ...here.
19369
193702018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19371
19372	* tree-vectorizer.h (vec_load_store_type): Moved from tree-vec-stmts.c
19373	(vect_model_store_cost): Take a vec_load_store_type instead of a
19374	vect_def_type.
19375	* tree-vect-stmts.c (vec_load_store_type): Move to tree-vectorizer.h.
19376	(vect_model_store_cost): Take a vec_load_store_type instead of a
19377	vect_def_type.
19378	(vectorizable_mask_load_store): Update accordingly.
19379	(vectorizable_store): Likewise.
19380	* tree-vect-slp.c (vect_analyze_slp_cost_1): Update accordingly.
19381
193822018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19383
19384	* tree-vect-loop.c (vect_transform_loop): Stub out scalar
19385	IFN_MASK_LOAD calls here rather than...
19386	* tree-vect-stmts.c (vectorizable_mask_load_store): ...here.
19387
193882018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19389	    Alan Hayward  <alan.hayward@arm.com>
19390	    David Sherwood  <david.sherwood@arm.com>
19391
19392	* expmed.c (extract_bit_field_1): For vector extracts,
19393	fall back to extract_bit_field_as_subreg if vec_extract
19394	isn't available.
19395
193962018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19397	    Alan Hayward  <alan.hayward@arm.com>
19398	    David Sherwood  <david.sherwood@arm.com>
19399
19400	* lra-spills.c (pseudo_reg_slot_compare): Sort slots by whether
19401	they are variable or constant sized.
19402	(assign_stack_slot_num_and_sort_pseudos): Don't reuse variable-sized
19403	slots for constant-sized data.
19404
194052018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19406	    Alan Hayward  <alan.hayward@arm.com>
19407	    David Sherwood  <david.sherwood@arm.com>
19408
19409	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): When
19410	handling COND_EXPRs with boolean comparisons, try to find a better
19411	basis for the mask type than the boolean itself.
19412
194132018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19414
19415	* doc/rtl.texi (MAX_BITSIZE_MODE_ANY_MODE): Describe how the default
19416	is calculated and how it can be overridden.
19417	* genmodes.c (max_bitsize_mode_any_mode): New variable.
19418	(create_modes): Initialize it from MAX_BITSIZE_MODE_ANY_MODE,
19419	if defined.
19420	(emit_max_int): Use it to set the output MAX_BITSIZE_MODE_ANY_MODE,
19421	if nonzero.
19422
194232018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19424	    Alan Hayward  <alan.hayward@arm.com>
19425	    David Sherwood  <david.sherwood@arm.com>
19426
19427	* config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_immediate):
19428	Remove the mode argument.
19429	(aarch64_simd_valid_immediate): Remove the mode and inverse
19430	arguments.
19431	* config/aarch64/iterators.md (bitsize): New iterator.
19432	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>, and<mode>3)
19433	(ior<mode>3): Update calls to aarch64_output_simd_mov_immediate.
19434	* config/aarch64/constraints.md (Do, Db, Dn): Update calls to
19435	aarch64_simd_valid_immediate.
19436	* config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Likewise.
19437	(aarch64_reg_or_bic_imm): Likewise.
19438	* config/aarch64/aarch64.c (simd_immediate_info): Replace mvn
19439	with an insn_type enum and msl with a modifier_type enum.
19440	Replace element_width with a scalar_mode.  Change the shift
19441	to unsigned int.  Add constructors for scalar_float_mode and
19442	scalar_int_mode elements.
19443	(aarch64_vect_float_const_representable_p): Delete.
19444	(aarch64_can_const_movi_rtx_p)
19445	(aarch64_simd_scalar_immediate_valid_for_move)
19446	(aarch64_simd_make_constant): Update call to
19447	aarch64_simd_valid_immediate.
19448	(aarch64_advsimd_valid_immediate_hs): New function.
19449	(aarch64_advsimd_valid_immediate): Likewise.
19450	(aarch64_simd_valid_immediate): Remove mode and inverse
19451	arguments.  Rewrite to use the above.  Use const_vec_duplicate_p
19452	to detect duplicated constants and use aarch64_float_const_zero_rtx_p
19453	and aarch64_float_const_representable_p on the result.
19454	(aarch64_output_simd_mov_immediate): Remove mode argument.
19455	Update call to aarch64_simd_valid_immediate and use of
19456	simd_immediate_info.
19457	(aarch64_output_scalar_simd_mov_immediate): Update call
19458	accordingly.
19459
194602018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19461	    Alan Hayward  <alan.hayward@arm.com>
19462	    David Sherwood  <david.sherwood@arm.com>
19463
19464	* machmode.h (mode_precision): Prefix with CONST_MODE_PRECISION.
19465	(mode_nunits): Likewise CONST_MODE_NUNITS.
19466	* machmode.def (ADJUST_NUNITS): Document.
19467	* genmodes.c (mode_data::need_nunits_adj): New field.
19468	(blank_mode): Update accordingly.
19469	(adj_nunits): New variable.
19470	(print_maybe_const_decl): Replace CATEGORY with a NEEDS_ADJ
19471	parameter.
19472	(emit_mode_size_inline): Set need_bytesize_adj for all modes
19473	listed in adj_nunits.
19474	(emit_mode_nunits_inline): Set need_nunits_adj for all modes
19475	listed in adj_nunits.  Don't emit case statements for such modes.
19476	(emit_insn_modes_h): Emit definitions of CONST_MODE_NUNITS
19477	and CONST_MODE_PRECISION.  Make CONST_MODE_SIZE expand to
19478	nothing if adj_nunits is nonnull.
19479	(emit_mode_precision, emit_mode_nunits): Use print_maybe_const_decl.
19480	(emit_mode_unit_size, emit_mode_base_align, emit_mode_ibit)
19481	(emit_mode_fbit): Update use of print_maybe_const_decl.
19482	(emit_move_size): Likewise.  Treat the array as non-const
19483	if adj_nunits.
19484	(emit_mode_adjustments): Handle adj_nunits.
19485
194862018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19487
19488	* machmode.def (VECTOR_MODES_WITH_PREFIX): Document.
19489	* genmodes.c (VECTOR_MODES_WITH_PREFIX): New macro.
19490	(VECTOR_MODES): Use it.
19491	(make_vector_modes): Take the prefix as an argument.
19492
194932018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19494	    Alan Hayward  <alan.hayward@arm.com>
19495	    David Sherwood  <david.sherwood@arm.com>
19496
19497	* mode-classes.def (MODE_VECTOR_BOOL): New mode class.
19498	* machmode.h (INTEGRAL_MODE_P, VECTOR_MODE_P): Return true
19499	for MODE_VECTOR_BOOL.
19500	* machmode.def (VECTOR_BOOL_MODE): Document.
19501	* genmodes.c (VECTOR_BOOL_MODE): New macro.
19502	(make_vector_bool_mode): New function.
19503	(complete_mode, emit_mode_wider, emit_mode_adjustments): Handle
19504	MODE_VECTOR_BOOL.
19505	* lto-streamer-in.c (lto_input_mode_table): Likewise.
19506	* rtx-vector-builder.c (rtx_vector_builder::find_cached_value):
19507	Likewise.
19508	* stor-layout.c (int_mode_for_mode): Likewise.
19509	* tree.c (build_vector_type_for_mode): Likewise.
19510	* varasm.c (output_constant_pool_2): Likewise.
19511	* emit-rtl.c (init_emit_once): Make sure that CONST1_RTX (BImode) and
19512	CONSTM1_RTX (BImode) are the same thing.  Initialize const_tiny_rtx
19513	for MODE_VECTOR_BOOL.
19514	* expr.c (expand_expr_real_1): Use VECTOR_MODE_P instead of a list
19515	of mode class checks.
19516	* tree-vect-generic.c (expand_vector_operation): Use VECTOR_MODE_P
19517	instead of a list of mode class checks.
19518	(expand_vector_scalar_condition): Likewise.
19519	(type_for_widest_vector_mode): Handle BImode as an inner mode.
19520
195212018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19522	    Alan Hayward  <alan.hayward@arm.com>
19523	    David Sherwood  <david.sherwood@arm.com>
19524
19525	* machmode.h (mode_size): Change from unsigned short to
19526	poly_uint16_pod.
19527	(mode_to_bytes): Return a poly_uint16 rather than an unsigned short.
19528	(GET_MODE_SIZE): Return a constant if ONLY_FIXED_SIZE_MODES,
19529	or if measurement_type is not polynomial.
19530	(fixed_size_mode::includes_p): Check for constant-sized modes.
19531	* genmodes.c (emit_mode_size_inline): Make mode_size_inline
19532	return a poly_uint16 rather than an unsigned short.
19533	(emit_mode_size): Change the type of mode_size from unsigned short
19534	to poly_uint16_pod.  Use ZERO_COEFFS for the initializer.
19535	(emit_mode_adjustments): Cope with polynomial vector sizes.
19536	* lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
19537	for GET_MODE_SIZE.
19538	* lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
19539	for GET_MODE_SIZE.
19540	* auto-inc-dec.c (try_merge): Treat GET_MODE_SIZE as polynomial.
19541	* builtins.c (expand_ifn_atomic_compare_exchange_into_call): Likewise.
19542	* caller-save.c (setup_save_areas): Likewise.
19543	(replace_reg_with_saved_mem): Likewise.
19544	* calls.c (emit_library_call_value_1): Likewise.
19545	* combine-stack-adj.c (combine_stack_adjustments_for_block): Likewise.
19546	* combine.c (simplify_set, make_extraction, simplify_shift_const_1)
19547	(gen_lowpart_for_combine): Likewise.
19548	* convert.c (convert_to_integer_1): Likewise.
19549	* cse.c (equiv_constant, cse_insn): Likewise.
19550	* cselib.c (autoinc_split, cselib_hash_rtx): Likewise.
19551	(cselib_subst_to_values): Likewise.
19552	* dce.c (word_dce_process_block): Likewise.
19553	* df-problems.c (df_word_lr_mark_ref): Likewise.
19554	* dwarf2cfi.c (init_one_dwarf_reg_size): Likewise.
19555	* dwarf2out.c (multiple_reg_loc_descriptor, mem_loc_descriptor)
19556	(concat_loc_descriptor, concatn_loc_descriptor, loc_descriptor)
19557	(rtl_for_decl_location): Likewise.
19558	* emit-rtl.c (gen_highpart, widen_memory_access): Likewise.
19559	* expmed.c (extract_bit_field_1, extract_integral_bit_field): Likewise.
19560	* expr.c (emit_group_load_1, clear_storage_hints): Likewise.
19561	(emit_move_complex, emit_move_multi_word, emit_push_insn): Likewise.
19562	(expand_expr_real_1): Likewise.
19563	* function.c (assign_parm_setup_block_p, assign_parm_setup_block)
19564	(pad_below): Likewise.
19565	* gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise.
19566	* gimple-ssa-store-merging.c (rhs_valid_for_store_merging_p): Likewise.
19567	* ira.c (get_subreg_tracking_sizes): Likewise.
19568	* ira-build.c (ira_create_allocno_objects): Likewise.
19569	* ira-color.c (coalesced_pseudo_reg_slot_compare): Likewise.
19570	(ira_sort_regnos_for_alter_reg): Likewise.
19571	* ira-costs.c (record_operand_costs): Likewise.
19572	* lower-subreg.c (interesting_mode_p, simplify_gen_subreg_concatn)
19573	(resolve_simple_move): Likewise.
19574	* lra-constraints.c (get_reload_reg, operands_match_p): Likewise.
19575	(process_addr_reg, simplify_operand_subreg, curr_insn_transform)
19576	(lra_constraints): Likewise.
19577	(CONST_POOL_OK_P): Reject variable-sized modes.
19578	* lra-spills.c (slot, assign_mem_slot, pseudo_reg_slot_compare)
19579	(add_pseudo_to_slot, lra_spill): Likewise.
19580	* omp-low.c (omp_clause_aligned_alignment): Likewise.
19581	* optabs-query.c (get_best_extraction_insn): Likewise.
19582	* optabs-tree.c (expand_vec_cond_expr_p): Likewise.
19583	* optabs.c (expand_vec_perm_var, expand_vec_cond_expr): Likewise.
19584	(expand_mult_highpart, valid_multiword_target_p): Likewise.
19585	* recog.c (offsettable_address_addr_space_p): Likewise.
19586	* regcprop.c (maybe_mode_change): Likewise.
19587	* reginfo.c (choose_hard_reg_mode, record_subregs_of_mode): Likewise.
19588	* regrename.c (build_def_use): Likewise.
19589	* regstat.c (dump_reg_info): Likewise.
19590	* reload.c (complex_word_subreg_p, push_reload, find_dummy_reload)
19591	(find_reloads, find_reloads_subreg_address): Likewise.
19592	* reload1.c (eliminate_regs_1): Likewise.
19593	* rtlanal.c (for_each_inc_dec_find_inc_dec, rtx_cost): Likewise.
19594	* simplify-rtx.c (avoid_constant_pool_reference): Likewise.
19595	(simplify_binary_operation_1, simplify_subreg): Likewise.
19596	* targhooks.c (default_function_arg_padding): Likewise.
19597	(default_hard_regno_nregs, default_class_max_nregs): Likewise.
19598	* tree-cfg.c (verify_gimple_assign_binary): Likewise.
19599	(verify_gimple_assign_ternary): Likewise.
19600	* tree-inline.c (estimate_move_cost): Likewise.
19601	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
19602	* tree-ssa-loop-ivopts.c (add_autoinc_candidates): Likewise.
19603	(get_address_cost_ainc): Likewise.
19604	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
19605	(vect_supportable_dr_alignment): Likewise.
19606	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
19607	(vectorizable_reduction): Likewise.
19608	* tree-vect-stmts.c (vectorizable_assignment, vectorizable_shift)
19609	(vectorizable_operation, vectorizable_load): Likewise.
19610	* tree.c (build_same_sized_truth_vector_type): Likewise.
19611	* valtrack.c (cleanup_auto_inc_dec): Likewise.
19612	* var-tracking.c (emit_note_insn_var_location): Likewise.
19613	* config/arc/arc.h (ASM_OUTPUT_CASE_END): Use as_a <scalar_int_mode>.
19614	(ADDR_VEC_ALIGN): Likewise.
19615
196162018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19617	    Alan Hayward  <alan.hayward@arm.com>
19618	    David Sherwood  <david.sherwood@arm.com>
19619
19620	* machmode.h (mode_to_bits): Return a poly_uint16 rather than an
19621	unsigned short.
19622	(GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES,
19623	or if measurement_type is polynomial.
19624	* calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial.
19625	* combine.c (make_extraction): Likewise.
19626	* dse.c (find_shift_sequence): Likewise.
19627	* dwarf2out.c (mem_loc_descriptor): Likewise.
19628	* expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise.
19629	(extract_bit_field, extract_low_bits): Likewise.
19630	* expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise.
19631	(optimize_bitfield_assignment_op, expand_assignment): Likewise.
19632	(store_expr_with_bounds, store_field, expand_expr_real_1): Likewise.
19633	* fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise.
19634	* gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise.
19635	* reload.c (find_reloads): Likewise.
19636	* reload1.c (alter_reg): Likewise.
19637	* stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise.
19638	* targhooks.c (default_secondary_memory_needed_mode): Likewise.
19639	* tree-if-conv.c (predicate_mem_writes): Likewise.
19640	* tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
19641	* tree-vect-patterns.c (adjust_bool_pattern): Likewise.
19642	* tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
19643	* valtrack.c (dead_debug_insert_temp): Likewise.
19644	* varasm.c (mergeable_constant_section): Likewise.
19645	* config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a <fixed_size_mode>.
19646
196472018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19648	    Alan Hayward  <alan.hayward@arm.com>
19649	    David Sherwood  <david.sherwood@arm.com>
19650
19651	* expr.c (expand_assignment): Cope with polynomial mode sizes
19652	when assigning to a CONCAT.
19653
196542018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19655	    Alan Hayward  <alan.hayward@arm.com>
19656	    David Sherwood  <david.sherwood@arm.com>
19657
19658	* machmode.h (mode_precision): Change from unsigned short to
19659	poly_uint16_pod.
19660	(mode_to_precision): Return a poly_uint16 rather than an unsigned
19661	short.
19662	(GET_MODE_PRECISION): Return a constant if ONLY_FIXED_SIZE_MODES,
19663	or if measurement_type is not polynomial.
19664	(HWI_COMPUTABLE_MODE_P): Turn into a function.  Optimize the case
19665	in which the mode is already known to be a scalar_int_mode.
19666	* genmodes.c (emit_mode_precision): Change the type of mode_precision
19667	from unsigned short to poly_uint16_pod.  Use ZERO_COEFFS for the
19668	initializer.
19669	* lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
19670	for GET_MODE_PRECISION.
19671	* lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
19672	for GET_MODE_PRECISION.
19673	* combine.c (update_rsp_from_reg_equal): Treat GET_MODE_PRECISION
19674	as polynomial.
19675	(try_combine, find_split_point, combine_simplify_rtx): Likewise.
19676	(expand_field_assignment, make_extraction): Likewise.
19677	(make_compound_operation_int, record_dead_and_set_regs_1): Likewise.
19678	(get_last_value): Likewise.
19679	* convert.c (convert_to_integer_1): Likewise.
19680	* cse.c (cse_insn): Likewise.
19681	* expr.c (expand_expr_real_1): Likewise.
19682	* lra-constraints.c (simplify_operand_subreg): Likewise.
19683	* optabs-query.c (can_atomic_load_p): Likewise.
19684	* optabs.c (expand_atomic_load): Likewise.
19685	(expand_atomic_store): Likewise.
19686	* ree.c (combine_reaching_defs): Likewise.
19687	* rtl.h (partial_subreg_p, paradoxical_subreg_p): Likewise.
19688	* rtlanal.c (nonzero_bits1, lsb_bitfield_op_p): Likewise.
19689	* tree.h (type_has_mode_precision_p): Likewise.
19690	* ubsan.c (instrument_si_overflow): Likewise.
19691
196922018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19693	    Alan Hayward  <alan.hayward@arm.com>
19694	    David Sherwood  <david.sherwood@arm.com>
19695
19696	* tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle
19697	polynomial numbers of units.
19698	(SET_TYPE_VECTOR_SUBPARTS): Likewise.
19699	(valid_vector_subparts_p): New function.
19700	(build_vector_type): Remove temporary shim and take the number
19701	of units as a poly_uint64 rather than an int.
19702	(build_opaque_vector_type): Take the number of units as a
19703	poly_uint64 rather than an int.
19704	* tree.c (build_vector_from_ctor): Handle polynomial
19705	TYPE_VECTOR_SUBPARTS.
19706	(type_hash_canon_hash, type_cache_hasher::equal): Likewise.
19707	(uniform_vector_p, vector_type_mode, build_vector): Likewise.
19708	(build_vector_from_val): If the number of units is variable,
19709	use build_vec_duplicate_cst for constant operands and
19710	VEC_DUPLICATE_EXPR otherwise.
19711	(make_vector_type): Remove temporary is_constant ().
19712	(build_vector_type, build_opaque_vector_type): Take the number of
19713	units as a poly_uint64 rather than an int.
19714	(check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and
19715	VECTOR_CST_NELTS.
19716	* cfgexpand.c (expand_debug_expr): Likewise.
19717	* expr.c (count_type_elements, categorize_ctor_elements_1): Likewise.
19718	(store_constructor, expand_expr_real_1): Likewise.
19719	(const_scalar_mask_from_tree): Likewise.
19720	* fold-const-call.c (fold_const_reduction): Likewise.
19721	* fold-const.c (const_binop, const_unop, fold_convert_const): Likewise.
19722	(operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise.
19723	(native_encode_vector, vec_cst_ctor_to_array): Likewise.
19724	(fold_relational_const): Likewise.
19725	(native_interpret_vector): Likewise.  Change the size from an
19726	int to an unsigned int.
19727	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial
19728	TYPE_VECTOR_SUBPARTS.
19729	(gimple_fold_indirect_ref, gimple_build_vector): Likewise.
19730	(gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when
19731	duplicating a non-constant operand into a variable-length vector.
19732	* hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial
19733	TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS.
19734	* ipa-icf.c (sem_variable::equals): Likewise.
19735	* match.pd: Likewise.
19736	* omp-simd-clone.c (simd_clone_subparts): Likewise.
19737	* print-tree.c (print_node): Likewise.
19738	* stor-layout.c (layout_type): Likewise.
19739	* targhooks.c (default_builtin_vectorization_cost): Likewise.
19740	* tree-cfg.c (verify_gimple_comparison): Likewise.
19741	(verify_gimple_assign_binary): Likewise.
19742	(verify_gimple_assign_ternary): Likewise.
19743	(verify_gimple_assign_single): Likewise.
19744	* tree-pretty-print.c (dump_generic_node): Likewise.
19745	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
19746	(simplify_bitfield_ref, is_combined_permutation_identity): Likewise.
19747	* tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
19748	(vect_grouped_load_supported, vect_permute_load_chain): Likewise.
19749	(vect_shift_permute_load_chain): Likewise.
19750	* tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise.
19751	(expand_vector_condition, optimize_vector_constructor): Likewise.
19752	(lower_vec_perm, get_compute_type): Likewise.
19753	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
19754	(get_initial_defs_for_reduction, vect_transform_loop): Likewise.
19755	* tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
19756	(vect_recog_mask_conversion_pattern): Likewise.
19757	* tree-vect-slp.c (vect_supported_load_permutation_p): Likewise.
19758	(vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise.
19759	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
19760	(get_group_load_store_type, vectorizable_mask_load_store): Likewise.
19761	(vectorizable_bswap, simd_clone_subparts, vectorizable_assignment)
19762	(vectorizable_shift, vectorizable_operation, vectorizable_store)
19763	(vectorizable_load, vect_is_simple_cond, vectorizable_comparison)
19764	(supportable_widening_operation): Likewise.
19765	(supportable_narrowing_operation): Likewise.
19766	* tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts):
19767	Likewise.
19768	* varasm.c (output_constant): Likewise.
19769
197702018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19771	    Alan Hayward  <alan.hayward@arm.com>
19772	    David Sherwood  <david.sherwood@arm.com>
19773
19774	* tree-vect-data-refs.c (vect_permute_store_chain): Reorganize
19775	so that both the length == 3 and length != 3 cases set up their
19776	own permute vectors.  Add comments explaining why we know the
19777	number of elements is constant.
19778	(vect_permute_load_chain): Likewise.
19779
197802018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19781	    Alan Hayward  <alan.hayward@arm.com>
19782	    David Sherwood  <david.sherwood@arm.com>
19783
19784	* machmode.h (mode_nunits): Change from unsigned char to
19785	poly_uint16_pod.
19786	(ONLY_FIXED_SIZE_MODES): New macro.
19787	(pod_mode::measurement_type, scalar_int_mode::measurement_type)
19788	(scalar_float_mode::measurement_type, scalar_mode::measurement_type)
19789	(complex_mode::measurement_type, fixed_size_mode::measurement_type):
19790	New typedefs.
19791	(mode_to_nunits): Return a poly_uint16 rather than an unsigned short.
19792	(GET_MODE_NUNITS): Return a constant if ONLY_FIXED_SIZE_MODES,
19793	or if measurement_type is not polynomial.
19794	* genmodes.c (ZERO_COEFFS): New macro.
19795	(emit_mode_nunits_inline): Make mode_nunits_inline return a
19796	poly_uint16.
19797	(emit_mode_nunits): Change the type of mode_nunits to poly_uint16_pod.
19798	Use ZERO_COEFFS when emitting initializers.
19799	* data-streamer.h (bp_pack_poly_value): New function.
19800	(bp_unpack_poly_value): Likewise.
19801	* lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
19802	for GET_MODE_NUNITS.
19803	* lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
19804	for GET_MODE_NUNITS.
19805	* tree.c (make_vector_type): Remove temporary shim and make
19806	the real function take the number of units as a poly_uint64
19807	rather than an int.
19808	(build_vector_type_for_mode): Handle polynomial nunits.
19809	* dwarf2out.c (loc_descriptor, add_const_value_attribute): Likewise.
19810	* emit-rtl.c (const_vec_series_p_1): Likewise.
19811	(gen_rtx_CONST_VECTOR): Likewise.
19812	* fold-const.c (test_vec_duplicate_folding): Likewise.
19813	* genrecog.c (validate_pattern): Likewise.
19814	* optabs-query.c (can_vec_perm_var_p, can_mult_highpart_p): Likewise.
19815	* optabs-tree.c (expand_vec_cond_expr_p): Likewise.
19816	* optabs.c (expand_vector_broadcast, expand_binop_directly): Likewise.
19817	(shift_amt_for_vec_perm_mask, expand_vec_perm_var): Likewise.
19818	(expand_vec_cond_expr, expand_mult_highpart): Likewise.
19819	* rtlanal.c (subreg_get_info): Likewise.
19820	* tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
19821	(vect_grouped_load_supported): Likewise.
19822	* tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
19823	* tree-vect-loop.c (have_whole_vector_shift): Likewise.
19824	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
19825	(simplify_const_unary_operation, simplify_binary_operation_1)
19826	(simplify_const_binary_operation, simplify_ternary_operation)
19827	(test_vector_ops_duplicate, test_vector_ops): Likewise.
19828	(simplify_immed_subreg): Use GET_MODE_NUNITS on a fixed_size_mode
19829	instead of CONST_VECTOR_NUNITS.
19830	* varasm.c (output_constant_pool_2): Likewise.
19831	* rtx-vector-builder.c (rtx_vector_builder::build): Only include the
19832	explicit-encoded elements in the XVEC for variable-length vectors.
19833
198342018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19835
19836	* lra-constraints.c (curr_insn_transform): Use partial_subreg_p.
19837
198382018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19839	    Alan Hayward  <alan.hayward@arm.com>
19840	    David Sherwood  <david.sherwood@arm.com>
19841
19842	* coretypes.h (fixed_size_mode): Declare.
19843	(fixed_size_mode_pod): New typedef.
19844	* builtins.h (target_builtins::x_apply_args_mode)
19845	(target_builtins::x_apply_result_mode): Change type to
19846	fixed_size_mode_pod.
19847	* builtins.c (apply_args_size, apply_result_size, result_vector)
19848	(expand_builtin_apply_args_1, expand_builtin_apply)
19849	(expand_builtin_return): Update accordingly.
19850
198512018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19852
19853	* cse.c (hash_rtx_cb): Hash only the encoded elements.
19854	* cselib.c (cselib_hash_rtx): Likewise.
19855	* expmed.c (make_tree): Build VECTOR_CSTs directly from the
19856	CONST_VECTOR encoding.
19857
198582018-01-03  Jakub Jelinek  <jakub@redhat.com>
19859	    Jeff Law  <law@redhat.com>
19860
19861	PR target/83641
19862	* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): For
19863	noreturn probe, use gen_pop instead of ix86_emit_restore_reg_using_pop,
19864	only set RTX_FRAME_RELATED_P on both the push and pop if cfa_reg is sp
19865	and add REG_CFA_ADJUST_CFA notes in that case to both insns.
19866
19867	PR target/83641
19868	* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Do not
19869	explicitly probe *sp in a noreturn function if there were any callee
19870	register saves or frame pointer is needed.
19871
198722018-01-03  Jakub Jelinek  <jakub@redhat.com>
19873
19874	PR debug/83621
19875	* cfgexpand.c (expand_debug_expr): Return NULL if mode is
19876	BLKmode for ternary, binary or unary expressions.
19877
19878	PR debug/83645
19879	* var-tracking.c (delete_vta_debug_insn): New inline function.
19880	(delete_vta_debug_insns): Add USE_CFG argument, if true, walk just
19881	insns from get_insns () to NULL instead of each bb separately.
19882	Use delete_vta_debug_insn.  No longer static.
19883	(vt_debug_insns_local, variable_tracking_main_1): Adjust
19884	delete_vta_debug_insns callers.
19885	* rtl.h (delete_vta_debug_insns): Declare.
19886	* final.c (rest_of_handle_final): Call delete_vta_debug_insns
19887	instead of variable_tracking_main.
19888
198892018-01-03  Martin Sebor  <msebor@redhat.com>
19890
19891	PR tree-optimization/83603
19892	* calls.c (maybe_warn_nonstring_arg): Avoid accessing function
19893	arguments past the endof the argument list in functions declared
19894	without a prototype.
19895	* gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call):
19896	Avoid checking when arguments are null.
19897
198982018-01-03  Martin Sebor  <msebor@redhat.com>
19899
19900	PR c/83559
19901	* doc/extend.texi (attribute const): Fix a typo.
19902	* ipa-pure-const.c ((warn_function_const, warn_function_pure): Avoid
19903	issuing -Wsuggest-attribute for void functions.
19904
199052018-01-03  Martin Sebor  <msebor@redhat.com>
19906
19907	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use
19908	offset_int::from instead of wide_int::to_shwi.
19909	(maybe_diag_overlap): Remove assertion.
19910	Use HOST_WIDE_INT_PRINT_DEC instead of %lli.
19911	* gimple-ssa-sprintf.c (format_directive): Same.
19912	(parse_directive): Same.
19913	(sprintf_dom_walker::compute_format_length): Same.
19914	(try_substitute_return_value): Same.
19915
199162018-01-03  Jeff Law  <law@redhat.com>
19917
19918	PR middle-end/83654
19919	* explow.c (anti_adjust_stack_and_probe_stack_clash): Test a
19920	non-constant residual for zero at runtime and avoid probing in
19921	that case.  Reorganize code for trailing problem to mirror handling
19922	of the residual.
19923
199242018-01-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19925
19926	PR tree-optimization/83501
19927	* tree-ssa-strlen.c (get_string_cst): New.
19928	(handle_char_store): Call get_string_cst.
19929
199302018-01-03  Martin Liska  <mliska@suse.cz>
19931
19932	PR tree-optimization/83593
19933	* tree-ssa-strlen.c: Include tree-cfg.h.
19934	(strlen_check_and_optimize_stmt): Add new argument cleanup_eh.
19935	(strlen_dom_walker): Add new member variable m_cleanup_cfg.
19936	(strlen_dom_walker::strlen_dom_walker): Initialize m_cleanup_cfg
19937	to false.
19938	(strlen_dom_walker::before_dom_children): Call
19939	gimple_purge_dead_eh_edges. Dump tranformation with details
19940	dump flags.
19941	(strlen_dom_walker::before_dom_children): Update call by adding
19942	new argument cleanup_eh.
19943	(pass_strlen::execute): Return TODO_cleanup_cfg if needed.
19944
199452018-01-03  Martin Liska  <mliska@suse.cz>
19946
19947	PR ipa/83549
19948	* cif-code.def (VARIADIC_THUNK): New enum value.
19949	* ipa-fnsummary.c (compute_fn_summary): Do not inline variadic
19950	thunks.
19951
199522018-01-03  Jan Beulich  <jbeulich@suse.com>
19953
19954	* sse.md (mov<mode>_internal): Tighten condition for when to use
19955	vmovdqu<ssescalarsize> for TI and OI modes.
19956
199572018-01-03  Jakub Jelinek  <jakub@redhat.com>
19958
19959	Update copyright years.
19960
199612018-01-03  Martin Liska  <mliska@suse.cz>
19962
19963	PR ipa/83594
19964	* ipa-visibility.c (function_and_variable_visibility): Skip
19965	functions with noipa attribure.
19966
199672018-01-03  Jakub Jelinek  <jakub@redhat.com>
19968
19969	* gcc.c (process_command): Update copyright notice dates.
19970	* gcov-dump.c (print_version): Ditto.
19971	* gcov.c (print_version): Ditto.
19972	* gcov-tool.c (print_version): Ditto.
19973	* gengtype.c (create_file): Ditto.
19974	* doc/cpp.texi: Bump @copying's copyright year.
19975	* doc/cppinternals.texi: Ditto.
19976	* doc/gcc.texi: Ditto.
19977	* doc/gccint.texi: Ditto.
19978	* doc/gcov.texi: Ditto.
19979	* doc/install.texi: Ditto.
19980	* doc/invoke.texi: Ditto.
19981
199822018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
19983
19984	* vector-builder.h (vector_builder::m_full_nelts): Change from
19985	unsigned int to poly_uint64.
19986	(vector_builder::full_nelts): Update prototype accordingly.
19987	(vector_builder::new_vector): Likewise.
19988	(vector_builder::encoded_full_vector_p): Handle polynomial full_nelts.
19989	(vector_builder::operator ==): Likewise.
19990	(vector_builder::finalize): Likewise.
19991	* int-vector-builder.h (int_vector_builder::int_vector_builder):
19992	Take the number of elements as a poly_uint64 rather than an
19993	unsigned int.
19994	* vec-perm-indices.h (vec_perm_indices::m_nelts_per_input): Change
19995	from unsigned int to poly_uint64.
19996	(vec_perm_indices::vec_perm_indices): Update prototype accordingly.
19997	(vec_perm_indices::new_vector): Likewise.
19998	(vec_perm_indices::length): Likewise.
19999	(vec_perm_indices::nelts_per_input): Likewise.
20000	(vec_perm_indices::input_nelts): Likewise.
20001	* vec-perm-indices.c (vec_perm_indices::new_vector): Take the
20002	number of elements per input as a poly_uint64 rather than an
20003	unsigned int.  Use the original encoding for variable-length
20004	vectors, rather than clamping each individual element.
20005	For the second and subsequent elements in each pattern,
20006	clamp the step and base before clamping their sum.
20007	(vec_perm_indices::series_p): Handle polynomial element counts.
20008	(vec_perm_indices::all_in_range_p): Likewise.
20009	(vec_perm_indices_to_tree): Likewise.
20010	(vec_perm_indices_to_rtx): Likewise.
20011	* tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
20012	* tree-vector-builder.c (tree_vector_builder::new_unary_operation)
20013	(tree_vector_builder::new_binary_operation): Handle polynomial
20014	element counts.  Return false if we need to know the number
20015	of elements at compile time.
20016	* fold-const.c (fold_vec_perm): Punt if the number of elements
20017	isn't known at compile time.
20018
200192018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20020
20021	* vec-perm-indices.h (vec_perm_builder): Change element type
20022	from HOST_WIDE_INT to poly_int64.
20023	(vec_perm_indices::element_type): Update accordingly.
20024	(vec_perm_indices::clamp): Handle polynomial element_types.
20025	* vec-perm-indices.c (vec_perm_indices::series_p): Likewise.
20026	(vec_perm_indices::all_in_range_p): Likewise.
20027	(tree_to_vec_perm_builder): Check for poly_int64 trees rather
20028	than shwi trees.
20029	* vector-builder.h (vector_builder::stepped_sequence_p): Handle
20030	polynomial vec_perm_indices element types.
20031	* int-vector-builder.h (int_vector_builder::equal_p): Likewise.
20032	* fold-const.c (fold_vec_perm): Likewise.
20033	* optabs.c (shift_amt_for_vec_perm_mask): Likewise.
20034	* tree-vect-generic.c (lower_vec_perm): Likewise.
20035	* tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
20036	* config/aarch64/aarch64.c (aarch64_evpc_tbl): Cast d->perm
20037	element type to HOST_WIDE_INT.
20038
200392018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20040	    Alan Hayward  <alan.hayward@arm.com>
20041	    David Sherwood  <david.sherwood@arm.com>
20042
20043	* alias.c (addr_side_effect_eval): Take the size as a poly_int64
20044	rather than an int.  Use plus_constant.
20045	(memrefs_conflict_p): Take the sizes as poly_int64s rather than ints.
20046	Take the offset "c" as a poly_int64 rather than a HOST_WIDE_INT.
20047
200482018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20049	    Alan Hayward  <alan.hayward@arm.com>
20050	    David Sherwood  <david.sherwood@arm.com>
20051
20052	* calls.c (emit_call_1, expand_call): Change struct_value_size from
20053	a HOST_WIDE_INT to a poly_int64.
20054
200552018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20056	    Alan Hayward  <alan.hayward@arm.com>
20057	    David Sherwood  <david.sherwood@arm.com>
20058
20059	* calls.c (load_register_parameters): Cope with polynomial
20060	mode sizes.  Require a constant size for BLKmode parameters
20061	that aren't described by a PARALLEL.  If BLOCK_REG_PADDING
20062	forces a parameter to be padded at the lsb end in order to
20063	fill a complete number of words, require the parameter size
20064	to be ordered wrt UNITS_PER_WORD.
20065
200662018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20067	    Alan Hayward  <alan.hayward@arm.com>
20068	    David Sherwood  <david.sherwood@arm.com>
20069
20070	* reload1.c (spill_stack_slot_width): Change element type
20071	from unsigned int to poly_uint64_pod.
20072	(alter_reg): Treat mode sizes as polynomial.
20073
200742018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20075	    Alan Hayward  <alan.hayward@arm.com>
20076	    David Sherwood  <david.sherwood@arm.com>
20077
20078	* reload.c (complex_word_subreg_p): New function.
20079	(reload_inner_reg_of_subreg, push_reload): Use it.
20080
200812018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20082	    Alan Hayward  <alan.hayward@arm.com>
20083	    David Sherwood  <david.sherwood@arm.com>
20084
20085	* lra-constraints.c (process_alt_operands): Reject matched
20086	operands whose sizes aren't ordered.
20087	(match_reload): Refer to this check here.
20088
200892018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20090	    Alan Hayward  <alan.hayward@arm.com>
20091	    David Sherwood  <david.sherwood@arm.com>
20092
20093	* builtins.c (expand_ifn_atomic_compare_exchange_into_call): Assert
20094	that the mode size is in the set {1, 2, 4, 8, 16}.
20095
200962018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20097	    Alan Hayward  <alan.hayward@arm.com>
20098	    David Sherwood  <david.sherwood@arm.com>
20099
20100	* var-tracking.c (adjust_mems): Treat mode sizes as polynomial.
20101	Use plus_constant instead of gen_rtx_PLUS.
20102
201032018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20104	    Alan Hayward  <alan.hayward@arm.com>
20105	    David Sherwood  <david.sherwood@arm.com>
20106
20107	* config/cr16/cr16-protos.h (cr16_push_rounding): Declare.
20108	* config/cr16/cr16.h (PUSH_ROUNDING): Move implementation to...
20109	* config/cr16/cr16.c (cr16_push_rounding): ...this new function.
20110	* config/h8300/h8300-protos.h (h8300_push_rounding): Declare.
20111	* config/h8300/h8300.h (PUSH_ROUNDING): Move implementation to...
20112	* config/h8300/h8300.c (h8300_push_rounding): ...this new function.
20113	* config/i386/i386-protos.h (ix86_push_rounding): Declare.
20114	* config/i386/i386.h (PUSH_ROUNDING): Move implementation to...
20115	* config/i386/i386.c (ix86_push_rounding): ...this new function.
20116	* config/m32c/m32c-protos.h (m32c_push_rounding): Take and return
20117	a poly_int64.
20118	* config/m32c/m32c.c (m32c_push_rounding): Likewise.
20119	* config/m68k/m68k-protos.h (m68k_push_rounding): Declare.
20120	* config/m68k/m68k.h (PUSH_ROUNDING): Move implementation to...
20121	* config/m68k/m68k.c (m68k_push_rounding): ...this new function.
20122	* config/pdp11/pdp11-protos.h (pdp11_push_rounding): Declare.
20123	* config/pdp11/pdp11.h (PUSH_ROUNDING): Move implementation to...
20124	* config/pdp11/pdp11.c (pdp11_push_rounding): ...this new function.
20125	* config/stormy16/stormy16-protos.h (xstormy16_push_rounding): Declare.
20126	* config/stormy16/stormy16.h (PUSH_ROUNDING): Move implementation to...
20127	* config/stormy16/stormy16.c (xstormy16_push_rounding): ...this new
20128	function.
20129	* expr.c (emit_move_resolve_push): Treat the input and result
20130	of PUSH_ROUNDING as a poly_int64.
20131	(emit_move_complex_push, emit_single_push_insn_1): Likewise.
20132	(emit_push_insn): Likewise.
20133	* lra-eliminations.c (mark_not_eliminable): Likewise.
20134	* recog.c (push_operand): Likewise.
20135	* reload1.c (elimination_effects): Likewise.
20136	* rtlanal.c (nonzero_bits1): Likewise.
20137	* calls.c (store_one_arg): Likewise.  Require the padding to be
20138	known at compile time.
20139
201402018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20141	    Alan Hayward  <alan.hayward@arm.com>
20142	    David Sherwood  <david.sherwood@arm.com>
20143
20144	* expr.c (emit_single_push_insn_1): Treat mode sizes as polynomial.
20145	Use plus_constant instead of gen_rtx_PLUS.
20146
201472018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20148	    Alan Hayward  <alan.hayward@arm.com>
20149	    David Sherwood  <david.sherwood@arm.com>
20150
20151	* auto-inc-dec.c (set_inc_state): Take the mode size as a poly_int64
20152	rather than an int.
20153
201542018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20155	    Alan Hayward  <alan.hayward@arm.com>
20156	    David Sherwood  <david.sherwood@arm.com>
20157
20158	* expr.c (expand_expr_real_1): Use tree_to_poly_uint64
20159	instead of int_size_in_bytes when handling VIEW_CONVERT_EXPRs
20160	via stack temporaries.  Treat the mode size as polynomial too.
20161
201622018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20163	    Alan Hayward  <alan.hayward@arm.com>
20164	    David Sherwood  <david.sherwood@arm.com>
20165
20166	* expr.c (expand_expr_real_2): When handling conversions involving
20167	unions, apply tree_to_poly_uint64 to the TYPE_SIZE rather than
20168	multiplying int_size_in_bytes by BITS_PER_UNIT.  Treat GET_MODE_BISIZE
20169	as a poly_uint64 too.
20170
201712018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20172	    Alan Hayward  <alan.hayward@arm.com>
20173	    David Sherwood  <david.sherwood@arm.com>
20174
20175	* rtlanal.c (subreg_get_info): Handle polynomial mode sizes.
20176
201772018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20178	    Alan Hayward  <alan.hayward@arm.com>
20179	    David Sherwood  <david.sherwood@arm.com>
20180
20181	* combine.c (can_change_dest_mode): Handle polynomial
20182	REGMODE_NATURAL_SIZE.
20183	* expmed.c (store_bit_field_1): Likewise.
20184	* expr.c (store_constructor): Likewise.
20185	* emit-rtl.c (validate_subreg): Operate on polynomial mode sizes
20186	and polynomial REGMODE_NATURAL_SIZE.
20187	(gen_lowpart_common): Likewise.
20188	* reginfo.c (record_subregs_of_mode): Likewise.
20189	* rtlanal.c (read_modify_subreg_p): Likewise.
20190
201912018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20192	    Alan Hayward  <alan.hayward@arm.com>
20193	    David Sherwood  <david.sherwood@arm.com>
20194
20195	* internal-fn.c (expand_vector_ubsan_overflow): Handle polynomial
20196	numbers of elements.
20197
201982018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20199	    Alan Hayward  <alan.hayward@arm.com>
20200	    David Sherwood  <david.sherwood@arm.com>
20201
20202	* match.pd: Cope with polynomial numbers of vector elements.
20203
202042018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20205	    Alan Hayward  <alan.hayward@arm.com>
20206	    David Sherwood  <david.sherwood@arm.com>
20207
20208	* fold-const.c (fold_indirect_ref_1): Handle polynomial offsets
20209	in a POINTER_PLUS_EXPR.
20210
202112018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20212	    Alan Hayward  <alan.hayward@arm.com>
20213	    David Sherwood  <david.sherwood@arm.com>
20214
20215	* omp-simd-clone.c (simd_clone_subparts): New function.
20216	(simd_clone_init_simd_arrays): Use it instead of TYPE_VECTOR_SUBPARTS.
20217	(ipa_simd_modify_function_body): Likewise.
20218
202192018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20220	    Alan Hayward  <alan.hayward@arm.com>
20221	    David Sherwood  <david.sherwood@arm.com>
20222
20223	* tree-vect-generic.c (nunits_for_known_piecewise_op): New function.
20224	(expand_vector_piecewise): Use it instead of TYPE_VECTOR_SUBPARTS.
20225	(expand_vector_addition, add_rshift, expand_vector_divmod): Likewise.
20226	(expand_vector_condition, vector_element): Likewise.
20227	(subparts_gt): New function.
20228	(get_compute_type): Use subparts_gt.
20229	(count_type_subparts): Delete.
20230	(expand_vector_operations_1): Use subparts_gt instead of
20231	count_type_subparts.
20232
202332018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20234	    Alan Hayward  <alan.hayward@arm.com>
20235	    David Sherwood  <david.sherwood@arm.com>
20236
20237	* tree-vect-data-refs.c (vect_no_alias_p): Replace with...
20238	(vect_compile_time_alias): ...this new function.  Do the calculation
20239	on poly_ints rather than trees.
20240	(vect_prune_runtime_alias_test_list): Update call accordingly.
20241
202422018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20243	    Alan Hayward  <alan.hayward@arm.com>
20244	    David Sherwood  <david.sherwood@arm.com>
20245
20246	* tree-vect-slp.c (vect_build_slp_tree_1): Handle polynomial
20247	numbers of units.
20248	(vect_schedule_slp_instance): Likewise.
20249
202502018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20251	    Alan Hayward  <alan.hayward@arm.com>
20252	    David Sherwood  <david.sherwood@arm.com>
20253
20254	* tree-vect-slp.c (vect_get_and_check_slp_defs): Reject
20255	constant and extern definitions for variable-length vectors.
20256	(vect_get_constant_vectors): Note that the number of units
20257	is known to be constant.
20258
202592018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20260	    Alan Hayward  <alan.hayward@arm.com>
20261	    David Sherwood  <david.sherwood@arm.com>
20262
20263	* tree-vect-stmts.c (vectorizable_conversion): Treat the number
20264	of units as polynomial.  Choose between WIDE and NARROW based
20265	on multiple_p.
20266
202672018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20268	    Alan Hayward  <alan.hayward@arm.com>
20269	    David Sherwood  <david.sherwood@arm.com>
20270
20271	* tree-vect-stmts.c (simd_clone_subparts): New function.
20272	(vectorizable_simd_clone_call): Use it instead of TYPE_VECTOR_SUBPARTS.
20273
202742018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20275	    Alan Hayward  <alan.hayward@arm.com>
20276	    David Sherwood  <david.sherwood@arm.com>
20277
20278	* tree-vect-stmts.c (vectorizable_call): Treat the number of
20279	vectors as polynomial.  Use build_index_vector for
20280	IFN_GOMP_SIMD_LANE.
20281
202822018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20283	    Alan Hayward  <alan.hayward@arm.com>
20284	    David Sherwood  <david.sherwood@arm.com>
20285
20286	* tree-vect-stmts.c (get_load_store_type): Treat the number of
20287	units as polynomial.  Reject VMAT_ELEMENTWISE and VMAT_STRIDED_SLP
20288	for variable-length vectors.
20289	(vectorizable_mask_load_store): Treat the number of units as
20290	polynomial, asserting that it is constant if the condition has
20291	already been enforced.
20292	(vectorizable_store, vectorizable_load): Likewise.
20293
202942018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20295	    Alan Hayward  <alan.hayward@arm.com>
20296	    David Sherwood  <david.sherwood@arm.com>
20297
20298	* tree-vect-loop.c (vectorizable_live_operation): Treat the number
20299	of units as polynomial.  Punt if we can't tell at compile time
20300	which vector contains the final result.
20301
203022018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20303	    Alan Hayward  <alan.hayward@arm.com>
20304	    David Sherwood  <david.sherwood@arm.com>
20305
20306	* tree-vect-loop.c (vectorizable_induction): Treat the number
20307	of units as polynomial.  Punt on SLP inductions.  Use an integer
20308	VEC_SERIES_EXPR for variable-length integer reductions.  Use a
20309	cast of such a series for variable-length floating-point
20310	reductions.
20311
203122018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20313	    Alan Hayward  <alan.hayward@arm.com>
20314	    David Sherwood  <david.sherwood@arm.com>
20315
20316	* tree.h (build_index_vector): Declare.
20317	* tree.c (build_index_vector): New function.
20318	* tree-vect-loop.c (get_initial_defs_for_reduction): Treat the number
20319	of units as polynomial, forcibly converting it to a constant if
20320	vectorizable_reduction has already enforced the condition.
20321	(vect_create_epilog_for_reduction): Likewise.  Use build_index_vector
20322	to create a {1,2,3,...} vector.
20323	(vectorizable_reduction): Treat the number of units as polynomial.
20324	Choose vectype_in based on the largest scalar element size rather
20325	than the smallest number of units.  Enforce the restrictions
20326	relied on above.
20327
203282018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20329	    Alan Hayward  <alan.hayward@arm.com>
20330	    David Sherwood  <david.sherwood@arm.com>
20331
20332	* tree-vect-data-refs.c (vector_alignment_reachable_p): Treat the
20333	number of units as polynomial.
20334
203352018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20336	    Alan Hayward  <alan.hayward@arm.com>
20337	    David Sherwood  <david.sherwood@arm.com>
20338
20339	* target.h (vector_sizes, auto_vector_sizes): New typedefs.
20340	* target.def (autovectorize_vector_sizes): Return the vector sizes
20341	by pointer, using vector_sizes rather than a bitmask.
20342	* targhooks.h (default_autovectorize_vector_sizes): Update accordingly.
20343	* targhooks.c (default_autovectorize_vector_sizes): Likewise.
20344	* config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes):
20345	Likewise.
20346	* config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
20347	* config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
20348	* config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise.
20349	* config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
20350	* omp-general.c (omp_max_vf): Likewise.
20351	* omp-low.c (omp_clause_aligned_alignment): Likewise.
20352	* optabs-query.c (can_vec_mask_load_store_p): Likewise.
20353	* tree-vect-loop.c (vect_analyze_loop): Likewise.
20354	* tree-vect-slp.c (vect_slp_bb): Likewise.
20355	* doc/tm.texi: Regenerate.
20356	* tree-vectorizer.h (current_vector_size): Change from an unsigned int
20357	to a poly_uint64.
20358	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Take
20359	the vector size as a poly_uint64 rather than an unsigned int.
20360	(current_vector_size): Change from an unsigned int to a poly_uint64.
20361	(get_vectype_for_scalar_type): Update accordingly.
20362	* tree.h (build_truth_vector_type): Take the size and number of
20363	units as a poly_uint64 rather than an unsigned int.
20364	(build_vector_type): Add a temporary overload that takes
20365	the number of units as a poly_uint64 rather than an unsigned int.
20366	* tree.c (make_vector_type): Likewise.
20367	(build_truth_vector_type): Take the number of units as a poly_uint64
20368	rather than an unsigned int.
20369
203702018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20371	    Alan Hayward  <alan.hayward@arm.com>
20372	    David Sherwood  <david.sherwood@arm.com>
20373
20374	* target.def (get_mask_mode): Take the number of units and length
20375	as poly_uint64s rather than unsigned ints.
20376	* targhooks.h (default_get_mask_mode): Update accordingly.
20377	* targhooks.c (default_get_mask_mode): Likewise.
20378	* config/i386/i386.c (ix86_get_mask_mode): Likewise.
20379	* doc/tm.texi: Regenerate.
20380
203812018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20382	    Alan Hayward  <alan.hayward@arm.com>
20383	    David Sherwood  <david.sherwood@arm.com>
20384
20385	* omp-general.h (omp_max_vf): Return a poly_uint64 instead of an int.
20386	* omp-general.c (omp_max_vf): Likewise.
20387	* omp-expand.c (omp_adjust_chunk_size): Update call to omp_max_vf.
20388	(expand_omp_simd): Handle polynomial safelen.
20389	* omp-low.c (omplow_simd_context): Add a default constructor.
20390	(omplow_simd_context::max_vf): Change from int to poly_uint64.
20391	(lower_rec_simd_input_clauses): Update accordingly.
20392	(lower_rec_input_clauses): Likewise.
20393
203942018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20395	    Alan Hayward  <alan.hayward@arm.com>
20396	    David Sherwood  <david.sherwood@arm.com>
20397
20398	* tree-vectorizer.h (vect_nunits_for_cost): New function.
20399	* tree-vect-loop.c (vect_model_reduction_cost): Use it.
20400	* tree-vect-slp.c (vect_analyze_slp_cost_1): Likewise.
20401	(vect_analyze_slp_cost): Likewise.
20402	* tree-vect-stmts.c (vect_model_store_cost): Likewise.
20403	(vect_model_load_cost): Likewise.
20404
204052018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20406	    Alan Hayward  <alan.hayward@arm.com>
20407	    David Sherwood  <david.sherwood@arm.com>
20408
20409	* tree-vect-slp.c (vect_record_max_nunits, vect_build_slp_tree_1)
20410	(vect_build_slp_tree_2, vect_build_slp_tree): Change max_nunits
20411	from an unsigned int * to a poly_uint64_pod *.
20412	(calculate_unrolling_factor): New function.
20413	(vect_analyze_slp_instance): Use it.  Track polynomial max_nunits.
20414
204152018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20416	    Alan Hayward  <alan.hayward@arm.com>
20417	    David Sherwood  <david.sherwood@arm.com>
20418
20419	* tree-vectorizer.h (_slp_instance::unrolling_factor): Change
20420	from an unsigned int to a poly_uint64.
20421	(_loop_vec_info::slp_unrolling_factor): Likewise.
20422	(_loop_vec_info::vectorization_factor): Change from an int
20423	to a poly_uint64.
20424	(MAX_VECTORIZATION_FACTOR): Bump from 64 to INT_MAX.
20425	(vect_get_num_vectors): New function.
20426	(vect_update_max_nunits, vect_vf_for_cost): Likewise.
20427	(vect_get_num_copies): Use vect_get_num_vectors.
20428	(vect_analyze_data_ref_dependences): Change max_vf from an int *
20429	to an unsigned int *.
20430	(vect_analyze_data_refs): Change min_vf from an int * to a
20431	poly_uint64 *.
20432	(vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather
20433	than an unsigned HOST_WIDE_INT.
20434	* tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr)
20435	(vect_analyze_data_ref_dependence): Change max_vf from an int *
20436	to an unsigned int *.
20437	(vect_analyze_data_ref_dependences): Likewise.
20438	(vect_compute_data_ref_alignment): Handle polynomial vf.
20439	(vect_enhance_data_refs_alignment): Likewise.
20440	(vect_prune_runtime_alias_test_list): Likewise.
20441	(vect_shift_permute_load_chain): Likewise.
20442	(vect_supportable_dr_alignment): Likewise.
20443	(dependence_distance_ge_vf): Take the vectorization factor as a
20444	poly_uint64 rather than an unsigned HOST_WIDE_INT.
20445	(vect_analyze_data_refs): Change min_vf from an int * to a
20446	poly_uint64 *.
20447	* tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Take
20448	vfm1 as a poly_uint64 rather than an int.  Make the same change
20449	for the returned bound_scalar.
20450	(vect_gen_vector_loop_niters): Handle polynomial vf.
20451	(vect_do_peeling): Likewise.  Update call to
20452	vect_gen_scalar_loop_niters and handle polynomial bound_scalars.
20453	(vect_gen_vector_loop_niters_mult_vf): Assert that the vf must
20454	be constant.
20455	* tree-vect-loop.c (vect_determine_vectorization_factor)
20456	(vect_update_vf_for_slp, vect_analyze_loop_2): Handle polynomial vf.
20457	(vect_get_known_peeling_cost): Likewise.
20458	(vect_estimate_min_profitable_iters, vectorizable_reduction): Likewise.
20459	(vect_worthwhile_without_simd_p, vectorizable_induction): Likewise.
20460	(vect_transform_loop): Likewise.  Use the lowest possible VF when
20461	updating the upper bounds of the loop.
20462	(vect_min_worthwhile_factor): Make static.  Return an unsigned int
20463	rather than an int.
20464	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Cope with
20465	polynomial unroll factors.
20466	(vect_analyze_slp_cost_1, vect_analyze_slp_instance): Likewise.
20467	(vect_make_slp_decision): Likewise.
20468	(vect_supported_load_permutation_p): Likewise, and polynomial
20469	vf too.
20470	(vect_analyze_slp_cost): Handle polynomial vf.
20471	(vect_slp_analyze_node_operations): Likewise.
20472	(vect_slp_analyze_bb_1): Likewise.
20473	(vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather
20474	than an unsigned HOST_WIDE_INT.
20475	* tree-vect-stmts.c (vectorizable_simd_clone_call, vectorizable_store)
20476	(vectorizable_load): Handle polynomial vf.
20477	* tree-vectorizer.c (simduid_to_vf::vf): Change from an int to
20478	a poly_uint64.
20479	(adjust_simduid_builtins, shrink_simd_arrays): Update accordingly.
20480
204812018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20482	    Alan Hayward  <alan.hayward@arm.com>
20483	    David Sherwood  <david.sherwood@arm.com>
20484
20485	* match.pd: Handle bit operations involving three constants
20486	and try to fold one pair.
20487
204882018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
20489
20490	* tree-vect-loop-manip.c: Include gimple-fold.h.
20491	(slpeel_make_loop_iterate_ntimes): Add step, final_iv and
20492	niters_maybe_zero parameters.  Handle other cases besides a step of 1.
20493	(vect_gen_vector_loop_niters): Add a step_vector_ptr parameter.
20494	Add a path that uses a step of VF instead of 1, but disable it
20495	for now.
20496	(vect_do_peeling): Add step_vector, niters_vector_mult_vf_var
20497	and niters_no_overflow parameters.  Update calls to
20498	slpeel_make_loop_iterate_ntimes and vect_gen_vector_loop_niters.
20499	Create a new SSA name if the latter choses to use a ste other
20500	than zero, and return it via niters_vector_mult_vf_var.
20501	* tree-vect-loop.c (vect_transform_loop): Update calls to
20502	vect_do_peeling, vect_gen_vector_loop_niters and
20503	slpeel_make_loop_iterate_ntimes.
20504	* tree-vectorizer.h (slpeel_make_loop_iterate_ntimes, vect_do_peeling)
20505	(vect_gen_vector_loop_niters): Update declarations after above changes.
20506
205072018-01-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
20508
20509	* config/rs6000/rs6000.md (floor<mode>2): Add support for IEEE
20510	128-bit round to integer instructions.
20511	(ceil<mode>2): Likewise.
20512	(btrunc<mode>2): Likewise.
20513	(round<mode>2): Likewise.
20514
205152018-01-02  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
20516
20517	* config/rs6000/rs6000-string.c (expand_block_move): Allow the use of
20518	unaligned VSX load/store on P8/P9.
20519	(expand_block_clear): Allow the use of unaligned VSX
20520	load/store on P8/P9.
20521
205222018-01-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20523
20524	* config/rs6000/rs6000-p8swap.c (swap_feeds_both_load_and_store):
20525	New function.
20526	(rs6000_analyze_swaps): Mark a web unoptimizable if it contains a
20527	swap associated with both a load and a store.
20528
205292018-01-02  Andrew Waterman  <andrew@sifive.com>
20530
20531	* config/riscv/linux.h (ICACHE_FLUSH_FUNC): New.
20532	* config/riscv/riscv.md (clear_cache): Use it.
20533
205342018-01-02  Artyom Skrobov  <tyomitch@gmail.com>
20535
20536	* web.c: Remove out-of-date comment.
20537
205382018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20539
20540	* expr.c (fixup_args_size_notes): Check that any existing
20541	REG_ARGS_SIZE notes are correct, and don't try to re-add them.
20542	(emit_single_push_insn_1): Move stack_pointer_delta adjustment to...
20543	(emit_single_push_insn): ...here.
20544
205452018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20546
20547	* rtl.h (CONST_VECTOR_ELT): Redefine to const_vector_elt.
20548	(const_vector_encoded_nelts): New function.
20549	(CONST_VECTOR_NUNITS): Redefine to use GET_MODE_NUNITS.
20550	(const_vector_int_elt, const_vector_elt): Declare.
20551	* emit-rtl.c (const_vector_int_elt_1): New function.
20552	(const_vector_elt): Likewise.
20553	* simplify-rtx.c (simplify_immed_subreg): Avoid taking the address
20554	of CONST_VECTOR_ELT.
20555
205562018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20557
20558	* expr.c: Include rtx-vector-builder.h.
20559	(const_vector_mask_from_tree): Use rtx_vector_builder and operate
20560	directly on the tree encoding.
20561	(const_vector_from_tree): Likewise.
20562	* optabs.c: Include rtx-vector-builder.h.
20563	(expand_vec_perm_var): Use rtx_vector_builder and create a repeating
20564	sequence of "u" values.
20565	* vec-perm-indices.c: Include rtx-vector-builder.h.
20566	(vec_perm_indices_to_rtx): Use rtx_vector_builder and operate
20567	directly on the vec_perm_indices encoding.
20568
205692018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20570
20571	* doc/rtl.texi (const_vector): Describe new encoding scheme.
20572	* Makefile.in (OBJS): Add rtx-vector-builder.o.
20573	* rtx-vector-builder.h: New file.
20574	* rtx-vector-builder.c: Likewise.
20575	* rtl.h (rtx_def::u2): Add a const_vector field.
20576	(CONST_VECTOR_NPATTERNS): New macro.
20577	(CONST_VECTOR_NELTS_PER_PATTERN): Likewise.
20578	(CONST_VECTOR_DUPLICATE_P): Likewise.
20579	(CONST_VECTOR_STEPPED_P): Likewise.
20580	(CONST_VECTOR_ENCODED_ELT): Likewise.
20581	(const_vec_duplicate_p): Check for a duplicated vector encoding.
20582	(unwrap_const_vec_duplicate): Likewise.
20583	(const_vec_series_p): Check for a non-duplicated vector encoding.
20584	Say that the function only returns true for integer vectors.
20585	* emit-rtl.c: Include rtx-vector-builder.h.
20586	(gen_const_vec_duplicate_1): Delete.
20587	(gen_const_vector): Call gen_const_vec_duplicate instead of
20588	gen_const_vec_duplicate_1.
20589	(const_vec_series_p_1): Operate directly on the CONST_VECTOR encoding.
20590	(gen_const_vec_duplicate): Use rtx_vector_builder.
20591	(gen_const_vec_series): Likewise.
20592	(gen_rtx_CONST_VECTOR): Likewise.
20593	* config/powerpcspe/powerpcspe.c: Include rtx-vector-builder.h.
20594	(swap_const_vector_halves): Take an rtx pointer rather than rtx.
20595	Build a new vector rather than modifying a CONST_VECTOR in-place.
20596	(handle_special_swappables): Update call accordingly.
20597	* config/rs6000/rs6000-p8swap.c: Include rtx-vector-builder.h.
20598	(swap_const_vector_halves): Take an rtx pointer rather than rtx.
20599	Build a new vector rather than modifying a CONST_VECTOR in-place.
20600	(handle_special_swappables): Update call accordingly.
20601
206022018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20603
20604	* simplify-rtx.c (simplify_const_binary_operation): Use
20605	CONST_VECTOR_ELT instead of XVECEXP.
20606
206072018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20608
20609	* tree-cfg.c (verify_gimple_assign_ternary): Allow the size of
20610	the selector elements to be different from the data elements
20611	if the selector is a VECTOR_CST.
20612	* tree-vect-stmts.c (vect_gen_perm_mask_any): Use a vector of
20613	ssizetype for the selector.
20614
206152018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20616
20617	* optabs.c (shift_amt_for_vec_perm_mask): Try using series_p
20618	before testing each element individually.
20619	* tree-vect-generic.c (lower_vec_perm): Likewise.
20620
206212018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20622
20623	* selftest.h (selftest::vec_perm_indices_c_tests): Declare.
20624	* selftest-run-tests.c (selftest::run_tests): Call it.
20625	* vector-builder.h (vector_builder::operator ==): New function.
20626	(vector_builder::operator !=): Likewise.
20627	* vec-perm-indices.h (vec_perm_indices::series_p): Declare.
20628	(vec_perm_indices::all_from_input_p): New function.
20629	* vec-perm-indices.c (vec_perm_indices::series_p): Likewise.
20630	(test_vec_perm_12, selftest::vec_perm_indices_c_tests): Likewise.
20631	* fold-const.c (fold_ternary_loc): Use tree_to_vec_perm_builder
20632	instead of reading the VECTOR_CST directly.  Detect whether both
20633	vector inputs are the same before constructing the vec_perm_indices,
20634	and update the number of inputs argument accordingly.  Use the
20635	utility functions added above.  Only construct sel2 if we need to.
20636
206372018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20638
20639	* optabs.c (expand_vec_perm_var): Use an explicit encoding for
20640	the broadcast of the low byte.
20641	(expand_mult_highpart): Use an explicit encoding for the permutes.
20642	* optabs-query.c (can_mult_highpart_p): Likewise.
20643	* tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
20644	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
20645	(vectorizable_bswap): Likewise.
20646	* tree-vect-data-refs.c (vect_grouped_store_supported): Use an
20647	explicit encoding for the power-of-2 permutes.
20648	(vect_permute_store_chain): Likewise.
20649	(vect_grouped_load_supported): Likewise.
20650	(vect_permute_load_chain): Likewise.
20651
206522018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20653
20654	* vec-perm-indices.h (vec_perm_indices_to_tree): Declare.
20655	* vec-perm-indices.c (vec_perm_indices_to_tree): New function.
20656	* tree-ssa-forwprop.c (simplify_vector_constructor): Use it.
20657	* tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
20658	* tree-vect-stmts.c (vectorizable_bswap): Likewise.
20659	(vect_gen_perm_mask_any): Likewise.
20660
206612018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20662
20663	* int-vector-builder.h: New file.
20664	* vec-perm-indices.h: Include int-vector-builder.h.
20665	(vec_perm_indices): Redefine as an int_vector_builder.
20666	(auto_vec_perm_indices): Delete.
20667	(vec_perm_builder): Redefine as a stand-alone class.
20668	(vec_perm_indices::vec_perm_indices): New function.
20669	(vec_perm_indices::clamp): Likewise.
20670	* vec-perm-indices.c: Include fold-const.h and tree-vector-builder.h.
20671	(vec_perm_indices::new_vector): New function.
20672	(vec_perm_indices::new_expanded_vector): Update for new
20673	vec_perm_indices class.
20674	(vec_perm_indices::rotate_inputs): New function.
20675	(vec_perm_indices::all_in_range_p): Operate directly on the
20676	encoded form, without computing elided elements.
20677	(tree_to_vec_perm_builder): Operate directly on the VECTOR_CST
20678	encoding.  Update for new vec_perm_indices class.
20679	* optabs.c (expand_vec_perm_const): Create a vec_perm_indices for
20680	the given vec_perm_builder.
20681	(expand_vec_perm_var): Update vec_perm_builder constructor.
20682	(expand_mult_highpart): Use vec_perm_builder instead of
20683	auto_vec_perm_indices.
20684	* optabs-query.c (can_mult_highpart_p): Use vec_perm_builder and
20685	vec_perm_indices instead of auto_vec_perm_indices.  Use a single
20686	or double series encoding as appropriate.
20687	* fold-const.c (fold_ternary_loc): Use vec_perm_builder and
20688	vec_perm_indices instead of auto_vec_perm_indices.
20689	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
20690	* tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
20691	(vect_permute_store_chain): Likewise.
20692	(vect_grouped_load_supported): Likewise.
20693	(vect_permute_load_chain): Likewise.
20694	(vect_shift_permute_load_chain): Likewise.
20695	* tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
20696	(vect_transform_slp_perm_load): Likewise.
20697	(vect_schedule_slp_instance): Likewise.
20698	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
20699	(vectorizable_mask_load_store): Likewise.
20700	(vectorizable_bswap): Likewise.
20701	(vectorizable_store): Likewise.
20702	(vectorizable_load): Likewise.
20703	* tree-vect-generic.c (lower_vec_perm): Use vec_perm_builder and
20704	vec_perm_indices instead of auto_vec_perm_indices.  Use
20705	tree_to_vec_perm_builder to read the vector from a tree.
20706	* tree-vect-loop.c (calc_vec_perm_mask_for_shift): Take a
20707	vec_perm_builder instead of a vec_perm_indices.
20708	(have_whole_vector_shift): Use vec_perm_builder and
20709	vec_perm_indices instead of auto_vec_perm_indices.  Leave the
20710	truncation to calc_vec_perm_mask_for_shift.
20711	(vect_create_epilog_for_reduction): Likewise.
20712	* config/aarch64/aarch64.c (expand_vec_perm_d::perm): Change
20713	from auto_vec_perm_indices to vec_perm_indices.
20714	(aarch64_expand_vec_perm_const_1): Use rotate_inputs on d.perm
20715	instead of changing individual elements.
20716	(aarch64_vectorize_vec_perm_const): Use new_vector to install
20717	the vector in d.perm.
20718	* config/arm/arm.c (expand_vec_perm_d::perm): Change
20719	from auto_vec_perm_indices to vec_perm_indices.
20720	(arm_expand_vec_perm_const_1): Use rotate_inputs on d.perm
20721	instead of changing individual elements.
20722	(arm_vectorize_vec_perm_const): Use new_vector to install
20723	the vector in d.perm.
20724	* config/powerpcspe/powerpcspe.c (rs6000_expand_extract_even):
20725	Update vec_perm_builder constructor.
20726	(rs6000_expand_interleave): Likewise.
20727	* config/rs6000/rs6000.c (rs6000_expand_extract_even): Likewise.
20728	(rs6000_expand_interleave): Likewise.
20729
207302018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20731
20732	* optabs-query.c (can_vec_perm_var_p): Check whether lowering
20733	to qimode could truncate the indices.
20734	* optabs.c (expand_vec_perm_var): Likewise.
20735
207362018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20737
20738	* Makefile.in (OBJS): Add vec-perm-indices.o.
20739	* vec-perm-indices.h: New file.
20740	* vec-perm-indices.c: Likewise.
20741	* target.h (vec_perm_indices): Replace with a forward class
20742	declaration.
20743	(auto_vec_perm_indices): Move to vec-perm-indices.h.
20744	* optabs.h: Include vec-perm-indices.h.
20745	(expand_vec_perm): Delete.
20746	(selector_fits_mode_p, expand_vec_perm_var): Declare.
20747	(expand_vec_perm_const): Declare.
20748	* target.def (vec_perm_const_ok): Replace with...
20749	(vec_perm_const): ...this new hook.
20750	* doc/tm.texi.in (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Replace with...
20751	(TARGET_VECTORIZE_VEC_PERM_CONST): ...this new hook.
20752	* doc/tm.texi: Regenerate.
20753	* optabs.def (vec_perm_const): Delete.
20754	* doc/md.texi (vec_perm_const): Likewise.
20755	(vec_perm): Refer to TARGET_VECTORIZE_VEC_PERM_CONST.
20756	* expr.c (expand_expr_real_2): Use expand_vec_perm_const rather than
20757	expand_vec_perm for constant permutation vectors.  Assert that
20758	the mode of variable permutation vectors is the integer equivalent
20759	of the mode that is being permuted.
20760	* optabs-query.h (selector_fits_mode_p): Declare.
20761	* optabs-query.c: Include vec-perm-indices.h.
20762	(selector_fits_mode_p): New function.
20763	(can_vec_perm_const_p): Check whether targetm.vectorize.vec_perm_const
20764	is defined, instead of checking whether the vec_perm_const_optab
20765	exists.  Use targetm.vectorize.vec_perm_const instead of
20766	targetm.vectorize.vec_perm_const_ok.  Check whether the indices
20767	fit in the vector mode before using a variable permute.
20768	* optabs.c (shift_amt_for_vec_perm_mask): Take a mode and a
20769	vec_perm_indices instead of an rtx.
20770	(expand_vec_perm): Replace with...
20771	(expand_vec_perm_const): ...this new function.  Take the selector
20772	as a vec_perm_indices rather than an rtx.  Also take the mode of
20773	the selector.  Update call to shift_amt_for_vec_perm_mask.
20774	Use targetm.vectorize.vec_perm_const instead of vec_perm_const_optab.
20775	Use vec_perm_indices::new_expanded_vector to expand the original
20776	selector into bytes.  Check whether the indices fit in the vector
20777	mode before using a variable permute.
20778	(expand_vec_perm_var): Make global.
20779	(expand_mult_highpart): Use expand_vec_perm_const.
20780	* fold-const.c: Includes vec-perm-indices.h.
20781	* tree-ssa-forwprop.c: Likewise.
20782	* tree-vect-data-refs.c: Likewise.
20783	* tree-vect-generic.c: Likewise.
20784	* tree-vect-loop.c: Likewise.
20785	* tree-vect-slp.c: Likewise.
20786	* tree-vect-stmts.c: Likewise.
20787	* config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm_const):
20788	Delete.
20789	* config/aarch64/aarch64-simd.md (vec_perm_const<mode>): Delete.
20790	* config/aarch64/aarch64.c (aarch64_expand_vec_perm_const)
20791	(aarch64_vectorize_vec_perm_const_ok): Fuse into...
20792	(aarch64_vectorize_vec_perm_const): ...this new function.
20793	(TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
20794	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
20795	* config/arm/arm-protos.h (arm_expand_vec_perm_const): Delete.
20796	* config/arm/vec-common.md (vec_perm_const<mode>): Delete.
20797	* config/arm/arm.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
20798	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
20799	(arm_expand_vec_perm_const, arm_vectorize_vec_perm_const_ok): Merge
20800	into...
20801	(arm_vectorize_vec_perm_const): ...this new function.  Explicitly
20802	check for NEON modes.
20803	* config/i386/i386-protos.h (ix86_expand_vec_perm_const): Delete.
20804	* config/i386/sse.md (VEC_PERM_CONST, vec_perm_const<mode>): Delete.
20805	* config/i386/i386.c (ix86_expand_vec_perm_const_1): Update comment.
20806	(ix86_expand_vec_perm_const, ix86_vectorize_vec_perm_const_ok): Merge
20807	into...
20808	(ix86_vectorize_vec_perm_const): ...this new function.  Incorporate
20809	the old VEC_PERM_CONST conditions.
20810	* config/ia64/ia64-protos.h (ia64_expand_vec_perm_const): Delete.
20811	* config/ia64/vect.md (vec_perm_const<mode>): Delete.
20812	* config/ia64/ia64.c (ia64_expand_vec_perm_const)
20813	(ia64_vectorize_vec_perm_const_ok): Merge into...
20814	(ia64_vectorize_vec_perm_const): ...this new function.
20815	* config/mips/loongson.md (vec_perm_const<mode>): Delete.
20816	* config/mips/mips-msa.md (vec_perm_const<mode>): Delete.
20817	* config/mips/mips-ps-3d.md (vec_perm_constv2sf): Delete.
20818	* config/mips/mips-protos.h (mips_expand_vec_perm_const): Delete.
20819	* config/mips/mips.c (mips_expand_vec_perm_const)
20820	(mips_vectorize_vec_perm_const_ok): Merge into...
20821	(mips_vectorize_vec_perm_const): ...this new function.
20822	* config/powerpcspe/altivec.md (vec_perm_constv16qi): Delete.
20823	* config/powerpcspe/paired.md (vec_perm_constv2sf): Delete.
20824	* config/powerpcspe/spe.md (vec_perm_constv2si): Delete.
20825	* config/powerpcspe/vsx.md (vec_perm_const<mode>): Delete.
20826	* config/powerpcspe/powerpcspe-protos.h (altivec_expand_vec_perm_const)
20827	(rs6000_expand_vec_perm_const): Delete.
20828	* config/powerpcspe/powerpcspe.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK):
20829	Delete.
20830	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
20831	(altivec_expand_vec_perm_const_le): Take each operand individually.
20832	Operate on constant selectors rather than rtxes.
20833	(altivec_expand_vec_perm_const): Likewise.  Update call to
20834	altivec_expand_vec_perm_const_le.
20835	(rs6000_expand_vec_perm_const): Delete.
20836	(rs6000_vectorize_vec_perm_const_ok): Delete.
20837	(rs6000_vectorize_vec_perm_const): New function.
20838	(rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of
20839	an element count and rtx array.
20840	(rs6000_expand_extract_even): Update call accordingly.
20841	(rs6000_expand_interleave): Likewise.
20842	* config/rs6000/altivec.md (vec_perm_constv16qi): Delete.
20843	* config/rs6000/paired.md (vec_perm_constv2sf): Delete.
20844	* config/rs6000/vsx.md (vec_perm_const<mode>): Delete.
20845	* config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_const)
20846	(rs6000_expand_vec_perm_const): Delete.
20847	* config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
20848	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
20849	(altivec_expand_vec_perm_const_le): Take each operand individually.
20850	Operate on constant selectors rather than rtxes.
20851	(altivec_expand_vec_perm_const): Likewise.  Update call to
20852	altivec_expand_vec_perm_const_le.
20853	(rs6000_expand_vec_perm_const): Delete.
20854	(rs6000_vectorize_vec_perm_const_ok): Delete.
20855	(rs6000_vectorize_vec_perm_const): New function.  Remove stray
20856	reference to the SPE evmerge intructions.
20857	(rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of
20858	an element count and rtx array.
20859	(rs6000_expand_extract_even): Update call accordingly.
20860	(rs6000_expand_interleave): Likewise.
20861	* config/sparc/sparc.md (vec_perm_constv8qi): Delete in favor of...
20862	* config/sparc/sparc.c (sparc_vectorize_vec_perm_const): ...this
20863	new function.
20864	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
20865
208662018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20867
20868	* optabs.c (expand_vec_perm_1): Assert that SEL has an integer
20869	vector mode and that that mode matches the mode of the data
20870	being permuted.
20871	(expand_vec_perm): Split handling of non-CONST_VECTOR selectors
20872	out into expand_vec_perm_var.  Do all CONST_VECTOR handling here,
20873	directly using expand_vec_perm_1 when forcing selectors into
20874	registers.
20875	(expand_vec_perm_var): New function, split out from expand_vec_perm.
20876
208772018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20878
20879	* optabs-query.h (can_vec_perm_p): Delete.
20880	(can_vec_perm_var_p, can_vec_perm_const_p): Declare.
20881	* optabs-query.c (can_vec_perm_p): Split into...
20882	(can_vec_perm_var_p, can_vec_perm_const_p): ...these two functions.
20883	(can_mult_highpart_p): Use can_vec_perm_const_p to test whether a
20884	particular selector is valid.
20885	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
20886	* tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
20887	(vect_grouped_load_supported): Likewise.
20888	(vect_shift_permute_load_chain): Likewise.
20889	* tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
20890	(vect_transform_slp_perm_load): Likewise.
20891	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
20892	(vectorizable_bswap): Likewise.
20893	(vect_gen_perm_mask_checked): Likewise.
20894	* fold-const.c (fold_ternary_loc): Likewise.  Don't take
20895	implementations of variable permutation vectors into account
20896	when deciding which selector to use.
20897	* tree-vect-loop.c (have_whole_vector_shift): Don't check whether
20898	vec_perm_const_optab is supported; instead use can_vec_perm_const_p
20899	with a false third argument.
20900	* tree-vect-generic.c (lower_vec_perm): Use can_vec_perm_const_p
20901	to test whether the constant selector is valid and can_vec_perm_var_p
20902	to test whether a variable selector is valid.
20903
209042018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20905
20906	* optabs-query.h (can_vec_perm_p): Take a const vec_perm_indices *.
20907	* optabs-query.c (can_vec_perm_p): Likewise.
20908	* fold-const.c (fold_vec_perm): Take a const vec_perm_indices &
20909	instead of vec_perm_indices.
20910	* tree-vectorizer.h (vect_gen_perm_mask_any): Likewise,
20911	(vect_gen_perm_mask_checked): Likewise,
20912	* tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise,
20913	(vect_gen_perm_mask_checked): Likewise,
20914
209152018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
20916
20917	* optabs-query.h (qimode_for_vec_perm): Declare.
20918	* optabs-query.c (can_vec_perm_p): Split out qimode search to...
20919	(qimode_for_vec_perm): ...this new function.
20920	* optabs.c (expand_vec_perm): Use qimode_for_vec_perm.
20921
209222018-01-02  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
20923
20924	* rtlanal.c (canonicalize_condition): Return 0 if final rtx
20925	does not have a conditional at the top.
20926
209272018-01-02  Richard Biener  <rguenther@suse.de>
20928
20929	* ipa-inline.c (big_speedup_p): Fix expression.
20930
209312018-01-02  Jan Hubicka  <hubicka@ucw.cz>
20932
20933	PR target/81616
20934	* config/i386/x86-tune-costs.h: Increase cost of integer load costs
20935	for generic 4->6.
20936
209372018-01-02  Jan Hubicka  <hubicka@ucw.cz>
20938
20939	PR target/81616
20940	Generic tuning.
20941	* x86-tune-costs.h (generic_cost): Reduce cost of FDIV 20->17,
20942	cost of sqrt 20->14, DIVSS 18->13, DIVSD 32->17, SQRtSS 30->14
20943	and SQRTsD 58->18, cond_not_taken_branch_cost. 2->1. Increase
20944	cond_taken_branch_cost 3->4.
20945
209462018-01-01  Jakub Jelinek  <jakub@redhat.com>
20947
20948	PR tree-optimization/83581
20949	* tree-loop-distribution.c (pass_loop_distribution::execute): Return
20950	TODO_cleanup_cfg if any changes have been made.
20951
20952	PR middle-end/83608
20953	* expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of
20954	convert_modes if target mode has the right side, but different mode
20955	class.
20956
20957	PR middle-end/83609
20958	* expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg
20959	last argument when extracting from CONCAT.  If either from_real or
20960	from_imag is NULL, use expansion through memory.  If result is not
20961	a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg
20962	the parts directly to inner mode, if even that fails, use expansion
20963	through memory.
20964
20965	PR middle-end/83623
20966	* expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT,
20967	check for bswap in mode rather than HImode and use that in expand_unop
20968	too.
20969
20970Copyright (C) 2018 Free Software Foundation, Inc.
20971
20972Copying and distribution of this file, with or without modification,
20973are permitted in any medium without royalty provided the copyright
20974notice and this notice are preserved.
20975