12020-03-04  Release Manager
2
3	* GCC 8.4.0 released.
4
52020-03-02  Martin Liska  <mliska@suse.cz>
6
7	Backport from mainline
8	2020-02-28  Martin Liska  <mliska@suse.cz>
9
10	PR other/93965
11	* configure.ac: Improve detection of ld_date by requiring
12	either two dashes or none.
13	* configure: Regenerate.
14
152020-02-29  Peter Bergner  <bergner@linux.ibm.com>
16
17	Revert
18	2020-02-20  Peter Bergner  <bergner@linux.ibm.com>
19
20	PR target/93658
21	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
22	vector modes.
23
24	2020-02-03  Michael Meissner  <meissner@linux.ibm.com>
25
26	* config/rs6000/rs6000.c (get_vector_offset): New helper function
27	to calculate the offset in memory from the start of a vector of a
28	particular element.  Add code to keep the element number in
29	bounds if the element number is variable.
30	(rs6000_adjust_vec_address): Move calculation of offset of the
31	vector element to get_vector_offset.
32	(rs6000_split_vec_extract_var): Do not do the initial AND of
33	element here, move the code to get_vector_offset.
34
35	2020-02-05  Michael Meissner  <meissner@linux.ibm.com>
36
37	PR target/93568
38	* config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert
39	to use MEM.
40
41	2020-01-06  Michael Meissner  <meissner@linux.ibm.com>
42
43	* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
44	Use 'Q' for doing vector extract from memory.
45	(vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
46	memory.
47	(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
48	doing vector extract from memory.
49	(vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
50	extract from memory.
51
522020-02-26  Carl Love  <cel@us.ibm.com>
53
54	PR target/91276
55	* doc/extend.texi (PowerPC AltiVec Built-in Functions): The
56	builtin-function name __builtin_crypto_vpmsumb is only for the
57	vector unsigned short arguments.  It is also listed as the name of
58	the built-in for arguments vector unsigned short,
59	vector unsigned int and vector unsigned long long built-ins.  The
60	name of the builtins for these arguments should be:
61	__builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and
62	__builtin_crypto_vpmsumd respectively.
63
642020-02-26  Jakub Jelinek  <jakub@redhat.com>
65
66	PR tree-optimization/93820
67	* gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE
68	argument to ALL_INTEGER_CST_P boolean.
69	(imm_store_chain_info::try_coalesce_bswap): Adjust caller.
70	(imm_store_chain_info::coalesce_immediate_stores): Likewise.  Handle
71	adjacent INTEGER_CST store into merged_store->only_constants like
72	overlapping one.
73
742020-02-25  Jakub Jelinek  <jakub@redhat.com>
75
76	PR rtl-optimization/93908
77	* combine.c (find_split_point): For store into ZERO_EXTRACT, and src
78	with mask.
79
802019-02-25  Eric Botcazou  <ebotcazou@adacore.com>
81
82	* dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.
83
842020-02-25  Roman Zhuykov  <zhroma@ispras.ru>
85
86	Backport from master
87	2020-02-24  Roman Zhuykov  <zhroma@ispras.ru>
88
89	* doc/install.texi (--enable-checking): Properly document current
90	behavior.
91	(--enable-stage1-checking): Minor clarification about bootstrap.
92
932020-02-25  Richard Sandiford  <richard.sandiford@arm.com>
94
95	Backport from mainline
96	2020-02-19  Richard Sandiford  <richard.sandiford@arm.com>
97
98	PR tree-optimization/93767
99	* tree-vect-data-refs.c (vect_compile_time_alias): Remove the
100	access-size bias from the offset calculations for negative strides.
101
1022020-02-25  Richard Sandiford  <richard.sandiford@arm.com>
103
104	Backport from mainline
105	2020-01-28  Richard Sandiford  <richard.sandiford@arm.com>
106
107	PR tree-optimization/93434
108	* tree-predcom.c (split_data_refs_to_components): Record which
109	components have had aliasing loads removed.  Prevent store-store
110	commoning for all such components.
111
1122020-02-25  Richard Sandiford  <richard.sandiford@arm.com>
113
114	Backport from mainline
115	2019-12-05  Richard Sandiford  <richard.sandiford@arm.com>
116
117	PR middle-end/92768
118	* tree-core.h (OEP_BITWISE): New flag.
119	* fold-const.c (operand_compare::operand_equal_p): Handle it.
120	* tree-vector-builder.h (tree_vector_builder::equal_p): Pass it.
121
1222020-02-25  Richard Sandiford  <richard.sandiford@arm.com>
123
124	Backport from mainline
125	2019-11-11  Richard Sandiford  <richard.sandiford@arm.com>
126
127	PR tree-optimization/92420
128	* tree-vect-stmts.c (get_negative_load_store_type): Move further
129	up file.
130	(get_group_load_store_type): Use it for reversed SLP accesses.
131
1322020-02-25  Richard Sandiford  <richard.sandiford@arm.com>
133
134	Backport from mainline
135	2019-08-09  Richard Sandiford  <richard.sandiford@arm.com>
136
137	PR middle-end/90313
138	* tree-tailcall.c (find_tail_calls): Reject calls that might
139	read from an escaped RESULT_DECL.
140
1412020-02-24  Jason Merrill  <jason@redhat.com>
142
143	PR c++/92003
144	* symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has
145	non-zero address even if weak and not yet defined.
146
1472020-02-23  Peter Bergner  <bergner@linux.ibm.com>
148
149	Backport from master
150	2020-02-20  Peter Bergner  <bergner@linux.ibm.com>
151
152	PR target/93658
153	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
154	vector modes.
155
1562020-02-23  Peter Bergner  <bergner@linux.ibm.com>
157
158	Backport from master
159	2020-02-03  Michael Meissner  <meissner@linux.ibm.com>
160
161	* config/rs6000/rs6000.c (get_vector_offset): New helper function
162	to calculate the offset in memory from the start of a vector of a
163	particular element.  Add code to keep the element number in
164	bounds if the element number is variable.
165	(rs6000_adjust_vec_address): Move calculation of offset of the
166	vector element to get_vector_offset.
167	(rs6000_split_vec_extract_var): Do not do the initial AND of
168	element here, move the code to get_vector_offset.
169
170	Backport from master
171	2020-02-05  Michael Meissner  <meissner@linux.ibm.com>
172
173	PR target/93568
174	* config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert
175	to use MEM.
176
1772020-02-23  Peter Bergner  <bergner@linux.ibm.com>
178
179	Backport from master
180	2020-01-06  Michael Meissner  <meissner@linux.ibm.com>
181
182	* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
183	Use 'Q' for doing vector extract from memory.
184	(vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
185	memory.
186	(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
187	doing vector extract from memory.
188	(vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
189	extract from memory.
190
1912020-02-21  John David Anglin  <danglin@gcc.gnu.org>
192
193	* gcc/config/pa/pa.c (pa_function_value): Fix check for word and
194	double-word size when handling aggregate return values.
195	* gcc/config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate
196	that homogeneous SFmode and DFmode aggregates are passed and returned
197	in general registers.
198
1992020-02-20  Uroš Bizjak  <ubizjak@gmail.com>
200
201	PR target/93828
202	* config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
203	to destination operand for shufps alternative.
204	(*vec_extractv2si_1): Ditto.
205
2062020-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
207
208	* collect2.c (tool_cleanup): Avoid calling not signal-safe
209	functions.
210	(maybe_run_lto_and_relink): Avoid possible signal handler
211	access to unintialzed memory (lto_o_files).
212
2132020-02-20  H.J. Lu  <hongjiu.lu@intel.com>
214
215	Backport from master
216	2020-02-13  H.J. Lu  <hongjiu.lu@intel.com>
217
218	PR target/93656
219	* config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at
220	the target function entry.
221
2222020-02-17  Richard Biener  <rguenther@suse.de>
223
224	Backport from mainline
225	2020-01-22  Richard Biener  <rguenther@suse.de>
226
227	PR tree-optimization/93381
228	* tree-ssa-structalias.c (find_func_aliases): Assume offsetting
229	throughout, handle all conversions the same.
230
2312020-02-17  Richard Biener  <rguenther@suse.de>
232
233	Backport from mainline
234	2020-01-28  Richard Biener  <rguenther@suse.de>
235
236	PR tree-optimization/93439
237	* tree-parloops.c (create_loop_fn): Move clique bookkeeping...
238	* tree-cfg.c (move_sese_region_to_fn): ... here.
239	(verify_types_in_gimple_reference): Verify used cliques are
240	tracked.
241
2422020-02-17  Richard Biener  <rguenther@suse.de>
243
244	Backport from mainline
245	2020-01-09  Richard Biener  <rguenther@suse.de>
246
247	PR middle-end/93054
248	* gimplify.c (gimplify_expr): Deal with NOP definitions.
249
2502020-02-17  Richard Biener  <rguenther@suse.de>
251
252	Backport from mainline
253	2020-01-20  Richard Biener  <rguenther@suse.de>
254
255	PR debug/92763
256	* dwarf2out.c (prune_unused_types): Unconditionally mark
257	called function DIEs.
258
2592020-02-17  Richard Biener  <rguenther@suse.de>
260
261	Backport from mainline
262	2019-11-29  Richard Biener  <rguenther@suse.de>
263
264	PR tree-optimization/92704
265	* tree-if-conv.c (combine_blocks): Deal with virtual PHIs
266	in loops performing only loads.
267
2682020-02-17  Richard Biener  <rguenther@suse.de>
269
270	Backport from mainline
271	2019-11-27  Richard Biener  <rguenther@suse.de>
272
273	PR middle-end/92674
274	* tree-inline.c (expand_call_inline): Delay purging EH/abnormal
275	edges and instead record blocks in bitmap.
276	(gimple_expand_calls_inline): Adjust.
277	(fold_marked_statements): Delay EH cleanup until all folding is
278	done.
279	(optimize_inline_calls): Do EH/abnormal cleanup for calls after
280	inlining finished.
281
2822020-02-14 Hongtao Liu  <hongtao.liu@intel.com>
283
284	PR target/93724
285	* config/i386/avx512vbmi2intrin.h
286	(_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16,
287	_mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
288	_mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
289	_m512_shrdi_epi64, _m512_mask_shrdi_epi64,
290	_m512_maskz_shrdi_epi64, _mm512_shldi_epi16,
291	_mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16,
292	_mm512_shldi_epi32, _mm512_mask_shldi_epi32,
293	_mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
294	_mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo
295	of lacking a closing parenthesis.
296	* config/i386/avx512vbmi2vlintrin.h
297	(_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16,
298	_mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32,
299	_mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32,
300	_m256_shrdi_epi64, _m256_mask_shrdi_epi64,
301	_m256_maskz_shrdi_epi64, _mm256_shldi_epi16,
302	_mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
303	_mm256_shldi_epi32, _mm256_mask_shldi_epi32,
304	_mm256_maskz_shldi_epi32, _mm256_shldi_epi64,
305	_mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64,
306	_mm_shrdi_epi16, _mm_mask_shrdi_epi16,
307	_mm_maskz_shrdi_epi16, _mm_shrdi_epi32,
308	_mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32,
309	_mm_shrdi_epi64, _mm_mask_shrdi_epi64,
310	_m_maskz_shrdi_epi64, _mm_shldi_epi16,
311	_mm_mask_shldi_epi16, _mm_maskz_shldi_epi16,
312	_mm_shldi_epi32, _mm_mask_shldi_epi32,
313	_mm_maskz_shldi_epi32, _mm_shldi_epi64,
314	_mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto.
315
3162020-02-15  Jakub Jelinek  <jakub@redhat.com>
317
318	PR tree-optimization/93744
319	* match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): For
320	GENERIC, make sure @2 in the first and @1 in the other patterns has no
321	side-effects.
322
3232020-02-14  Eric Botcazou  <ebotcazou@adacore.com>
324
325	PR target/93704
326	* config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in
327	conjunction with TARGET_GNU_TLS in early return.
328
3292020-02-14  Jakub Jelinek  <jakub@redhat.com>
330
331	Backported from mainline
332	2020-02-13  Jakub Jelinek  <jakub@redhat.com>
333
334	PR target/93696
335	* config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8,
336	_mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8,
337	_mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8,
338	_mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W,
339	pass __A to the builtin followed by __W instead of __A followed by
340	__B.
341	* config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32,
342	_mm512_mask_popcnt_epi64): Likewise.
343	* config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32,
344	_mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64,
345	_mm256_mask_popcnt_epi64): Likewise.
346
347	PR target/93673
348	* config/i386/sse.md (k<code><mode>): Drop mode from last operand and
349	use const_0_to_255_operand predicate instead of immediate_operand.
350	(avx512dq_fpclass<mode><mask_scalar_merge_name>,
351	avx512dq_vmfpclass<mode><mask_scalar_merge_name>,
352	vgf2p8affineinvqb_<mode><mask_name>,
353	vgf2p8affineqb_<mode><mask_name>): Drop mode from
354	const_0_to_255_operand predicated operands.
355
356	2020-02-12  Jakub Jelinek  <jakub@redhat.com>
357
358	PR target/93670
359	* config/i386/sse.md (VI48F_256_DQ): New mode iterator.
360	(avx512vl_vextractf128<mode>): Use it instead of VI48F_256.  Remove
361	TARGET_AVX512DQ from condition.
362	(vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition>
363	instead of <mask_mode512bit_condition> in condition.  If
364	TARGET_AVX512DQ is false, emit vextract*64x4 instead of
365	vextract*32x8.
366	(vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
367	from condition.
368
369	2020-02-10  Jakub Jelinek  <jakub@redhat.com>
370
371	PR target/93637
372	* config/i386/sse.md (VI_256_AVX2): New mode iterator.
373	(vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256.
374	Change condition from TARGET_AVX2 to TARGET_AVX.
375
376	2020-02-08  Uroš Bizjak  <ubizjak@gmail.com>
377		    Jakub Jelinek  <jakub@redhat.com>
378
379	PR target/65782
380	* config/i386/i386.h (CALL_USED_REGISTERS): Make
381	xmm16-xmm31 call-used even in 64-bit ms-abi.
382
383	2020-02-06  Jakub Jelinek  <jakub@redhat.com>
384
385	PR libgomp/93515
386	* omp-low.c (use_pointer_for_field): For nested constructs, also
387	look for map clauses on target construct.
388	(scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily
389	taskreg_nesting_level.
390
391	2020-02-05  Jakub Jelinek  <jakub@redhat.com>
392
393	PR middle-end/93555
394	* omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or
395	simd_clone_create failed when i == 0, adjust clone->nargs by
396	clone->inbranch.
397
398	2020-01-30  Jakub Jelinek  <jakub@redhat.com>
399
400	PR middle-end/93505
401	* combine.c (simplify_comparison) <case ROTATE>: Punt on out of range
402	rotate counts.
403
404	2020-01-23  Jakub Jelinek  <jakub@redhat.com>
405
406	PR rtl-optimization/93402
407	* postreload.c (reload_combine_recognize_pattern): Don't try to adjust
408	USE insns.
409
410	2020-01-22  Jakub Jelinek  <jakub@redhat.com>
411
412	PR target/91298
413	* output.h (assemble_name_resolve): Declare.
414	* varasm.c (assemble_name_resolve): New function.
415	(assemble_name): Use it.
416	* config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.
417
418	2020-01-21  Jakub Jelinek  <jakub@redhat.com>
419
420	PR target/93333
421	* config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify
422	the last two operands are CONST_INT_P before using them as such.
423
424	PR target/93073
425	* config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
426	compare_mode other than SFmode or DFmode.
427
428	2020-01-09  Jakub Jelinek  <jakub@redhat.com>
429
430	PR inline-asm/93202
431	* config/riscv/riscv.c (riscv_print_operand_reloc): Use
432	output_operand_lossage instead of gcc_unreachable.
433	* doc/md.texi (riscv f constraint): Fix typo.
434
435	2020-01-03  Jakub Jelinek  <jakub@redhat.com>
436
437	PR rtl-optimization/93088
438	* loop-iv.c (find_single_def_src): Punt after looking through
439	128 reg copies for regs with single definitions.  Move definitions
440	to first uses.
441
442	2020-01-02  Jakub Jelinek  <jakub@redhat.com>
443
444	PR ipa/93087
445	* predict.c (compute_function_frequency): Don't call
446	warn_function_cold on functions that already have cold attribute.
447
448	2019-12-14  Jakub Jelinek  <jakub@redhat.com>
449
450	PR ipa/92357
451	* ipa-fnsummary.c (ipa_fn_summary_write): Use
452	lto_symtab_encoder_iterator with lsei_start_function_in_partition and
453	lsei_next_function_in_partition instead of walking all cgraph nodes
454	in encoder.
455
456	PR tree-optimization/92930
457	* ipa-pure-const.c (special_builtin_state): Don't handle
458	BUILT_IN_APPLY.
459
460	2019-12-12  Jakub Jelinek  <jakub@redhat.com>
461
462	PR target/92904
463	* config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and
464	not need_temp, decrease alignment of the read because the GPR save
465	area only guarantees 8-byte alignment.
466
467	2019-12-11  Jakub Jelinek  <jakub@redhat.com>
468
469	PR target/92723
470	* tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not
471	vect_internal_def, use oprnd1 as is, without trying to cast it.
472	Formatting fix.
473
474	2019-11-27  Jakub Jelinek  <jakub@redhat.com>
475
476	PR debug/92664
477	* dwarf2out.c (lookup_filename): Use "<stdin>" instead of "".
478
479	2019-11-23  Jakub Jelinek  <jakub@redhat.com>
480
481	PR target/92615
482	* config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is
483	GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not
484	register_operand, force x into register before storing it into dest.
485	Formatting fix.
486
4872020-02-14  Richard Biener  <rguenther@suse.de>
488
489	Backport from mainline
490	PR middle-end/93246
491	* alias.c (record_component_aliases): Take superset to record
492	into, recurse for alias-set zero fields.
493	(record_component_aliases): New oveerload wrapping around the above.
494
4952020-02-11  Tamar Christina  <tamar.christina@arm.com>
496
497	Backport from mainline
498	2020-01-31  Tamar Christina  <tamar.christina@arm.com>
499
500	PR rtl-optimization/91838
501	* simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
502	to truncate if allowed or reject combination.
503
5042020-01-27  Wilco Dijkstra  <wdijkstr@arm.com>
505
506	PR target/92692
507	* config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
508	Add assert to ensure prolog has been emitted.
509	(aarch64_split_atomic_op): Likewise.
510	* config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
511	Use epilogue_completed rather than reload_completed.
512	(aarch64_atomic_exchange<mode>): Likewise.
513	(aarch64_atomic_<atomic_optab><mode>): Likewise.
514	(atomic_nand<mode>): Likewise.
515	(aarch64_atomic_fetch_<atomic_optab><mode>): Likewise.
516	(atomic_fetch_nand<mode>): Likewise.
517	(aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise.
518	(atomic_nand_fetch<mode>): Likewise.
519
5202020-01-19  Eric S. Raymond <esr@thyrsus.com>
521	    Sandra Loosemore  <sandra@codesourcery.com>
522
523	Backport from mainline:
524
525	2020-01-19  Eric S. Raymond <esr@thyrsus.com>
526
527	* doc/contribute.texi: Update for SVN -> Git transition.
528	* doc/install.texi: Likewise.
529
5302020-01-15  Martin Liska  <mliska@suse.cz>
531
532	Backport from mainline
533	2019-04-14  Jan Hubicka  <hubicka@ucw.cz>
534
535	PR lto/89358
536	* ipa-devirt.c (skip_in_fields_list_p): New.
537	(odr_types_equivalent_p): Use it.
538
5392020-01-10  Martin Jambor  <mjambor@suse.cz>
540
541	Backport from mainline
542	2019-12-17  Martin Jambor  <mjambor@suse.cz>
543
544        PR ipa/92971
545        * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
546          definition of values, release memory on exit.
547
5482020-01-09  Martin Liska  <mliska@suse.cz>
549
550	Backport from mainline
551	2019-12-12  Jan Hubicka  <hubicka@ucw.cz>
552
553	* ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering
554	of execution of function call parameters.
555
5562020-01-08  Georg-Johann Lay  <avr@gjlay.de>
557
558	Backport from 2020-01-08 trunk r279995.
559
560	Add -nodevicespecs option for avr.
561
562	PR target/93182
563	* config/avr/avr.opt (-nodevicespecs): New driver option.
564	* config/avr/driver-avr.c (avr_devicespecs_file): Only issue
565	"-specs=device-specs/..." if that option is not set.
566	* doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
567
5682020-01-06  John David Anglin  <danglin@gcc.gnu.org>
569
570	* config/pa/pa.md: Revert change to use ordered_comparison_operator
571	instead of cmpib_comparison_operator in cmpib patterns.
572	* config/pa/predicates.md (cmpib_comparison_operator): Revert removal
573	of cmpib_comparison_operator.  Revise comment.
574
5752020-01-01  John David Anglin  <danglin@gcc.gnu.org>
576
577	PR target/93111
578	* config/pa/pa.md (scc): Use ordered_comparison_operator instead of
579	comparison_operator in B and S integer comparisons.  Likewise, use
580	ordered_comparison_operator instead of cmpib_comparison_operator in
581	cmpib patterns.
582	* config/pa/predicates.md (cmpib_comparison_operator): Remove.
583
5842019-12-28  Iain Sandoe  <iain@sandoe.co.uk>
585
586	Backport from mainline.
587	2019-12-14 Iain Sandoe <iain@sandoe.co.uk>
588
589	* config/darwin.h (DARWIN_EXTRA_SPECS): Add new
590	bundle spec. (DARWIN_BUNDLE1_SPEC): New.
591	(STARTFILE_SPEC): Use darwin bundle spec.
592	* config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New.
593	(DARWIN_DYLIB1_SPEC): Delete duplicate.
594
5952019-12-20  Roman Zhuykov  <zhroma@ispras.ru>
596
597	Backport from mainline
598	2019-12-13  Roman Zhuykov  <zhroma@ispras.ru>
599
600	PR rtl-optimization/92591
601	* modulo-sched.c (ps_add_node_check_conflicts): Improve checking
602	for history > 0 case.
603	* params.def (sms-dfa-history): Limit to 16.
604
6052019-12-19  Georg-Johann Lay  <avr@gjlay.de>
606
607	Backport support for some AVR devices from avrxmega3 family
608	from SVN trunk r279309, r278387, r278389, r278478.
609
610	PR target/92545
611	* config/avr/avr-arch.h (avr_mcu_t) <flash_pm_offset>: New field.
612	* config/avr/avr-devices.c (avr_mcu_types): Adjust initializers.
613	* config/avr/avr-mcus.def (AVR_MCU): Add respective field.
614	* config/avr/gen-avr-mmcu-specs.c (print_mcu)
615	<*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code
616	for spec definitions.
617	* config/avr/gen-avr-mmcu-texi.c: Rewrite.
618	* doc/avr-mmcu.texi: Regenerate.
619
6202019-12-17  Andreas Krebbel  <krebbel@linux.ibm.com>
621
622	Backport from mainline
623	2019-12-16  Andreas Krebbel  <krebbel@linux.ibm.com>
624
625	PR target/92950
626	* config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy,
627	and lhrl with llc.
628
6292019-12-02  Wilco Dijkstra  <wdijkstr@arm.com>
630
631	* config/aarch64/aarch64-cores.def (ares): Define.
632	(cortex-a76): Likewise.
633	(neoverse-n1): Likewise.
634	* config/aarch64/aarch64-tune.md: Regenerate.
635	* doc/invoke.texi (AArch64 Options): Document ares, cortex-a75 and
636	neoverse-n1.
637
6382019-11-29  David Malcolm  <dmalcolm@redhat.com>
639
640	PR driver/89014
641	* config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
642	use-after-free of the result of
643	aarch64_get_extension_string_for_isa_flags.
644
6452019-11-21  Jakub Jelinek  <jakub@redhat.com>
646
647	PR tree-optimization/91355
648	* tree-ssa-sink.c (select_best_block): Use >= rather than >
649	for early_bb scaled count with best_bb count comparison.
650
651	Backported from mainline
652	2019-11-20  Jakub Jelinek  <jakub@redhat.com>
653
654	PR middle-end/90840
655	* expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM
656	and has a mode that doesn't have corresponding integral type.
657
658	PR target/90867
659	* config/i386/i386.c (ix86_valid_target_attribute_tree): Don't
660	clear opts->x_ix86_isa_flags{,2} here...
661	(ix86_valid_target_attribute_inner_p): ... but here when seeing
662	arch=.  Also clear opts->x_ix86_isa_flags{,2}_explicit.
663
664	PR c/90898
665	* tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove
666	assertion.
667	(insert_clobbers_for_var): Fix a typo in function comment.
668
669	2019-11-19  Jakub Jelinek  <jakub@redhat.com>
670
671	PR middle-end/91450
672	* internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one
673	operand is negative and one non-negative, compare the non-negative
674	one against 0 rather than comparing s1 & s2 against 0.  Otherwise,
675	don't compare (s1 & s2) == 0, but compare separately both s1 == 0
676	and s2 == 0, unless one of them is known to be negative.  Remove
677	tem2 variable, use tem where tem2 has been used before.
678
679	2019-11-08  Jakub Jelinek  <jakub@redhat.com>
680
681	PR c++/92384
682	* function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't
683	copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm
684	slot.
685	(assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type
686	force creation of a unique data.stack_parm slot.
687
688	2019-10-17  Jakub Jelinek  <jakub@redhat.com>
689
690	PR tree-optimization/92056
691	* tree-object-size.c (cond_expr_object_size): Return early if then_
692	processing resulted in unknown size.
693
694	2019-09-07  Jakub Jelinek  <jakub@redhat.com>
695
696	PR tree-optimization/91665
697	* tree-vect-loop.c (vectorizable_reduction): Punt if base has type
698	incompatible with the type of PHI result.
699
700	2019-09-06  Jakub Jelinek  <jakub@redhat.com>
701
702	* function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
703	before testing TYPE_TRANSPARENT_AGGR.
704	* calls.c (initialize_argument_information, load_register_parameters):
705	Likewise.
706
707	2019-09-05  Jakub Jelinek  <jakub@redhat.com>
708
709	PR middle-end/91001
710	PR middle-end/91105
711	PR middle-end/91106
712	* calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
713	types, use type of their first field instead of type of
714	args[i].tree_value.
715
716	2019-09-01  Jakub Jelinek  <jakub@redhat.com>
717
718	PR middle-end/91623
719	* optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
720	EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
721	zeros or negative elements and use NE_EXPR instead of LT_EXPR against
722	zero vector.
723
7242019-11-20  Peter Bergner <bergner@linux.ibm.com>
725
726	Backport from mainline
727	2019-11-07  Peter Bergner <bergner@linux.ibm.com>
728
729	PR other/92090
730	* config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT
731	modes for integer constants.
732
7332019-11-19  Eric Botcazou  <ebotcazou@adacore.com>
734
735	* doc/invoke.texi (-gno-internal-reset-location-views): Fix typo.
736
7372019-11-14  Martin Liska  <mliska@suse.cz>
738
739	Backport from mainline
740	2019-11-14  Martin Liska  <mliska@suse.cz>
741
742	PR target/92389
743	* config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to
744	PTA_ICELAKE_CLIENT which is later interited by
745	PTA_ICELAKE_SERVER and PTA_TIGERLAKE.
746
7472019-11-13  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
748
749	Backport from mainline
750	* config/mips/mips.md (rotr<mode>3): Sanitize the constant argument
751	instead of asserting its value.
752
7532019-11-11  H.J. Lu  <hjl.tools@gmail.com>
754
755	Backport from trunk:
756	PR target/87833
757	* config/i386/intelmic-mkoffload.c (prepare_target_image): Put
758	-fPIC and -shared the last to create offload image.
759
7602019-11-11  Thomas Schwinge  <thomas@codesourcery.com>
761
762	Backport from trunk:
763	* gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
764	of 'offset'.
765
766	Backport from trunk:
767	* Makefile.in (LANG_CONFIGUREFRAGS): Define.
768	(config.status): Use/depend on it.
769	* configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'.
770	* configure: Regenerate.
771
7722019-11-09  John David Anglin  <danglin@gcc.gnu.org>
773
774	Backport from mainline
775	2019-11-07  John David Anglin  <danglin@gcc.gnu.org>
776
777	* config/pa/pa.md (memory_barrier): Revise to use ldcw barriers.
778	Enhance comment.
779	(memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New
780	insn patterns using ldcw instruction.
781	(memory_barrier): Remove insn pattern using sync instruction.
782	* config/pa/pa.opt (coherent-ldcw): New option.
783	(ordered): New option.
784
7852019-11-08  Eric Botcazou  <ebotcazou@adacore.com>
786
787	PR target/92095
788	* config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare.
789	* config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest
790 	change.
791	(got_helper_needed): New static variable.
792	(output_load_pcrel_sym): New function.
793	(get_pc_thunk_name): Remove after inlining...
794	(load_got_register): ...here.  Rework the initialization of the GOT
795	register and of the GOT helper.
796	(save_local_or_in_reg_p): Test the REGNO of the GOT register.
797	(sparc_file_end): Test got_helper_needed to decide whether the GOT
798	helper must be emitted.  Use output_asm_insn instead of fprintf.
799	(sparc_init_pic_reg): In PIC mode, always initialize the PIC register
800	if optimization is enabled.
801	* config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly
802	by calling output_load_pcrel_sym.
803
8042019-11-06  John David Anglin  <danglin@gcc.gnu.org>
805
806	Backport from mainline
807	2018-09-19  John David Anglin  <danglin@gcc.gnu.org>
808
809	PR rtl-optimization/85458
810	* config/pa/pa.c (pa_adjust_priority): Delete.
811	(TARGET_SCHED_ADJUST_PRIORITY): Delete define.
812
8132019-11-05  Segher Boessenkool  <segher@kernel.crashing.org>
814
815	Backport from trunk
816	2019-10-24  Segher Boessenkool  <segher@kernel.crashing.org>
817
818	* config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to...
819	(uavg<mode>3_ceil): ... This.
820	(altivec_vavgs<VI_char>): Rename to...
821	(avg<mode>3_ceil): ... This.
822	* config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH,
823	VAVGUW, VAVGSW): Adjust.
824
8252019-11-05  Segher Boessenkool  <segher@kernel.crashing.org>
826
827	Backport from trunk
828	2019-10-26  Segher Boessenkool  <segher@kernel.crashing.org>
829
830	PR target/91289
831	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't add an
832	immediate to r0; use r11 instead.  Save and restore r11 to r0 around
833	this.
834
8352019-11-04  John David Anglin  <danglin@gcc.gnu.org>
836
837	Backport from mainline
838	2019-10-03  John David Anglin  <danglin@gcc.gnu.org>
839
840	* config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.
841
8422019-11-04  John David Anglin  <danglin@gcc.gnu.org>
843
844	Backport from mainline
845	2019-10-03  John David Anglin  <danglin@gcc.gnu.org>
846
847	* config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
848	(pa_attr_length_call): Adjust length for 64-bit plabel sequence.
849
8502019-11-04 John David Anglin  <danglin@gcc.gnu.org>
851
852	Backport from mainline
853	2019-10-12  John David Anglin  <danglin@gcc.gnu.org>
854
855	* config/pa/pa.c (pa_output_call): Load descriptor address to register
856	%r22.  Load function address before global pointer.
857	(pa_attr_length_indirect_call): Adjust length of inline versions of
858	$$dyncall.
859	(pa_output_indirect_call): Remove fast inline version of $$dyncall
860	before normal cases.  Update inline $$dyncall sequences to preserve
861	function descriptor address in register %r22.
862	(TRAMPOLINE_CODE_SIZE): Adjust.
863	(pa_asm_trampoline_template): Revise 32-bit trampoline.  Don't assume
864	register %r22 contains trampoline address.
865	(pa_trampoline_init): Adjust offsets.
866	(pa_trampoline_adjust_address): Likewise.
867	* config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size.
868
869	2019-10-17  John David Anglin  <danglin@gcc.gnu.org>
870
871	* config/pa/pa.c (pa_output_indirect_call): Fix typos in last change.
872
8732019-11-1  Delia Burduv  <Delia.Burduv@arm.com>
874
875         Backport from trunk
876         2019-02-20  Andre Vieira <andre.simoesdiasvieira@arm.com>
877
878         PR target/86487
879         * lra-constraints.c(uses_hard_regs_p): Fix handling of
880         paradoxical SUBREGS.
881
8822019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
883
884	Backport from mainline
885	2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
886
887	* config/darwin.c (machopic_indirection_name): Rework the
888	function to emit linker-visible symbols only for indirections
889	in the data section.  Clean up the code and update comments.
890
8912019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
892
893	Backport from mainline
894	2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
895
896	* config/darwin.c (darwin_override_options): Make the check for
897	Objective-C ABI version more specific for 64bit code.
898
899	Backport from mainline
900	2019-10-06  Iain Sandoe  <iain@sandoe.co.uk>
901
902	* config/darwin.c (darwin_override_options): Adjust objective-c
903	ABI version error messages to avoid punctuation and contracted
904	negations.
905
9062019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
907
908	Backport from mainline
909	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
910
911	* config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
912	(STARTFILE_SPEC): Split crt3 into a separate spec.
913	(DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
914	(DARWIN_CRT2_SPEC): New.
915	(DARWIN_CRT3_SPEC): New.
916	(MIN_LD64_OMIT_STUBS): Revise to 62.1.
917	* config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
918	(DARWIN_CRT3_SPEC): New.
919
9202019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
921
922	Backport from mainline
923	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
924
925	* config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
926	spec.
927
928	Backport from mainline
929	2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>
930
931	* config/rs6000/darwin.h (ENDFILE_SPEC): New.
932
9332019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
934
935	Backport from mainline
936	2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
937
938	* config/darwin.c (darwin_emit_unwind_label): New default to false.
939	(darwin_override_options): Set darwin_emit_unwind_label as needed.
940
9412019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
942
943	Backport from mainline
944	2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
945
946	* config/darwin.c (machopic_indirect_call_target): Rename symbol stub
947	flag.
948	(darwin_override_options): Likewise.
949	* config/darwin.h: Likewise.
950	* config/darwin.opt: Likewise.
951	* config/i386/i386.c (output_pic_addr_const): Likewise.
952	* config/rs6000/darwin.h: Likewise.
953	* config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
954	* config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
955	... this TARGET_MACHO_SYMBOL_STUBS.
956	(FUNCTION_PROFILER):Likewise.
957	* config/i386/i386.h: Likewise.
958
959	Backport from mainline
960	2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
961
962	* config/darwin.c (machopic_indirect_call_target): Use renamed
963	darwin_picsymbol_stubs to decide on output.
964	(darwin_override_options): Handle darwin_picsymbol_stubs.
965	* config/darwin.h (MIN_LD64_OMIT_STUBS): New.
966	(LD64_VERSION): Revise default.
967	* config/darwin.opt: (mpic-symbol-stubs): New option.
968	(darwin_picsymbol_stubs): New variable.
969	* config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
970	rename to TARGET_MACHO_PICSYM_STUBS.
971	* config/i386/i386.c (output_pic_addr_const): Likewise.
972	* config/i386/i386.h Likewise.
973	* config/rs6000/darwin.h: Likewise.
974	* config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
975	darwin_picsymbol_stubs.
976
9772019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
978
979	Backport from mainline
980	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
981
982	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
983	user-specified float mode choice for kernel mode code.
984
9852019-10-31  Iain Sandoe  <iain@sandoe.co.uk>
986
987	Backport from mainline
988	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
989
990	* config/rs6000/darwin.h: Handle GCC target pragma.
991
9922019-10-30  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
993
994	Backport from mainline
995	2019-07-09  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
996
997	* cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
998	for both call instructions.
999
10002019-10-28  Iain Sandoe  <iain@sandoe.co.uk>
1001
1002	Backport from mainline
1003	2019-10-17  Iain Sandoe  <iain@sandoe.co.uk>
1004
1005	PR target/65342
1006	* config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
1007	(movdi_low_st): Delete.
1008	* config/rs6000/rs6000.c
1009	(darwin_rs6000_legitimate_lo_sum_const_p): New.
1010	(mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
1011	* config/rs6000/rs6000.md (movsi_low): Delete.
1012
10132019-10-28  Iain Sandoe  <iain@sandoe.co.uk>
1014
1015	Backport from mainline
1016	2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
1017
1018	PR target/67183
1019	* config/darwin.c (machopic_indirection): New field to flag
1020	non-lazy-symbol-pointers in the data section.
1021	(machopic_indirection_name): Compute if an indirection should
1022	appear in the data section.
1023	(machopic_output_data_section_indirection): New callback split
1024	from machopic_output_indirection.
1025	(machopic_output_stub_indirection): Likewise.
1026	(machopic_output_indirection): Retain the code for non-lazy
1027	symbol pointers in their regular section.
1028	(machopic_finish): Use the new callbacks to order the indirection
1029	output.
1030
10312019-10-28  Iain Sandoe  <iain@sandoe.co.uk>
1032
1033	Backport from mainline
1034	2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
1035
1036	* config/darwin-protos.h (machopic_finish): Delete.
1037	* config/darwin.c (machopic_finish): Make static.
1038
1039	Backport from mainline
1040	2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
1041
1042	* config/darwin.c (machopic_indirect_data_reference): Set flag to
1043	indicate that the new symbol is an indirection.
1044	(machopic_indirect_call_target): Likewise.
1045	* config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
1046	(MACHO_SYMBOL_INDIRECTION_P): New.
1047	(MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
1048
1049	Backport from mainline
1050	2019-10-08  Iain Sandoe  <iain@sandoe.co.uk>
1051
1052	* config/darwin.c (machopic_indirect_data_reference): Check for
1053	required indirections before making direct access to defined
1054	values.
1055	(machopic_output_indirection): Place the indirected pointes for
1056	required indirections into the non-lazy symbol pointers section.
1057	(darwin_encode_section_info):
1058	* config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
1059	(MACHO_SYMBOL_MUST_INDIRECT_P): New.
1060
1061	Backport from mainline
1062	2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
1063
1064	* config/darwin.c (machopic_output_indirection): Don't put
1065	hidden symbol indirections into the .data section, use the
1066	non-lazy symbol pointers section as normal.
1067	(darwin_encode_section_info): Record if a symbol is hidden.
1068	* config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
1069	(MACHO_SYMBOL_HIDDEN_VIS_P): New.
1070
1071	Backport from mainline
1072	2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
1073
1074	* config/darwin.c (machopic_symbol_defined_p): Use symbol flag
1075	predicates instead of accessing bits directly.
1076	(machopic_indirect_call_target): Likewise.
1077	(machopic_output_indirection): Likewise.
1078	(darwin_encode_section_info): Improve description.  Use renamed
1079	symbol flags.  Use predicate macros for variables and functions.
1080	* config/darwin.h:
1081	Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
1082	Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
1083	Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
1084	(MACHO_SYMBOL_VARIABLE_P): New.
1085	(MACHO_SYMBOL_DEFINED_P):New.
1086	(MACHO_SYMBOL_STATIC_P): New.
1087	* config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
1088	(SYMBOL_FLAG_SUBT_DEP): New.
1089	* config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
1090
10912019-10-28  Iain Sandoe  <iain@sandoe.co.uk>
1092
1093	Backport from mainline
1094	2019-10-05  Iain Sandoe  <iain@sandoe.co.uk>
1095
1096	PR target/59888
1097	* config/darwin.c (darwin_rodata_section): Add relocation flag,
1098	choose const_data section for constants with relocations.
1099	(machopic_select_section): Pass relocation flag to
1100	darwin_rodata_section ().
1101
11022019-10-28  Iain Sandoe  <iain@sandoe.co.uk>
1103
1104	Backport from mainline
1105	2019-09-21  Iain Sandoe  <iain@sandoe.co.uk>
1106
1107	* config/darwin.c (machopic_legitimize_pic_address): Check
1108	for lra, rather than reload.
1109
11102019-10-28  Peter Bergner <bergner@linux.ibm.com>
1111	    Jiufu Guo  <guojiufu@linux.ibm.com>
1112
1113	PR target/70010
1114	* config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if
1115	the callee explicitly disables some isa_flags the caller is using.
1116
11172019-10-25  Iain Sandoe  <iain@sandoe.co.uk>
1118
1119	* config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN):Guard
1120	against out of range max skip or log values.
1121
11222019-10-25  Richard Earnshaw  <rearnsha@arm.com>
1123
1124	Backport from mainline
1125	2019-05-08  Mihail Ionescu  <mihail.ionescu@arm.com>
1126	    Richard Earnshaw  <rearnsha@arm.com>
1127	PR target/88167
1128	* config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
1129	function.
1130	(thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
1131	(thumb1_compute_save_core_reg_mask): Don't force a spare work
1132	register if both the epilogue and prologue can use call-clobbered
1133	regs.
1134	(thumb1_unexpanded_epilogue): Use
1135	thumb1_epilogue_unused_call_clobbered_lo_regs.  Reverse the logic for
1136	picking temporaries for restoring high regs to match that of the
1137	prologue where possible.
1138	(thumb1_expand_prologue): Add any usable call-clobbered low registers to
1139	the list of work registers.  Detect if the return address is still live
1140	at the end of the prologue and avoid using it for a work register if so.
1141	If the return address is not live, add LR to the list of pushable regs
1142	after the first pass.
1143
11442019-10-23  Peter Bergner  <bergner@linux.ibm.com>
1145
1146	Backport from mainline
1147	2019-10-08  Tulio Magno Quites Machado Filho  <tuliom@linux.ibm.com>
1148
1149	* config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
1150	LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
1151	MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.
1152
11532019-10-23  Richard Biener  <rguenther@suse.de>
1154
1155	Backport from mainline
1156	2019-10-17  Richard Biener  <rguenther@suse.de>
1157
1158	PR debug/91887
1159	* dwarf2out.c (gen_formal_parameter_die): Also try to match
1160	context_die against a DW_TAG_GNU_formal_parameter_pack parent.
1161
1162	2019-09-19  Richard Biener  <rguenther@suse.de>
1163
1164	PR tree-optimization/91812
1165	* tree-ssa-phiprop.c (propagate_with_phi): Do not replace
1166	volatile loads.
1167
1168	2019-09-17  Richard Biener  <rguenther@suse.de>
1169
1170	PR debug/91772
1171	* dwarf2out.c (dwarf2out_late_global_decl): If early dwarf
1172	was missing generate locations only once.
1173
11742019-10-23  Eric Botcazou  <ebotcazou@adacore.com>
1175
1176	PR tree-optimization/92131
1177	* tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
1178	range would be symbolic, drop to varying for any explicit overflow
1179	in the constant part or if neither range is a singleton.
1180
11812019-10-20  Iain Sandoe  <iain@sandoe.co.uk>
1182
1183	Backport from mainline
1184	2019-10-03  Iain Sandoe  <iain@sandoe.co.uk>
1185
1186	PR target/87243
1187	* config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
1188	(darwin_driver_init): Use the sysroot provided by SDKROOT when that
1189	is available and the user has not set one on the command line.
1190
11912019-10-20  Iain Sandoe  <iain@sandoe.co.uk>
1192
1193	Backport from mainline
1194	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
1195
1196	* config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
1197	(RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
1198	(DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
1199	clauses.
1200	(LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
1201	DARWIN_NOPIE_SPEC.
1202
1203	Backport from mainline
1204	2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
1205
1206	* config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
1207	and DARWIN_NOPIE_SPEC.
1208	(RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
1209	(DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
1210	(DARWIN_NOPIE_SPEC): Collate from darwin10.h.
1211	(DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
1212	(DARWIN_EXPORT_DYNAMIC): Delete.
1213	* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
1214	and pie options processing to  darwin.h.
1215	* config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
1216
12172019-10-18  Georg-Johann Lay  <avr@gjlay.de>
1218
1219	Backport from 2019-10-18 trunk r277143.
1220
1221	PR target/86040
1222	* config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
1223
12242019-10-17  Segher Boessenkool  <segher@kernel.crashing.org>
1225
1226	Backport from trunk
1227	2019-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
1228
1229	PR rtl-optimization/89721
1230	* lra-constraints (invariant_p): Return false if side_effects_p holds.
1231
12322019-10-17  Richard Earnshaw  <rearnsha@arm.com>
1233
1234	Backport from mainline
1235	2019-05-03  Richard Earnshaw  <rearnsha@arm.com>
1236
1237	PR target/89400
1238	* config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
1239	Restrict 'all' variant to 32-bit configurations.
1240	(unaligned_loadhiu): Likewise.
1241	(unaligned_storehi): Likewise.
1242	(unaligned_storesi): Likewise.
1243	(unaligned_loadhis): Disable when compiling for thumb1.
1244
12452019-10-14  Will Schmidt  <will_schmidt@vnet.ibm.com>
1246
1247	Backport from trunk
1248	2019-09-26  Will Schmidt <will_schmidt@vnet.ibm.com>
1249
1250	* config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
1251	LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
1252	LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
1253	LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
1254	LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
1255	LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
1256	LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
1257	LD_ELEMREV_V16QI): Use the PURE attribute.
1258
12592019-10-10  Uroš Bizjak  <ubizjak@gmail.com>
1260
1261	PR target/92022
1262	* config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN.
1263
12642019-10-10  Oleg Endo  <olegendo@gcc.gnu.org>
1265
1266	Backport from mainline
1267	2019-10-10  Oleg Endo  <olegendo@gcc.gnu.org>
1268
1269	PR target/88630
1270	* config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
1271	* config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
1272	also for TARGET_FPU_SH4_300.
1273	(sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
1274	TARGET_SH4_300.
1275	* config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
1276	(negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
1277	(*negsf2_i): Split into ...
1278	(negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
1279	(abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
1280	(**abssf2_i): Split into ...
1281	(abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
1282	(negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
1283	(*negdf2_i): Split into ...
1284	(negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
1285	(absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
1286	(**abssf2_i): Split into ...
1287	(absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
1288
12892019-10-07  Bill Schmidt  <wschmidt@linux.ibm.com>
1290
1291	Backport from mainline
1292	2019-10-01  Bill Schmidt  <wschmidt@linux.ibm.com>
1293
1294	PR target/91275
1295	* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap
1296	vpmsumd.
1297
12982019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>
1299
1300	Backport from mainline
1301
1302	2019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>
1303
1304	PR target/88562
1305	* config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
1306	sh_check_add_incdec_notes to preserve REG_INC notes when replacing
1307	a memory access insn.
1308
13092019-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1310
1311	Backport from mainline
1312	2019-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1313
1314	* config/aarch64/aarch64.md (mov<mode>): Don't call
1315	aarch64_split_dimode_const_store on volatile MEM.
1316
13172019-10-01  Eric Botcazou  <ebotcazou@adacore.com>
1318
1319	PR target/91854
1320	Backport from mainline
1321	2019-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1322
1323	PR target/91269
1324	* config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
1325
13262019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
1327
1328	Backport from mainline
1329	2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
1330
1331	PR target/80672
1332	* config/sh/sh.c (parse_validate_atomic_model_option): Use
1333	std::string::compare instead of std::string::find.
1334
13352019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
1336
1337	Backport from mainline
1338	2018-07-15  Jeff Law  <law@redhat.com>
1339
1340	PR target/85993
1341	* config/sh/sh.c (output_mi_thunk): Remove dead conditional
1342	block.
1343
13442019-09-26  Iain Sandoe  <iain@sandoe.co.uk>
1345
1346	Backport from mainline
1347	2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
1348
1349	* config/darwin.opt (prebind, noprebind, seglinkedit,
1350	noseglinkedit): Add RejectNegative.
1351
1352	Backport from mainline
1353	2019-06-14  Iain Sandoe  <iain@sandoe.co.uk>
1354
1355	* config/darwin.opt: Add RejectNegative where needed, reorder
1356	and add minimal functional descriptions.
1357
13582019-09-25  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1359
1360	Backport from mainline
1361	2019-08-22  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1362
1363	* config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
1364	intrinsics if __ARM_FP.
1365	Use __ARM_FEATURE_CRC32 ifdef guard.
1366
13672019-09-23  Max Filippov  <jcmvbkbc@gmail.com>
1368
1369	Backport from mainline
1370	2019-06-18  Max Filippov  <jcmvbkbc@gmail.com>
1371
1372	* config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
1373	pointer adjustment for the case of no callee-saved registers and
1374	stack frame bigger than 128 bytes.
1375
13762019-09-20  John David Anglin  <danglin@gcc.gnu.org>
1377
1378	* config/pa/pa.c (pa_trampoline_init): Remove spurious extended
1379	character.
1380
13812019-09-20  Andreas Krebbel  <krebbel@linux.ibm.com>
1382
1383	Backport from mainline
1384	2019-06-06  Andreas Krebbel  <krebbel@linux.ibm.com>
1385
1386	PR rtl-optimization/88751
1387	* ira.c (ira): Use the number of the actually referenced registers
1388	when calculating the threshold.
1389
13902019-09-11  Eric Botcazou  <ebotcazou@adacore.com>
1391
1392	PR rtl-optimization/89795
1393	* rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
1394	inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
1395
13962019-09-09  Jakub Jelinek  <jakub@redhat.com>
1397
1398	PR target/87853
1399	* config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
1400	instead of __v16qs.
1401
1402	PR target/91704
1403	* config/i386/avxintrin.h (__v32qs): New typedef.
1404	* config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
1405	instead of __v32qi.
1406
14072019-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
1408
1409	Backport from mainline
1410	2019-08-13  Wilco Dijkstra  <wdijkstr@arm.com>
1411
1412	PR target/81800
1413	* gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
1414	operand is larger than a long int.
1415
14162019-09-03  Iain Sandoe  <iain@sandoe.co.uk>
1417
1418	Backport from mainline
1419	2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>
1420
1421	PR pch/61250
1422	* ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
1423	and issue any diagnostics needed before collecting the pre-PCH
1424	state.
1425
14262019-09-01  Eric Botcazou  <ebotcazou@adacore.com>
1427
1428	PR target/91472
1429	* config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
1430	during LRA/reload in PIC mode if the PIC register hasn't been used yet.
1431	(sparc_pic_register_p): Test reload_in_progress for consistency's sake.
1432
14332019-08-30  Richard Biener  <rguenther@suse.de>
1434
1435	Backport from mainline
1436	2019-06-21  Richard Biener  <rguenther@suse.de>
1437
1438	PR tree-optimization/90930
1439	* tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
1440	flag on new stmts to avoid re-processing them.
1441
1442	2019-05-27  Richard Biener  <rguenther@suse.de>
1443
1444	PR tree-optimization/90637
1445	* tree-ssa-sink.c (statement_sink_location): Honor the
1446	computed sink location for single-uses.
1447
14482019-08-30  Richard Biener  <rguenther@suse.de>
1449
1450	Backport from mainline
1451	2019-07-08  Richard Biener  <rguenther@suse.de>
1452
1453	PR tree-optimization/91108
1454	* tree-ssa-sccvn.c: Include builtins.h.
1455	(vn_reference_lookup_3): Use only alignment constraints to
1456	verify same-valued store disambiguation.
1457
14582019-08-30  Segher Boessenkool  <segher@kernel.crashing.org>
1459
1460	Backport from trunk
1461	2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
1462
1463	PR target/91481
1464	* config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
1465	and UNSPEC_DARN_RAW.
1466	(unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
1467	UNSPECV_DARN_RAW.
1468	(darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
1469	(darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
1470	(darn): Use an unspec_volatile, and UNSPECV_DARN.
1471
14722019-08-30  Segher Boessenkool  <segher@kernel.crashing.org>
1473
1474	Backport from trunk
1475	2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
1476
1477	* config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
1478	UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
1479	* config/rs6000/rs6000.md (unspec): ... here.
1480	* config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
1481	*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
1482	cmpeqb, *cmpeqb_internal): Delete, move to...
1483	* config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
1484	*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
1485	cmpeqb, *cmpeqb_internal): ... here.
1486
14872019-08-30  Richard Biener  <rguenther@suse.de>
1488
1489	Backport from mainline
1490	2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
1491
1492	PR middle-end/88567
1493	* tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
1494	output vector directly to duplicate_and_interleave instead of
1495	going through a temporary.  Postpone insertion of ctor_seq to
1496	the end of the loop.
1497
1498	2018-12-04  Richard Biener  <rguenther@suse.de>
1499
1500	PR tree-optimization/88315
1501	* tree-vect-loop.c (get_initial_defs_for_reduction): Simplify
1502	and fix initialization vector for SAD and DOT_PROD SLP reductions.
1503
15042019-08-30  Richard Biener  <rguenther@suse.de>
1505
1506	Backport from mainline
1507	2019-06-18  Richard Biener  <rguenther@suse.de>
1508
1509	PR debug/90900
1510	* cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
1511	as if optimized away.
1512
1513	2019-04-29  Richard Biener  <rguenther@suse.de>
1514
1515	PR tree-optimization/90278
1516	* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
1517	EH on comparison simplification.
1518
1519	2019-04-25  Richard Biener  <rguenther@suse.de>
1520
1521	PR middle-end/90194
1522	* match.pd: Add pattern to simplify view-conversion of an
1523	empty constructor.
1524
15252019-08-30  Richard Biener  <rguenther@suse.de>
1526
1527	Backport from mainline
1528	2019-08-12  Richard Biener  <rguenther@suse.de>
1529
1530	PR lto/91375
1531	* tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
1532	flag_devirtualize.
1533
1534	2019-07-31  Richard Biener  <rguenther@suse.de>
1535
1536	PR tree-optimization/91293
1537	* tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
1538	of reduction stmts.
1539
1540	2019-07-31  Richard Biener  <rguenther@suse.de>
1541
1542	PR tree-optimization/91280
1543	* tree-ssa-structalias.c (get_constraint_for_component_ref):
1544	Decompose MEM_REF manually for offset handling.
1545
1546	2019-07-19  Richard Biener  <rguenther@suse.de>
1547
1548	PR tree-optimization/91200
1549	* tree-ssa-phiopt.c (cond_store_replacement): Check we have
1550	no PHI nodes in middle-bb.
1551
1552	2019-07-15  Richard Biener  <rguenther@suse.de>
1553
1554	PR middle-end/91162
1555	* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
1556	node make sure to replace all uses with something valid.
1557
1558	2019-07-11  Richard Biener  <rguenther@suse.de>
1559
1560	PR middle-end/91131
1561	* gimplify.c (gimplify_compound_literal_expr): Force a temporary
1562	when the object is volatile and we have not cleared it even though
1563	there are no nonzero elements.
1564
1565	2019-07-10  Richard Biener  <rguenther@suse.de>
1566
1567	PR tree-optimization/91126
1568	* tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust
1569	native encoding offset for BYTES_BIG_ENDIAN.
1570
15712019-08-30  Richard Biener  <rguenther@suse.de>
1572
1573	* lto-streamer.h (LTO_minor_version): Bump.
1574
1575	Backport from mainline
1576	2019-05-06  Richard Biener  <rguenther@suse.de>
1577
1578	PR tree-optimization/90328
1579	* tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
1580	* tree-data-ref.c (dr_may_alias_p): Check whether the clique
1581	is valid in the loop nest before using it.
1582	(initialize_data_dependence_relation): Adjust.
1583	* graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
1584	loop as loop-nest to dr_may_alias_p.
1585
1586	2019-03-08  Richard Biener  <rguenther@suse.de>
1587
1588	PR middle-end/89578
1589	* cfgloop.h (struct loop): Add owned_clique field.
1590	* cfgloopmanip.c (copy_loop_info): Copy it.
1591	* tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
1592	cliques.
1593	* tree-inline.c (copy_loops): Remap owned_clique.
1594	* lto-streamer-in.c (input_cfg): Stream owned_clique.
1595	* lto-streamer-out.c (output_cfg): Likewise.
1596
1597	2019-02-22  Richard Biener  <rguenther@suse.de>
1598
1599	PR tree-optimization/87609
1600	* tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
1601
1602	2019-02-22  Richard Biener  <rguenther@suse.de>
1603
1604	PR middle-end/87609
1605	* cfghooks.h (dependence_hash): New typedef.
1606	(struct copy_bb_data): New type.
1607	(cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
1608	(duplicate_block): Likewise.
1609	* cfghooks.c (duplicate_block): Pass down copy_bb_data.
1610	(copy_bbs): Create and pass down copy_bb_data.
1611	* cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
1612	(rtl_duplicate_bb): Likewise.
1613	* tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
1614	remap dependence info.
1615
1616	2019-02-22  Richard Biener  <rguenther@suse.de>
1617
1618	PR tree-optimization/87609
1619	* tree-core.h (tree_base): Document special clique values.
1620	* tree-inline.c (remap_dependence_clique): Do not use the
1621	special clique value of one.
1622	(maybe_set_dependence_info): Use clique one.
1623	(clear_dependence_clique): New callback.
1624	(compute_dependence_clique): Clear clique one from all refs
1625	before assigning it (again).
1626
16272019-08-30  Bin Cheng  <bin.linux@linux.alibaba.com>
1628
1629	Backport from mainline
1630	2019-07-18  Bin Cheng  <bin.linux@linux.alibaba.com>
1631
1632	PR tree-optimization/91137
1633	* tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
1634	(tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
1635	Init, use and fini the above new field.
1636	(determine_base_object_1): New function.
1637	(determine_base_object): Reimplement using walk_tree.
1638
16392019-08-30  Richard Biener  <rguenther@suse.de>
1640
1641	Backport from mainline
1642	2019-04-09  Richard Sandiford  <richard.sandiford@arm.com>
1643
1644	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
1645	use gimple_expr_type for load and store calls.  Skip over the
1646	condition argument in a conditional internal function.
1647	Protect use of TREE_INT_CST_LOW.
1648
1649	2019-04-08  Richard Biener  <rguenther@suse.de>
1650
1651	PR tree-optimization/90006
1652	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
1653	calls like lrint.
1654
1655	2019-04-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
1656
1657	PR tree-optimization/89725
1658	* tree-chrec.c (chrec_contains_symbols): New parameter.  Handle outer
1659	loop's chrec as invariant symbol.
1660	* tree-chrec.h (chrec_contains_symbols): New parameter.
1661	* tree-data-ref.c (analyze_miv_subscript): Pass new argument.
1662	(build_classic_dist_vector_1, add_other_self_distances): Bypass access
1663	function of loops not in DDR's loop_nest.
1664
1665	2019-03-26  Bin Cheng  <bin.cheng@linux.alibaba.com>
1666
1667	PR tree-optimization/81740
1668	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1669	In case of outer loop vectorization, check for backward dependence
1670	at the inner loop if outer loop dependence is reversed.
1671
16722019-08-30  Richard Biener  <rguenther@suse.de>
1673
1674	Backport from mainline
1675	2019-04-24  Richard Biener  <rguenther@suse.de>
1676
1677	PR middle-end/90213
1678	* gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
1679	by size and BITS_PER_UNIT on poly-wide-ints.
1680
1681	2019-04-11  Richard Biener  <rguenther@suse.de>
1682
1683	PR tree-optimization/90020
1684	* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
1685	* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
1686	* tree-ssa-pre.c (compute_avail): Use it to not put
1687	possibly trapping references after a call that might not
1688	return into EXP_GEN.
1689	* gcse.c (compute_hash_table_work): Do not elide
1690	marking a block containing a call if the call might not
1691	return.
1692
16932019-08-29  Iain Sandoe  <iain@sandoe.co.uk>
1694
1695	Backport from mainline
1696	2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>
1697
1698	PR bootstrap/87030
1699	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
1700
1701	PR bootstrap/87030
1702	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
1703	* config/i386/darwin32-biarch.h .. to here.
1704	* config/i386/darwin64-biarch.h: Adjust comments.
1705	* config/rs6000/darwin32-biarch.h: Likewise.
1706	* config/rs6000/darwin64-biarch.h: Likewise.
1707	* config.gcc: Missed commit from r273746
1708	(*-*-darwin*): Don't include CPU t-darwin here.
1709	(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
1710	an error message if i686-darwin configuration is attempted for
1711	Darwin >= 18.
1712
1713	Backport from mainline
1714	2019-07-23  Iain Sandoe  <iain@sandoe.co.uk>
1715
1716	PR bootstrap/87030
1717	* config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
1718	(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
1719	an error message if i686-darwin configuration is attempted for
1720	Darwin >= 18.
1721	(x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
1722	(powerpc-*-darwin*): Use biarch files where needed.
1723	(powerpc64-*-darwin*): Likewise.
1724	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
1725	(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
1726	arch case.
1727	* config/i386/darwin32-biarch.h: New.
1728	* config/i386/darwin64.h: Rename.
1729	* gcc/config/i386/darwin64-biarch.h: To this.
1730	* config/i386/t-darwin: Rename.
1731	* gcc/config/i386/t-darwin32-biarch: To this.
1732	* config/i386/t-darwin64: Rename.
1733	* gcc/config/i386/t-darwin64-biarch: To this.
1734	* config/rs6000/darwin32-biarch.h: New.
1735	* config/rs6000/darwin64.h: Rename.
1736	* config/rs6000/darwin64-biarch.h: To this.
1737	(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
1738	arch case.
1739	* config/rs6000/t-darwin8: Rename.
1740	* config/rs6000/t-darwin32-biarch: To this.
1741	* config/rs6000/t-darwin64 Rename.
1742	* config/rs6000/t-darwin64-biarch: To this.
1743
17442019-08-29  Jakub Jelinek  <jakub@redhat.com>
1745
1746	Backported from mainline
1747	2019-07-30  Jakub Jelinek  <jakub@redhat.com>
1748
1749	PR target/91150
1750	* config/i386/i386.c (expand_vec_perm_blend): Change mask type
1751	from unsigned to unsigned HOST_WIDE_INT.  For E_V64QImode cast
1752	comparison to unsigned HOST_WIDE_INT before shifting it left.
1753
1754	2019-07-04  Jakub Jelinek  <jakub@redhat.com>
1755
1756	PR middle-end/78884
1757	* gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
1758	(gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
1759	loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
1760	(gimplify_adjust_omp_clauses): Add safelen (1) clause if
1761	ctx->add_safelen1 is set.
1762
1763	PR rtl-optimization/90756
1764	* explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
1765	for VECTOR_TYPE_P.
1766
1767	2019-06-12  Jakub Jelinek  <jakub@redhat.com>
1768
1769	PR c/90760
1770	* symtab.c (symtab_node::set_section): Allow being called on aliases
1771	as long as they aren't analyzed yet.
1772
1773	2019-06-05  Jakub Jelinek  <jakub@redhat.com>
1774
1775	PR debug/90733
1776	* var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
1777	with VOIDmode inner operands.
1778
1779	2019-04-19  Jakub Jelinek  <jakub@redhat.com>
1780
1781	PR middle-end/90139
1782	* tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
1783	assign_temp instead of gen_reg_rtx.
1784
17852019-08-27  Iain Sandoe  <iain@sandoe.co.uk>
1786
1787	Backport from mainline
1788	2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
1789
1790	* config/darwin.c (darwin_override_options): Make a final check on PIC
1791	options.
1792
17932019-08-27  Iain Sandoe  <iain@sandoe.co.uk>
1794
1795	Backport from mainline
1796	2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
1797	* config/darwin.c (darwin_override_options): Don't jam symbol stubs
1798	on for kernel code.
1799
18002019-08-27  Iain Sandoe  <iain@sandoe.co.uk>
1801
1802	Backport from mainline
1803	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
1804
1805	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
1806	use longcall for 64b code.
1807
18082019-08-27  Iain Sandoe  <iain@sandoe.co.uk>
1809
1810	Backport from mainline
1811	2019-08-18  Iain Sandoe  <iain@sandoe.co.uk>
1812
1813	* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
1814	for cpu and machine.  Factor 64/32b builtins.
1815
1816	Backport from mainline
1817	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
1818
1819	* config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
1820
18212019-08-25  Iain Sandoe  <iain@sandoe.co.uk>
1822
1823	Backport from mainline
1824	2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
1825
1826	* config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
1827	in computing the number of options to be moved.
1828
1829	Backport from mainline
1830	2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
1831
1832	* config/darwin-driver.c (validate_macosx_version_min): New.
1833	(darwin_default_min_version): Cleanup and validate supplied version.
1834	(darwin_driver_init): Likewise and push cleaned version into opts.
1835
18362019-08-25  Uroš Bizjak  <ubizjak@gmail.com>
1837
1838	PR target/91533
1839	Backport from mainline
1840	2019-06-30  Uroš Bizjak  <ubizjak@gmail.com>
1841
1842	* config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
1843	* config/i386/i386-builtin.def (__builtin_ia32_pabsb):
1844	Use CODE_FOR_ssse3_absv8qi2.
1845	(__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
1846	(__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
1847
18482019-08-23  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
1849
1850	Backport from mainline
1851	2019-08-23  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
1852
1853	* config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
1854	machine mode for unspec_volatile operand.
1855
18562019-08-22  Iain Sandoe  <iain@sandoe.co.uk>
1857
1858	Backport from mainline
1859	2018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
1860
1861	* config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New.
1862
18632019-08-22  Iain Sandoe  <iain@sandoe.co.uk>
1864
1865	Backport from mainline
1866	2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>
1867
1868	* config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
1869
18702019-08-22  Iain Sandoe  <iain@sandoe.co.uk>
1871
1872	Backport from mainline
1873	2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
1874
1875	* config/darwin-c.c (darwin_register_objc_includes): Do not
1876	prepend the sysroot when building gnu-runtime header search
1877	paths.
1878
18792019-08-22  Iain Sandoe  <iain@sandoe.co.uk>
1880
1881	Backport from mainline
1882	2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
1883
1884	* config/darwin.c (darwin_file_end): Use switch_to_section ()
1885	instead of direct output of the asm.
1886
18872019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
1888
1889	PR rtl-optimization/91347
1890	* dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
1891	before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
1892
18932019-08-16  Iain Sandoe  <iain@sandoe.co.uk>
1894
1895	Backport from mainline
1896	2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>
1897
1898	* config/rs6000/rs6000.md (group_end_nop): Emit insn register
1899	names using operand format, rather than hard-wired.
1900	(speculation_barrier): Likewise.
1901
19022019-08-14  Iain Sandoe  <iain@sandoe.co.uk>
1903
1904	Backport from mainline
1905	2018-08-22 Iain Sandoe <iain@sandoe.co.uk>
1906
1907	* config/darwin.h (LINK_COMMAND_SPEC_A): Update lto options
1908	to match gcc/gcc.c.
1909
19102019-08-05  Kito Cheng  <kito.cheng@sifive.com>
1911
1912	Backport from mainline
1913	2019-08-05  Kito Cheng  <kito.cheng@sifive.com>
1914
1915	* config/riscv/riscv.c (riscv_promote_function_mode): New.
1916	(TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
1917
19182019-08-04  Segher Boessenkool  <segher@kernel.crashing.org>
1919
1920	Backport from trunk
1921	2019-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
1922
1923	* config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
1924	correct numbers for TFHAR, TFIAR, TEXASR.
1925
19262019-07-23  Matthew Beliveau  <mbelivea@redhat.com>
1927
1928	Backported from mainline
1929	2019-07-16  Jeff Law  <law@redhat.com>
1930
1931	PR rtl-optimization/91173
1932	* tree-ssa-address.c (addr_for_mem_ref): If the base is an
1933	SSA_NAME with a constant value, fold its value into the offset
1934	and clear the base before calling gen_addr_rtx.
1935	* g++.dg/pr91173.C: New test.
1936
19372019-07-23  Richard Biener  <rguenther@suse.de>
1938
1939	PR debug/91231
1940	* lto-streamer-in.c (input_function): Drop inline-entry markers
1941	that ended up with an unknown location block.
1942
19432019-07-22  Martin Liska  <mliska@suse.cz>
1944
1945	Backport from mainline
1946	2019-07-22  Martin Liska  <mliska@suse.cz>
1947
1948	PR driver/91172
1949	* opts-common.c (decode_cmdline_option): Decode
1950	argument of -Werror and check it for a wrong language.
1951	* opts-global.c (complain_wrong_lang): Remove such case.
1952
19532019-07-21  Richard Sandiford  <richard.sandiford@arm.com>
1954
1955	Backport from mainline
1956	2019-07-10  Richard Sandiford  <richard.sandiford@arm.com>
1957
1958	* fold-const.c (fold_relational_const): Fix folding of
1959	vector-to-scalar NE_EXPRs.
1960	(test_vector_folding): Add more tests.
1961
19622019-07-19  Jason Merrill  <jason@redhat.com>
1963
1964	PR c++/82081 - tail call optimization breaks noexcept
1965	* tree-tailcall.c (find_tail_calls): Don't turn a call from a
1966	nothrow function to a might-throw function into a tail call.
1967
19682019-07-16  Wilco Dijkstra  <wdijkstr@arm.com>
1969
1970	Backport from mainline
1971	PR target/89222
1972	* config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
1973	to decide when to split off a non-zero offset from a symbol.
1974	* config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
1975	in function symbols.
1976
19772019-07-16  Wilco Dijkstra  <wdijkstr@arm.com>
1978
1979	Backport from mainline
1980	2019-02-13  Wilco Dijkstra  <wdijkstr@arm.com>
1981	PR target/89190
1982	* config/arm/arm.c (ldm_stm_operation_p) Set
1983	addr_reg_in_reglist correctly for first register.
1984	(load_multiple_sequence): Remove dead base check.
1985	(gen_ldm_seq): Correctly set write_back for Thumb-1.
1986
19872019-07-15  Andreas Krebbel  <krebbel@linux.ibm.com>
1988
1989	Backport from mainline
1990	2019-07-01  Andreas Krebbel  <krebbel@linux.ibm.com>
1991
1992	* config/s390/vector.md: Fix shift count operand printing.
1993
19942019-07-15  Wilco Dijkstra  <wdijkstr@arm.com>
1995
1996	Backport from mainline
1997	2019-01-23  Bin Cheng  <bin.cheng@arm.com>
1998		    Steve Ellcey  <sellcey@marvell.com>
1999
2000	PR target/85711
2001	* recog.c (address_operand): Return false on wrong mode for address.
2002	(constrain_operands): Check for mode with 'p' constraint.
2003
20042019-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2005
2006	PR rtl-optimization/91136
2007	* df-core.c (ACCESSING REFS): Fix typos in comment.
2008	* resource.c (mark_target_live_reg): Add artificial defs that occur at
2009	the beginning of the block to the initial set of live registers.
2010
20112019-07-04  Martin Liska  <mliska@suse.cz>
2012
2013	Backport from mainline
2014	2019-07-03  Martin Liska  <mliska@suse.cz>
2015
2016	PR middle-end/90899
2017	* multiple_target.c (create_dispatcher_calls): Add to comdat
2018	group only if set for ifunc.
2019
20202019-06-28  Jeff Law  <law@redhat.com>
2021
2022	Backport from mainline
2023	2019-06-21  Jeff Law  <law@redhat.com>
2024
2025	PR tree-optimization/90949
2026	* tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
2027	* tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
2028
20292019-06-26  Martin Jambor  <mjambor@suse.cz>
2030
2031	Backport from mainline
2032	2019-06-25  Martin Jambor  <mjambor@suse.cz>
2033
2034	PR ipa/90939
2035	* ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
2036
20372019-06-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2038
2039	Backport from mainline
2040	2019-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2041
2042	* configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
2043	alternative Solaris 11.4 format.
2044	* configure: Regenerate.
2045
20462019-06-16  Jeff Law  <law@redhat.com>
2047
2048	Backport from mainline
2049	2019-06-16  Prachi Godbole  <prachi.godbole@imgtec.com>
2050		    Robert Suchanek  <robert.suchanek@mips.com>
2051	* config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
2052	and 3rd operands of the fmadd/fmsub/maddv builtin.
2053
20542019-06-16  John David Anglin  <danglin@gcc.gnu.org>
2055
2056	PR middle-end/64242
2057	* config/pa/pa.md (nonlocal_goto): Restore frame pointer last.  Add
2058	frame clobbers and schedule block.
2059	(builtin_longjmp): Likewise.
2060
20612019-06-11  Jakub Jelinek  <jakub@redhat.com>
2062
2063	PR target/90811
2064	* config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
2065	instead of and.u%d.
2066
20672019-06-07  John David Anglin  <danglin@gcc.gnu.orig>
2068
2069	PR target/90751
2070	* config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
2071	Call pa_output_function_label.
2072	(TARGET_ASM_FUNCTION_PROLOGUE): define.
2073	* config/pa/pa-protos.h (pa_output_function_label): Declare.
2074	* config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
2075	to declaration.
2076	(pa_linux_output_function_prologue): Declare.
2077	(TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
2078	(pa_output_function_label): New.
2079	(pa_output_function_prologue): Revise to use pa_output_function_label.
2080	(pa_linux_output_function_prologue): New.
2081	* config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
2082
20832019-06-07  Iain Sandoe  <iain@sandoe.co.uk>
2084
2085	Backport from mainline.
2086	2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
2087
2088	PR target/82920
2089	* config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
2090	Darwin.
2091
20922019-06-07  Iain Sandoe  <iain@sandoe.co.uk>
2093
2094	Backport from mainline.
2095	2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
2096
2097	PR target/82920
2098	* config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
2099	(ix86_output_indirect_branch_via_reg): Use output mechanism
2100	accounting for __USER_LABEL_PREFIX__.
2101	(ix86_output_indirect_branch_via_push): Likewise.
2102	(ix86_output_function_return): Likewise.
2103	(ix86_output_indirect_function_return): Likewise.
2104
21052019-05-30  Jakub Jelinek  <jakub@redhat.com>
2106
2107	* tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
2108	to length.
2109
21102019-05-29  Jakub Jelinek  <jakub@redhat.com>
2111
2112	PR fortran/90329
2113	* lto-streamer.h (LTO_minor_version): Bump to 2.
2114
2115	Backported from mainline
2116	2019-05-16  Jakub Jelinek  <jakub@redhat.com>
2117
2118	PR fortran/90329
2119	* tree-core.h (struct tree_decl_common): Document
2120	decl_nonshareable_flag for PARM_DECLs.
2121	* tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
2122	* calls.c (expand_call): Don't try tail call if caller
2123	has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
2124	passed on the stack and callee needs to pass any arguments on the
2125	stack.
2126	* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
2127	else if instead of series of mutually exclusive ifs.  Handle
2128	DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
2129	* tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2130
21312019-05-28  John David Anglin  <danglin@gcc.gnu.org>
2132
2133	* config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
2134
21352019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2136
2137	* dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
2138	and DW_OP_GNU_const_index opcodes.
2139
21402019-05-24  John David Anglin  <danglin@gcc.gnu.org>
2141
2142	PR target/90530
2143	* config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
2144	DImode to SImode in floating-point registers on 64-bit target.
2145	* config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
2146	register_operand in xmpyu patterns.
2147
21482019-05-24  Martin Liska  <mliska@suse.cz>
2149
2150	Backport from mainline
2151	2019-05-23  Martin Liska  <mliska@suse.cz>
2152
2153	PR sanitizer/90570
2154	* gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
2155	expression similarly to gimplify_decl_expr.
2156
21572019-05-23  Uroš Bizjak  <ubizjak@gmail.com>
2158
2159	Backport from mainline
2160	2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>
2161
2162	* config/i386/cpuid.h (__cpuid): For 32bit targets, zero
2163	%ebx and %ecx bafore calling cpuid with leaf 1 or
2164	non-constant leaf argument.
2165
2166	2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>
2167
2168	PR target/90547
2169	* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
2170	Avoid calling gen_lowpart with CONST operand.
2171
21722019-05-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2173
2174	Backported from mainline
2175	2019-05-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2176
2177	* config/arm/t-rtems: Replace ARMv7-M multilibs with Cortex-M
2178	multilibs.
2179
21802019-05-20  Jeff Law  <law@redhat.com>
2181
2182	Backport from mainline
2183	2019-05-17  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
2184
2185	* config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
2186	TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
2187	and fpxx modes.
2188
21892019-05-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2190
2191	Backport from mainline.
2192	2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2193
2194	PR target/89765
2195	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2196	In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
2197	to compute vector element selector for both constant and variable
2198	operands.
2199
22002019-05-15  David Edelsohn  <dje.gcc@gmail.com>
2201
2202	Backport from mainline
2203	2019-04-11  David Edelsohn  <dje.gcc@gmail.com>
2204	* xcoffout.h (xcoff_private_rodata_section_name): Declare.
2205	* xcoffout.c (xcoff_private_rodata_section_name): Define.
2206	* config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
2207	read_only_private_data_section using coff_private_rodata_section_name.
2208	(rs6000_xcoff_file_start): Generate coff_private_rodata_section_name.
2209
2210	2018-12-04  David Edelsohn  <dje.gcc@gmail.com>
2211	2018-12-13  David Edelsohn  <dje.gcc@gmail.com>
2212	PR target/61976
2213	* config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates
2214	in FPRs on AIX. Ensure type is non-NULL.
2215	(rs6000_arg_partial_bytes): Same.
2216
22172019-05-14  Martin Liska  <mliska@suse.cz>
2218
2219	Backport from mainline
2220	2019-05-13  Martin Liska  <mliska@suse.cz>
2221
2222	PR gcov-profile/90380
2223	* gcov.c (handle_cycle): Do not support zero cycle count,
2224	it should not be possible.
2225	(path_contains_zero_cycle_arc): New function.
2226	(circuit): Ignore zero cycle arc counts.
2227
22282019-05-14  Martin Liska  <mliska@suse.cz>
2229
2230	Backport from mainline
2231	2019-05-13  Martin Liska  <mliska@suse.cz>
2232
2233	PR gcov-profile/90380
2234	* gcov.c (enum loop_type): Remove the enum and
2235	the operator.
2236	(handle_cycle): Assert that we should not reach
2237	a negative count.
2238	(circuit): Use loop_found instead of a tri-state loop_type.
2239	(get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
2240	happen.
2241
22422019-05-11  Andreas Tobler <andreast@gcc.gnu.org>
2243
2244	Backport from mainline.
2245	2019-04-25  Andreas Tobler  <andreast@gcc.gnu.org>
2246
2247	* config/i386/freebsd64.h: Add bits for 32-bit multilib support.
2248	* config/i386/t-freebsd64: New file.
2249	* config.gcc: Add the t-freebsd64 for multilib support.
2250
22512019-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2252
2253	Backport from mainline.
2254	2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2255
2256	PR target/89424
2257	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
2258	handling of V1TImode.
2259
22602019-05-06  Richard Biener  <rguenther@suse.de>
2261
2262	PR bootstrap/90359
2263	Backport from mainline
2264	2019-03-11  Jakub Jelinek  <jakub@redhat.com>
2265
2266	PR middle-end/89655
2267	PR bootstrap/89656
2268	* vr-values.c (vr_values::update_value_range): If
2269	old_vr->varying_p (), don't update it, make new_vr also VARYING
2270	and return false.
2271
22722019-05-03  Richard Biener  <rguenther@suse.de>
2273
2274	Backport from mainline
2275	2019-03-14  Richard Biener  <rguenther@suse.de>
2276
2277	PR middle-end/89698
2278	* fold-const.c (operand_equal_p): For INDIRECT_REF check
2279	that the access types are similar.
2280
2281	2019-03-07  Richard Biener  <rguenther@suse.de>
2282
2283	PR tree-optimization/89595
2284	* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
2285	stmt iterator as reference, take boolean output parameter to
2286	indicate whether the stmt was removed and thus the iterator
2287	already advanced.
2288	(dom_opt_dom_walker::before_dom_children): Re-iterate over
2289	stmts created by folding.
2290
2291	2019-03-14  Richard Biener  <rguenther@suse.de>
2292
2293	PR tree-optimization/89710
2294	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
2295	safe_dyn_cast.
2296
2297	2019-04-15  Richard Biener  <rguenther@suse.de>
2298
2299	PR tree-optimization/90071
2300	* tree-ssa-reassoc.c (init_range_entry): Do not pick up
2301	abnormal operands from def stmts.
2302
2303	2018-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2304
2305	PR target/86984
2306	* expr.c (expand_assignment): Assert that bitpos is positive.
2307	(store_field): Likewise
2308	(expand_expr_real_1): Make sure that bitpos is positive.
2309	* config/alpha/alpha.h (CONSTANT_ADDRESS_P): Avoid signed
2310	integer overflow.
2311
2312	2019-03-14  Richard Biener  <rguenther@suse.de>
2313
2314	PR target/89711
2315	* config/i386/i386.c (make_resolver_func): Properly set
2316	DECL_CONTEXT on the RESULT_DECL.
2317	* config/rs6000/rs6000.c (make_resolver_func): Likewise.
2318
23192019-04-30  Jakub Jelinek  <jakub@redhat.com>
2320
2321	Backported from mainline
2322	2019-04-24  Jakub Jelinek  <jakub@redhat.com>
2323
2324	PR target/90193
2325	* rtl.c (classify_insn): Return JUMP_INSN for asm goto.
2326	* emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
2327
2328	PR target/90187
2329	* config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
2330	a register if both if_true and if_false are MEMs.
2331
2332	PR tree-optimization/90208
2333	* tree-cfg.c (remove_bb): Move forced labels from removed bbs
2334	after labels of new_bb, not before them.
2335
2336	2019-04-16  Jakub Jelinek  <jakub@redhat.com>
2337
2338	PR rtl-optimization/90082
2339	* dce.c (can_delete_call): New function.
2340	(deletable_insn_p, mark_insn): Use it.
2341
2342	PR tree-optimization/90090
2343	* tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
2344	throw internally.
2345	(is_division_by_square): Likewise.  Formatting fix.
2346
2347	2019-04-12  Jakub Jelinek  <jakub@redhat.com>
2348
2349	PR rtl-optimization/89965
2350	* dce.c: Include rtl-iter.h.
2351	(struct check_argument_load_data): New type.
2352	(check_argument_load): New function.
2353	(find_call_stack_args): Check for loads from stack slots still tracked
2354	in sp_bytes and punt if any is found.
2355
2356	PR c/89946
2357	* varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
2358	and gcc_unreachable if it fails, just call tree_to_uhwi which
2359	verifies that too.  Test TREE_CHAIN instead of list_length > 1.
2360	Start warning message with a lower-case letter.  Formatting fixes.
2361
2362	PR rtl-optimization/90026
2363	* cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
2364	successors, look for BARRIERs inside of the whole BB_FOOTER chain
2365	rather than just at the start of it.  If e->src BB_FOOTER is not NULL
2366	in cfglayout mode, use emit_barrier_after_bb.
2367
2368	2019-04-11  Jakub Jelinek  <jakub@redhat.com>
2369
2370	PR rtl-optimization/89965
2371	* dce.c (sp_based_mem_offset): New function.
2372	(find_call_stack_args): Use sp_based_mem_offset.
2373
2374	2019-04-10  Jakub Jelinek  <jakub@redhat.com>
2375
2376	PR c++/90010
2377	* gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
2378	with strlen in between hostsz-3 and hostsz-1 inclusive when no
2379	translation is needed, and when translation is needed, only append
2380	... if the string length is hostsz or more bytes long.  Avoid using
2381	strncpy or strcat.
2382
2383	2019-04-09  Jakub Jelinek  <jakub@redhat.com>
2384
2385	PR tree-optimization/89998
2386	* gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
2387	instead of integer_type_node if possible, don't add ranges if return
2388	type is not compatible with int.
2389	* gimple-fold.c (gimple_fold_builtin_sprintf,
2390	gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
2391	integer_type_node.
2392
2393	2019-03-29  Jakub Jelinek  <jakub@redhat.com>
2394
2395	PR c/89872
2396	* gimplify.c (gimplify_compound_literal_expr): Don't optimize a
2397	non-addressable complit into its initializer if it is volatile.
2398
2399	2019-03-28  Jakub Jelinek  <jakub@redhat.com>
2400
2401	PR middle-end/89621
2402	* tree-inline.h (struct copy_body_data): Add
2403	dont_remap_vla_if_no_change flag.
2404	* tree-inline.c (remap_type_3, remap_type_2): New functions.
2405	(remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
2406	and remap_type_2 returns false.
2407	* omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
2408
2409	2019-03-20  Jakub Jelinek  <jakub@redhat.com>
2410
2411	PR target/89752
2412	* lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
2413	update this_alternative nor this_alternative_set.
2414
2415	2019-03-19  Jakub Jelinek  <jakub@redhat.com>
2416
2417	PR rtl-optimization/89768
2418	* loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
2419	instead of GEN_INT.
2420	(unroll_loop_runtime_iterations): Likewise.
2421
2422	PR target/89752
2423	* gimplify.c (gimplify_asm_expr): For output argument with
2424	TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
2425	diagnose error.
2426
2427	PR target/89726
2428	* config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
2429	compensation use x2 += 1 instead of x2 -= -1 and when honoring
2430	signed zeros, do another copysign after the compensation.
2431
2432	2019-03-15  Jakub Jelinek  <jakub@redhat.com>
2433
2434	PR debug/89704
2435	* dwarf2out.c (add_const_value_attribute): Return false for MINUS,
2436	SIGN_EXTEND and ZERO_EXTEND.
2437
2438	2019-03-14  Jakub Jelinek  <jakub@redhat.com>
2439
2440	PR ipa/89684
2441	* multiple_target.c (create_dispatcher_calls): Change
2442	references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
2443	In the node->iterate_referring loop, push *ref rather than ref, call
2444	ref->remove_reference () and always pass 0 to iterate_referring.
2445
2446	PR rtl-optimization/89679
2447	* expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
2448	would contain a paradoxical SUBREG.
2449
2450	PR tree-optimization/89703
2451	* tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
2452	aren't compatible also with builtin_decl_explicit.  Check pure
2453	or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
2454	and BUILT_IN_STPNCPY{,_CHK}.
2455
2456	2019-03-13  Jakub Jelinek  <jakub@redhat.com>
2457
2458	PR debug/89498
2459	* dwarf2out.c (size_of_die): For dw_val_class_view_list always use
2460	DWARF_OFFSET_SIZE.
2461	(value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
2462
2463	PR middle-end/88588
2464	* omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
2465	(ipa_simd_modify_function_body): Handle PHIs.
2466
2467	2019-03-12  Jakub Jelinek  <jakub@redhat.com>
2468
2469	PR middle-end/89663
2470	* builtins.c (expand_builtin_int_roundingfn,
2471	expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
2472	gcc_unreachable if validate_arglist fails.
2473
2474	2019-03-09  Jakub Jelinek  <jakub@redhat.com>
2475
2476	PR c/88568
2477	* attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
2478	dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
2479
2480	2019-03-05  Jakub Jelinek  <jakub@redhat.com>
2481
2482	PR target/89587
2483	* config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
2484	if_multiarch.
2485
2486	PR middle-end/89590
2487	* builtins.c (maybe_emit_free_warning): Punt if free doesn't have
2488	exactly one argument.
2489
2490	2019-02-28  Jakub Jelinek  <jakub@redhat.com>
2491
2492	PR c/89520
2493	* convert.c (convert_to_real_1, convert_to_integer_1): Punt for
2494	builtins if they don't have a single scalar floating point argument.
2495	Formatting fixes.
2496
2497	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
2498
2499	PR middle-end/89412
2500	* expr.c (expand_assignment): If result is a MEM, use change_address
2501	instead of simplify_gen_subreg.
2502
2503	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
2504		    David Malcolm  <dmalcolm@redhat.com>
2505
2506	PR middle-end/89091
2507	* fold-const.c (decode_field_reference): Return NULL_TREE if
2508	lang_hooks.types.type_for_size returns NULL.  Check it before
2509	overwriting *exp_.  Use return NULL_TREE instead of return 0.
2510
2511	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
2512
2513	PR middle-end/88074
2514	PR middle-end/89415
2515	* toplev.c (do_compile): Double the emin/emax exponents to workaround
2516	buggy mpc_norm.
2517
2518	2019-02-19  Richard Biener  <rguenther@suse.de>
2519
2520        PR middle-end/88074
2521	* toplev.c (do_compile): Initialize mpfr's exponent range
2522	based on available float modes.
2523
25242019-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2525
2526	Backport from mainline.
2527	2019-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2528	PR target/86538
2529	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
2530	Define __ARM_FEATURE_ATOMICS.
2531
25322019-04-30  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
2533
2534	Backport from mainline
2535	2018-12-11  Richard Earnshaw  <Richard.Earnshaw@arm.com>
2536
2537	PR target/37369
2538	* config/aarch64/iterators.md (sizem1): Add sizes for
2539	SFmode and DFmode.
2540	(Vbtype): Add SFmode mapping.
2541	* config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete.
2542	(copysign<GPF:mode>3): New expand pattern.
2543	(copysign<GPF:mode>3_insn): New insn pattern.
2544
25452019-04-29  Richard Sandiford  <richard.sandiford@arm.com>
2546
2547	Backport from mainline:
2548	2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
2549
2550	PR middle-end/89037
2551	* varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
2552	instead of accessing TREE_INT_CST_ELT directly.
2553
25542019-04-29  Richard Sandiford  <richard.sandiford@arm.com>
2555
2556	Backport from mainline:
2557	2018-08-23  Richard Sandiford  <richard.sandiford@arm.com>
2558
2559	PR target/85910
2560	* config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Fix
2561	aarch64_evpc_tbl guard.
2562
25632019-04-29  Richard Sandiford  <richard.sandiford@arm.com>
2564
2565	Backport from mainline:
2566	2019-03-08  Richard Sandiford  <richard.sandiford@arm.com>
2567
2568	PR debug/89631
2569	* dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
2570	instead of POLY_INT_CST.
2571
25722019-04-26  Roman Zhuykov  <zhroma@ispras.ru>
2573
2574	Backport from mainline
2575	2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>
2576
2577	PR rtl-optimization/87979
2578	* modulo-sched.c (sms_schedule): Start ii value "mii" should
2579	not equal zero.
2580
2581	PR rtl-optimization/84032
2582	* modulo-sched.c (ps_insn_find_column): Change condition so that
2583	branch will always be the last insn in a row inside partial
2584	schedule.
2585
25862019-04-19  Pat Haugen  <pthaugen@us.ibm.com>
2587
2588	Backport from mainline:
2589	2019-04-16  Pat Haugen  <pthaugen@us.ibm.com>
2590
2591	PR target/84369
2592	* config/rs6000/power9.md: Add store forwarding bypass.
2593
25942019-04-17  Martin Jambor  <mjambor@suse.cz>
2595
2596	Backport from mainline
2597	2019-03-10  Martin Jambor  <mjambor@suse.cz>
2598
2599        PR tree-optimization/85762
2600        PR tree-optimization/87008
2601        PR tree-optimization/85459
2602        * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
2603        it points to if there is a type changing MEM_REF.  Adjust all callers.
2604        (build_accesses_from_assign): Disable total scalarization if
2605        contains_vce_or_bfcref_p returns true through the new parameter, for
2606        both rhs and lhs.
2607
26082019-04-17  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2609
2610	Backport from mainline
2611	2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2612
2613	PR target/87532
2614	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2615	When handling vec_extract, use modular arithmetic to allow
2616	constant selectors greater than vector length.
2617	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
2618	V1TImode vectors to have constant selector values greater than 0.
2619	Use modular arithmetic to compute vector index.
2620	(rs6000_split_vec_extract_var): Use modular arithmetic to compute
2621	index for in-memory vectors.  Correct code generation for
2622	in-register vectors.  Use inner mode of vector rather than mode of
2623	destination for move instruction.
2624	(altivec_expand_vec_ext_builtin): Use modular arithmetic to
2625	compute index.
2626
2627	2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2628
2629	PR target/87532
2630	* config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
2631	Use QI inner mode with V16QI vector mode.
2632
26332019-04-15  Martin Jambor  <mjambor@suse.cz>
2634
2635	Backport from mainline
2636	2019-04-15  Martin Jambor  <mjambor@suse.cz>
2637
2638	PR ipa/89693
2639	* cgraph.c (clone_of_p): Loop over clone chain for each step in
2640	the thunk chain.
2641
26422019-04-15  Martin Liska  <mliska@suse.cz>
2643
2644	Backport from mainline
2645	2019-01-18  Martin Liska  <mliska@suse.cz>
2646		    Richard Biener  <rguenther@suse.de>
2647
2648	PR middle-end/88587
2649	* cgraph.h (create_version_clone_with_body): Add new argument
2650	with attributes.
2651	* cgraphclones.c (cgraph_node::create_version_clone): Add
2652	DECL_ATTRIBUTES to a newly created decl.  And call
2653	valid_attribute_p so that proper cl_target_optimization_node
2654	is set for the newly created declaration.
2655	* multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
2656	for declaration.
2657	(expand_target_clones): Do not call valid_attribute_p, it must
2658	be already done.
2659	* tree-inline.c (copy_decl_for_dup_finish): Reset mode for
2660	vector types.
2661
26622019-04-11  Richard Biener  <rguenther@suse.de>
2663
2664	PR tree-optimization/90018
2665	* tree-vect-data-refs.c (vect_preserves_scalar_order_p):
2666	Test both SLP and interleaving variants.
2667
26682019-04-10  Matthew Malcomson  <matthew.malcomson@arm.com>
2669
2670	PR target/90024
2671	* config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
2672	* config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
2673	into three.
2674	* config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
2675	differences directly.
2676	(*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
2677
26782019-04-07  Uroš Bizjak  <ubizjak@gmail.com>
2679
2680	PR target/89945
2681	* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
2682	Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
2683
26842019-04-04  Martin Sebor  <msebor@redhat.com>
2685
2686	PR middle-end/89934
2687	* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
2688	out if the number of arguments is less than expected.
2689
26902019-04-03  Richard Biener  <rguenther@suse.de>
2691
2692	PR lto/89896
2693	* lto-wrapper.c (run_gcc): Avoid implicit rules making
2694	the all target phony.
2695
26962019-04-02  Uroš Bizjak  <ubizjak@gmail.com>
2697
2698	PR target/89902
2699	PR target/89903
2700	* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
2701	Return false for variable DImode shifts.
2702	(dimode_scalar_chain::compute_convert_gain): Do not handle
2703	register count operand in variable DImode shifts.
2704	(dimode_scalar_chain::make_vector_copies): Remove support to copy
2705	count argument of a variable shift instruction to a vector register.
2706	(dimode_scalar_chain::convert_reg): Remove support to convert
2707	count argument of a variable shift instruction.
2708
27092019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
2710
2711	Backport from mainline
2712	2019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
2713		    Eric Botcazou  <ebotcazou@adacore.com>
2714
2715	PR rtl-optimization/89862
2716	* rtl.h (word_register_operation_p): Exclude CONST_INT from operations
2717	that operates on the full registers for WORD_REGISTER_OPERATIONS
2718	architectures.
2719
27202019-03-28  Uroš Bizjak  <ubizjak@gmail.com>
2721
2722	PR target/89848
2723	* config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
2724	Also process XEXP (src, 0) of a shift insn.
2725
27262019-03-28  Martin Liska  <mliska@suse.cz>
2727
2728	Backport from mainline
2729	2018-11-05  Martin Liska  <mliska@suse.cz>
2730
2731	PR web/87829
2732	* doc/invoke.texi: Remove options that are
2733	not disabled with -Os.
2734
27352019-03-26  Uroš Bizjak  <ubizjak@gmail.com>
2736
2737	PR target/89827
2738	* config/i386/i386.c (dimode_scalar_chain::convert_reg):
2739	Also process XEXP (src, 0) of a shift insn.
2740
27412019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>
2742
2743	Backport from mainline
2744	2019-03-20  Andreas Krebbel  <krebbel@linux.ibm.com>
2745
2746	PR target/89775
2747	* config/s390/s390.c (global_not_special_regno_p): Move to make it
2748	available to ...
2749	(s390_optimize_register_info): Use global_not_special_regno_p to
2750	check for global regs.
2751
27522019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>
2753
2754	Backport from mainline
2755	2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>
2756
2757	* config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
2758
27592019-03-21  Bill Schmidt  <wschmidt@linux.ibm.com>
2760
2761        Backport from mainline
2762        2019-03-08  Bill Schmidt  <wschmidt@linux.ibm.com>
2763
2764        * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
2765        ud- and du-chains between phases.
2766
27672019-03-19  Richard Biener  <rguenther@suse.de>
2768
2769	PR debug/88389
2770	* opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
2771
27722019-03-19  Eric Botcazou  <ebotcazou@adacore.com>
2773
2774	PR rtl-optimization/89753
2775	* loop-unroll.c (decide_unroll_constant_iterations): Make guard for
2776	explicit unrolling factor even more robust.
2777
27782019-03-18  Martin Sebor  <msebor@redhat.com>
2779
2780	PR middle-end/88273
2781	* gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
2782	Handle anti-ranges the same as no range at all.
2783
27842019-03-18  Martin Jambor  <mjambor@suse.cz>
2785
2786	Backport from mainline
2787	2019-03-18  Martin Jambor  <mjambor@suse.cz>
2788
2789	PR tree-optimization/89546
2790	* tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
2791	any propagation to its children took place.
2792
27932019-03-17  H.J. Lu  <hongjiu.lu@intel.com>
2794
2795	Backport from mainline
2796	2019-03-14  H.J. Lu  <hongjiu.lu@intel.com>
2797
2798	PR target/89523
2799	* config/i386/i386.c (ix86_print_operand): Handle 'M' to add
2800	addr32 prefix to VSIB address for X32.
2801	* config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
2802	"%M2" to opcode.
2803	(*avx512pf_gatherpf<mode>df_mask): Likewise.
2804	(*avx512pf_scatterpf<mode>sf_mask): Likewise.
2805	(*avx512pf_scatterpf<mode>df_mask): Likewise.
2806	(*avx2_gathersi<mode>): Prepend "%M3" to opcode.
2807	(*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
2808	(*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
2809	(*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
2810	(*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
2811	(*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
2812	(*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
2813	(*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
2814	(*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
2815	(*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
2816	(*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
2817	(*avx512f_scatterdi<mode>): Likewise.
2818
28192019-03-15  Richard Biener  <rguenther@suse.de>
2820
2821	Backport from mainline
2822	2018-11-30  Jakub Jelinek  <jakub@redhat.com>
2823
2824	PR testsuite/85368
2825	* params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param.
2826	* tree-ssa-ifcombine.c (ifcombine_ifandif): If
2827	--param logical-op-non-short-circuit is present, override
2828	LOGICAL_OP_NON_SHORT_CIRCUIT value from the param.
2829	* fold-const.c (fold_range_test, fold_truth_andor): Likewise.
2830
28312019-03-15  Martin Liska  <mliska@suse.cz>
2832
2833	PR other/89712
2834	* doc/invoke.texi: Remove -fdump-class-hierarchy option.
2835
28362019-03-14  Martin Jambor  <mjambor@suse.cz>
2837
2838	Backport from mainline
2839	2019-03-07  Martin Jambor  <mjambor@suse.cz>
2840
2841	PR lto/87525
2842	* ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
2843	for extern inline functions.
2844
28452019-03-14  Richard Biener  <rguenther@suse.de>
2846
2847	PR middle-end/89572
2848	* tree-scalar-evolution.c (get_loop_exit_condition): Use
2849	safe_dyn_cast.
2850	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
2851	Use gimple_location_safe.
2852
28532019-03-13  Vladimir Makarov  <vmakarov@redhat.com>
2854
2855	PR target/85860
2856	* lra-constraints.c (inherit_in_ebb): Update
2857	potential_reload_hard_regs along with live_hard_regs.
2858
28592019-03-14  Richard Biener  <rguenther@suse.de>
2860
2861	Backport from mainline
2862	2019-03-13  Richard Biener  <rguenther@suse.de>
2863
2864	PR middle-end/89677
2865	* tree-scalar-evolution.c (simplify_peeled_chrec): Do not
2866	throw FP expressions at tree-affine.
2867
2868	2019-03-01  Richard Biener  <rguenther@suse.de>
2869
2870	PR middle-end/89497
2871	* tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
2872	argument, defaulted to zero.
2873	* passes.c (execute_function_todo): Pass down SSA update flags
2874	to cleanup_tree_cfg.
2875	* tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
2876	(cleanup_tree_cfg_1): After cleanup_control_flow_pre update SSA
2877	form if requested.
2878	(cleanup_tree_cfg_noloop): Pass down SSA update flags.
2879	(cleanup_tree_cfg): Get and pass down SSA update flags.
2880
2881	2019-02-18  Richard Biener  <rguenther@suse.de>
2882
2883	PR tree-optimization/89296
2884	* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
2885	of no-warning flag to cases that might emit the bogus warning.
2886
28872019-03-13  Andreas Krebbel  <krebbel@linux.ibm.com>
2888
2889	Backport from mainline
2890	2019-03-11  Andreas Krebbel  <krebbel@linux.ibm.com>
2891
2892	* config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
2893	only on the else branch.
2894
28952019-03-13  Andreas Krebbel  <krebbel@linux.ibm.com>
2896
2897	Backport from mainline
2898	2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
2899
2900	* config/s390/s390-builtin-types.def: Add new types.
2901	* config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
2902	(s390_vec_xlw4): Make the memory operand into a const pointer.
2903	(s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
2904	float.
2905	* config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
2906	a new vector type with the alignment of the scalar memory operand.
2907
29082019-03-12  Richard Biener  <rguenther@suse.de>
2909
2910	PR tree-optimization/89664
2911	* tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
2912	free the occurance tree after the early out.
2913
29142019-03-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2915
2916	Backport from mainline
2917	2019-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2918
2919	* config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
2920	requirement.
2921
29222019-03-11  Eric Botcazou  <ebotcazou@adacore.com>
2923
2924	PR rtl-optimization/89588
2925	* loop-unroll.c (decide_unroll_constant_iterations): Make guard for
2926	explicit unrolling factor more robust.
2927
29282019-03-11  Martin Liska  <mliska@suse.cz>
2929
2930	Backport from mainline
2931	2019-03-08  Martin Liska  <mliska@suse.cz>
2932
2933	PR target/86952
2934	* config/i386/i386.c (ix86_option_override_internal): Disable
2935	jump tables when retpolines are used.
2936
29372019-03-11  Martin Liska  <mliska@suse.cz>
2938
2939	Backport from mainline
2940	2019-02-11  David Malcolm  <dmalcolm@redhat.com>
2941
2942	PR lto/88147
2943	* input.c (selftest::test_line_offset_overflow): New selftest.
2944	(selftest::input_c_tests): Call it.
2945
29462019-03-08  Martin Jambor  <mjambor@suse.cz>
2947
2948	Backport from mainline
2949	2019-03-07  Martin Jambor  <mjambor@suse.cz>
2950
2951	PR ipa/88235
2952	* cgraph.h (cgraph_node): New inline method former_thunk_p.
2953	* cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
2954	(clone_of_p): Treat expanded thunks like thunks, be optimistic if they
2955	have multiple callees.  At the end check if declarations match as
2956	opposed to cgraph_nodes.
2957
29582019-03-06  Tamar Christina  <tamar.christina@arm.com>
2959
2960	Backport from trunk.
2961	2019-02-25  Tamar Christina  <tamar.christina@arm.com>
2962
2963	PR target/88530
2964	* common/config/aarch64/aarch64-common.c
2965	(struct aarch64_option_extension): Add is_synthetic.
2966	(all_extensions): Use it.
2967	(TARGET_OPTION_INIT_STRUCT): Define hook.
2968	(struct gcc_targetm_common): Moved to end.
2969	(all_extensions_by_on): New.
2970	(opt_ext_cmp, typedef opt_ext): New.
2971	(aarch64_option_init_struct): New.
2972	(aarch64_contains_opt): New.
2973	(aarch64_get_extension_string_for_isa_flags): Output smallest set.
2974	* config/aarch64/aarch64-option-extensions.def
2975	(AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
2976	(fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
2977	sm4, fp16fml, sve):
2978	Set is_synthetic to false.
2979	(crypto): Set is_synthetic to true.
2980	* config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
2981	SYNTHETIC.
2982
29832019-03-06  Tamar Christina  <tamar.christina@arm.com>
2984
2985	Backport from trunk.
2986	2019-02-28  Tamar Christina  <tamar.christina@arm.com>
2987
2988	PR target/88530
2989	* config/aarch64/aarch64-option-extensions.def: Document it.
2990	* config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
2991	if empty hwcaps.
2992
29932019-03-06  Xiong Hu Luo  <luoxhu@linux.ibm.com>
2994
2995	Backport of r268834 from mainline to gcc-8-branch.
2996	2019-02-13  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
2997
2998	* config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
2999	vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
3000	* config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
3001	(crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
3002	* config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
3003	(VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
3004	New BU_CRYPTO_2.
3005	* config/rs6000/rs6000.c (builtin_function_type)
3006	<CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
3007	CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
3008	CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
3009	* doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
3010	vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
3011
30122019-03-05  Richard Biener  <rguenther@suse.de>
3013
3014	Backport from mainline
3015	2019-02-26  Richard Biener  <rguenther@suse.de>
3016
3017	PR tree-optimization/89505
3018	* tree-ssa-structalias.c (compute_dependence_clique): Make sure
3019	to handle restrict pointed-to vars with multiple subvars
3020	correctly.
3021
30222019-03-01  Tamar Christina  <tamar.christina@arm.com>
3023
3024	PR target/89517
3025	* config/aarch64/aarch64-option-extensions.def (fp, simd, crypto,
3026	fp16): Collapse line.
3027
30282019-03-01  Richard Biener  <rguenther@suse.de>
3029
3030	Backport from mainline
3031	2019-03-01  Jakub Jelinek  <jakub@redhat.com>
3032
3033	PR bootstrap/89539
3034	* dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
3035	early_lto_debug argument.
3036
3037	2019-02-27  Richard Biener  <rguenther@suse.de>
3038
3039	PR debug/88878
3040	* dwarf2out.c (use_debug_types): Disable when in_lto_p.
3041
3042	2019-02-27  Richard Biener  <rguenther@suse.de>
3043
3044	PR debug/88878
3045	* dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
3046	parameter, prefix section name with .gnu.debuglto_ if true.
3047	(dwarf2out_finish): Pass false to output_comdat_type_unit.
3048	(dwarf2out_early_finish): Pass true to output_comdat_type_unit.
3049
3050	2019-02-27  Richard Biener  <rguenther@suse.de>
3051
3052	PR debug/89514
3053	* dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
3054	rather than on use_debug_types, doing what output_die does.
3055	(value_format): Likewise.
3056
30572019-02-28  Eric Botcazou  <ebotcazou@adacore.com>
3058
3059	PR tree-optimization/89536
3060	* tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
3061	only whether bit #0 of the value is 0 instead of the entire value.
3062
30632019-02-28  Li Jia He  <helijia@linux.ibm.com>
3064
3065	Backport from trunk
3066	2019-02-20  Li Jia He  <helijia@linux.ibm.com>
3067
3068	PR target/88100
3069	* gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
3070	<case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
3071	ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
3072	range checking it.
3073
30742019-02-27  Uroš Bizjak  <ubizjak@gmail.com>
3075
3076	PR target/89397
3077	* config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
3078	TARGET_SSE in addition to TARGET_SSE_MATH.
3079
3080	(ix86_excess_precision): Ditto.
3081	(ix86_float_exceptions_rounding_supported_p): Ditto.
3082	(use_rsqrt_p): Ditto.
3083	* config/i386/sse.md (rsqrt<mode>2): Ditto.
3084
30852019-02-27  Jakub Jelinek  <jakub@redhat.com>
3086
3087	Backported from mainline
3088	2019-02-18  Jakub Jelinek  <jakub@redhat.com>
3089
3090	PR target/89361
3091	* config/s390/s390.c (s390_indirect_branch_attrvalue,
3092	s390_indirect_branch_settings): Define unconditionally.
3093	(s390_set_current_function): Likewise, but guard the whole body except
3094	the s390_indirect_branch_settings call with
3095	#if S390_USE_TARGET_ATTRIBUTE.
3096	(TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
3097
30982019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
3099
3100	Backport from mainline
3101	2019-02-19  Eric Botcazou  <ebotcazou@adacore.com>
3102
3103	* rtlanal.c (get_initial_register_offset): Fall back to the estimate
3104	as long as the epilogue isn't completed.
3105
31062019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
3107
3108	* tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
3109	and move around comment.
3110	<BIT_AND_EXPR>: Likewise.
3111	<BIT_NOT_EXPR>: Add specific handling for boolean types.
3112
31132019-02-24  Alan Modra  <amodra@gmail.com>
3114
3115	PR target/89271
3116	* config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
3117	output reg on add insn.
3118	(<bd>tf_<mode> split): Likewise.  Match predicates with insn.
3119
31202019-02-22  Jakub Jelinek  <jakub@redhat.com>
3121
3122	* BASE-VER: Set to 8.3.1.
3123
31242019-02-22  Release Manager
3125
3126	* GCC 8.3.0 released.
3127
31282019-02-15  Richard Biener  <rguenther@suse.de>
3129	    Jakub Jelinek  <jakub@redhat.com>
3130
3131	PR tree-optimization/89278
3132	* tree-loop-distribution.c: Include tree-eh.h.
3133	(generate_memset_builtin, generate_memcpy_builtin): Call
3134	rewrite_to_non_trapping_overflow on builtin->size before passing it
3135	to force_gimple_operand_gsi.
3136
31372019-02-15  Jakub Jelinek  <jakub@redhat.com>
3138
3139	PR other/89342
3140	* optc-save-gen.awk: Handle optimize_fast like optimize_size or
3141	optimize_debug.
3142	* opth-gen.awk: Likewise.
3143
31442019-02-14  David Malcolm  <dmalcolm@redhat.com>
3145
3146	Backport of r267957 from trunk.
3147	2019-01-15  David Malcolm  <dmalcolm@redhat.com>
3148
3149	PR c++/88795
3150	* tree.c (build_function_type): Assert that arg_types is not
3151	error_mark_node.
3152
31532019-02-14  Jakub Jelinek  <jakub@redhat.com>
3154
3155	PR rtl-optimization/89354
3156	* combine.c (make_extraction): Punt if extraction_mode is narrower
3157	than len bits.
3158
31592019-02-14  David Malcolm  <dmalcolm@redhat.com>
3160
3161	Backport of r263339 from trunk.
3162	2018-08-06  David Malcolm  <dmalcolm@redhat.com>
3163
3164	* function-tests.c (selftest::test_expansion_to_rtl): Call
3165	free_after_compilation.
3166
31672019-02-14  David Malcolm  <dmalcolm@redhat.com>
3168
3169	Backport of r263295 from trunk.
3170	2018-08-03  David Malcolm  <dmalcolm@redhat.com>
3171
3172	* doc/gcov.texi (-x): Remove duplicate "to".
3173	* doc/invoke.texi (-Wnoexcept-type): Remove duplicate "calls".
3174	(-Wif-not-aligned): Remove duplicate "is".
3175	(-flto): Remove duplicate "the".
3176	(MicroBlaze Options): In examples of "-mcpu=cpu-type", remove
3177	duplicate "v5.00.b".
3178	(MSP430 Options): Remove duplicate "and" from the description
3179	of "-mgprel-sec=regexp".
3180	(x86 Options): Remove duplicate copies of "vmldLog102" and
3181	vmlsLog104 from description of "-mveclibabi=type".
3182
31832019-02-14  David Malcolm  <dmalcolm@redhat.com>
3184
3185	Backport of r263275 from trunk.
3186	2018-08-02  David Malcolm  <dmalcolm@redhat.com>
3187
3188	* diagnostic-show-locus.c (diagnostic_show_locus): Use
3189	pp_take_prefix when saving the existing prefix.
3190	* diagnostic.c (diagnostic_append_note): Likewise.
3191	* langhooks.c (lhd_print_error_function): Likewise.
3192	* pretty-print.c (pp_set_prefix): Drop the "const" from "prefix"
3193	param's type.  Free the existing prefix.
3194	(pp_take_prefix): New function.
3195	(pretty_printer::pretty_printer): Drop the prefix parameter.
3196	Rename the length parameter to match the comment.
3197	(pretty_printer::~pretty_printer): Free the prefix.
3198	* pretty-print.h (pretty_printer::pretty_printer): Drop the prefix
3199	parameter.
3200	(struct pretty_printer): Drop the "const" from "prefix" field's
3201	type and clarify memory management.
3202	(pp_set_prefix): Drop the "const" from the 2nd param.
3203	(pp_take_prefix): New decl.
3204
32052019-02-14  Segher Boessenkool  <segher@kernel.crashing.org>
3206
3207	Backport from trunk
3208	2018-08-31  Segher Boessenkool  <segher@kernel.crashing.org>
3209
3210	PR target/86684
3211	PR target/87149
3212	* config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND.
3213
32142019-02-14  Segher Boessenkool  <segher@kernel.crashing.org>
3215
3216	Backport from trunk
3217	2019-01-18  Segher Boessenkool  <segher@kernel.crashing.org>
3218
3219	PR target/88892
3220	* config/rs6000/rs6000.md (*movsi_from_df): Allow only register
3221	operands.
3222
32232019-02-14  Segher Boessenkool  <segher@kernel.crashing.org>
3224
3225	Backport from trunk
3226	2018-07-26  Segher Boessenkool  <segher@kernel.crashing.org>
3227
3228	PR rtl-optimization/85805
3229	* combine.c (reg_nonzero_bits_for_combine): Only use the last set
3230	value for hard registers if that was written in the same mode.
3231
32322019-02-14  Martin Liska  <mliska@suse.cz>
3233
3234	Backport from mainline
3235	2019-02-14  Martin Liska  <mliska@suse.cz>
3236
3237	PR rtl-optimization/89242
3238	* dce.c (delete_unmarked_insns): Call free_dominance_info we
3239	process a transformation.
3240
32412019-02-14  Martin Liska  <mliska@suse.cz>
3242
3243	Backport from mainline
3244	2019-02-13  Martin Liska  <mliska@suse.cz>
3245
3246	PR lto/88858
3247	* cfgrtl.c (remove_barriers_from_footer): New function.
3248	(try_redirect_by_replacing_jump): Use it.
3249	(cfg_layout_redirect_edge_and_branch): Likewise.
3250
32512019-02-14  Martin Liska  <mliska@suse.cz>
3252
3253	Backport from mainline
3254	2019-02-11  Martin Liska  <mliska@suse.cz>
3255
3256	PR ipa/89009
3257	* ipa-cp.c (build_toporder_info): Remove usage of a param.
3258	* ipa-inline.c (inline_small_functions): Likewise.
3259	* ipa-pure-const.c (propagate_pure_const): Likewise.
3260	(propagate_nothrow): Likewise.
3261	* ipa-reference.c (propagate): Likewise.
3262	* ipa-utils.c (struct searchc_env): Remove unused field.
3263	(searchc): Always search across AVAIL_INTERPOSABLE.
3264	(ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
3265	the only called IPA pure const can properly not propagate
3266	across interposable boundary.
3267	* ipa-utils.h (ipa_reduced_postorder): Remove param.
3268
32692019-02-14  Jakub Jelinek  <jakub@redhat.com>
3270
3271	PR tree-optimization/89314
3272	* fold-const.c (fold_binary_loc): Cast strlen argument to
3273	const char * before dereferencing it.  Formatting fixes.
3274
3275	Backported from mainline
3276	2019-02-13  Jakub Jelinek  <jakub@redhat.com>
3277
3278	PR middle-end/89303
3279	* tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
3280	into pt->vars_contains_escaped_heap instead of setting
3281	pt->vars_contains_escaped_heap to it.
3282
3283	PR middle-end/89281
3284	* optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
3285	INTVAL (size), compare it to GET_MODE_MASK instead of
3286	1 << GET_MODE_BITSIZE.
3287
3288	PR target/89290
3289	* config/i386/predicates.md (x86_64_immediate_operand): Allow
3290	TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
3291	-mcmodel=large.
3292
3293	2019-02-09  Jakub Jelinek  <jakub@redhat.com>
3294
3295	PR middle-end/89246
3296	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3297	If !node->definition and TYPE_ARG_TYPES is non-NULL, use
3298	TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
3299
33002019-02-13  Bill Schmidt  <wschmidt@linux.ibm.com>
3301
3302        Backport from mainline
3303        2019-02-11  Bill Schmidt  <wschmidt@linux.ibm.com>
3304
3305        * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
3306        and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
3307        for correct semantics.
3308
33092019-02-13  Richard Biener  <rguenther@suse.de>
3310
3311	Backport from mainline
3312	2019-01-08  Richard Biener  <rguenther@suse.de>
3313
3314	PR tree-optimization/86554
3315	* tree-ssa-sccvn.c (visit_nary_op): When value-numbering to
3316	expressions with different overflow behavior make sure there's an
3317	available expression on the path.
3318
33192019-02-13  Martin Liska  <mliska@suse.cz>
3320
3321	PR lto/89260
3322	* lto-streamer.h (LTO_minor_version): Bump version due
3323	to r268698.
3324
33252019-02-13  Richard Biener  <rguenther@suse.de>
3326
3327	Backport from mainline
3328	2019-02-12  Richard Biener  <rguenther@suse.de>
3329
3330	PR tree-optimization/89253
3331	* tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
3332	duplicate the loop.
3333
3334	2019-02-08  Richard Biener  <rguenther@suse.de>
3335
3336	PR middle-end/89223
3337	* tree-data-ref.c (initialize_matrix_A): Fail if constant
3338	doesn't fit in HWI.
3339	(analyze_subscript_affine_affine): Handle failure from
3340	initialize_matrix_A.
3341
3342	2019-01-28  Richard Biener  <rguenther@suse.de>
3343
3344	PR tree-optimization/88739
3345	* tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
3346	BIT_FIELD_REFs of non-mode-precision integral operands.
3347
33482019-02-12  Jan Hubicka  <hubicka@ucw.cz>
3349
3350	Backport from mainline:
3351	2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
3352
3353	* ipa-visibility.c (localize_node): Also do not localize
3354	LDPR_PREVAILING_DEF_IRONLY_EXP.
3355
33562019-02-11  Stefan Agner  <stefan@agner.ch>
3357
3358	Backport from mainline.
3359	2019-01-10  Stefan Agner  <stefan@agner.ch>
3360
3361	PR target/88648
3362	* config/arm/arm.c (arm_option_override_internal): Force
3363	opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
3364
33652019-02-09  Jan Hubicka  <hubicka@ucw.cz>
3366
3367	Backport from mainline:
3368	2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
3369
3370	PR tree-opt/86020
3371	Revert:
3372	2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
3373
3374        * ipa-inline.c (edge_badness): Use inlined_time instead of
3375        inline_summaries->get.
3376
33772019-02-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
3378
3379	Backported from mainline
3380	2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
3381
3382	PR target/89112
3383	* config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
3384	for the long branch case.
3385
3386	2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
3387
3388	PR target/89112
3389	* config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
3390	expand_compare_loop, expand_block_compare_gpr,
3391	expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
3392	REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
3393	#include "profile-count.h" and "predict.h" for types and functions
3394	needed to work with REG_BR_PROB notes.
3395
3396	2019-02-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
3397
3398	* config/rs6000/rs6000-string.c (expand_compare_loop,
3399	expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
3400	memcmp/strncmp.
3401
34022019-02-09  Jakub Jelinek  <jakub@redhat.com>
3403
3404	Backported from mainline
3405	2019-01-16  David Malcolm  <dmalcolm@redhat.com>
3406
3407	PR target/88861
3408	* combine.c (delete_noop_moves): Convert to "bool" return,
3409	returning true if any edges are eliminated.
3410	(combine_instructions): Also return true if delete_noop_moves
3411	returns true.
3412
3413	2019-02-08  Jakub Jelinek  <jakub@redhat.com>
3414
3415	PR rtl-optimization/89234
3416	* except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
3417	is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
3418	(copy_reg_eh_region_note_backward): Likewise.
3419
34202019-02-09  Alan Modra  <amodra@gmail.com>
3421
3422	PR target/88343
3423	* config/rs6000/rs6000.c (save_reg_p): Match logic in
3424	rs6000_emit_prologue emitting pic_offset_table setup.
3425
34262019-02-08  Richard Biener  <rguenther@suse.de>
3427
3428	Backport from mainline
3429	2018-11-13  Richard Biener  <rguenther@suse.de>
3430
3431	PR tree-optimization/86991
3432	* tree-vect-loop.c (vect_is_slp_reduction): Delay reduction
3433	group building until we have successfully detected the SLP
3434	reduction.
3435	(vect_is_simple_reduction): Remove fixup code here.
3436
34372019-02-08  Richard Biener  <rguenther@suse.de>
3438
3439	Backport from mainline
3440	2019-02-03  Richard Biener  <rguenther@suse.de>
3441
3442	PR debug/87295
3443	* dwarf2out.c (copy_ancestor_tree): Register non-stubs as
3444	orig.
3445
3446	2019-01-29  Richard Biener  <rguenther@suse.de>
3447
3448	PR debug/87295
3449	* dwarf2out.c (collect_skeleton_dies): New helper.
3450	(copy_decls_for_unworthy_types): Call it.
3451	(build_abbrev_table): Do not try to replace
3452	DW_AT_signature refs with local refs.
3453
3454	2019-01-17  Richard Biener  <rguenther@suse.de>
3455
3456	PR lto/86736
3457	* dwarf2out.c (want_pubnames): Never generate pubnames sections
3458	and friends for the LTO part of debug info.
3459
3460	2019-01-24  Richard Biener  <rguenther@suse.de>
3461
3462	PR lto/87187
3463	* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
3464	When in "legacy" debug mode make sure to reset self-origins.
3465
3466	2019-01-15  Richard Biener  <rguenther@suse.de>
3467
3468	PR debug/88046
3469	* dwarf2out.c (gen_member_die): Do not generate inheritance
3470	DIEs late.
3471
3472	2018-11-22  Richard Biener  <rguenther@suse.de>
3473
3474	PR lto/87229
3475	PR lto/88112
3476	* lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs
3477	which can appear in size expressions.
3478	* tree-streamer-in.c (unpack_ts_base_value_fields): Stream
3479	CALL_EXPR_BY_DESCRIPTOR.
3480	(streamer_read_tree_bitfields): Stream CALL_EXPR_IFN.
3481	* tree-streamer-out.c (pack_ts_base_value_fields): Stream
3482	CALL_EXPR_BY_DESCRIPTOR.
3483	(streamer_write_tree_bitfields): Stream CALL_EXPR_IFN.
3484
34852019-02-08  Christophe Lyon  <christophe.lyon@linaro.org>
3486
3487	Backport from mainline
3488	2019-01-07  Christophe Lyon  <christophe.lyon@linaro.org>
3489
3490	PR target/85596
3491	* doc/install.texi (with-multilib-list): Document for aarch64.
3492
34932019-02-08  Richard Biener  <rguenther@suse.de>
3494
3495	Backport from mainline
3496	2018-12-10  Richard Biener  <rguenther@suse.de>
3497
3498	PR tree-optimization/88427
3499	* vr-values.c (vr_values::extract_range_from_phi_node):
3500	Handle symbolic ranges conservatively when trying to drop
3501	to Inf +- 1.
3502
3503	2018-11-28  Richard Biener  <rguenther@suse.de>
3504
3505	PR tree-optimization/88217
3506	* vr-values.c (vr_values::extract_range_from_phi_node): Make
3507	sure to handle results > +INF and < -INF correctly when
3508	trying to drop down to +INF - 1 or -INF + 1.
3509
3510	2018-11-23  Richard Biener  <rguenther@suse.de>
3511
3512	PR tree-optimization/88149
3513	* tree-vect-slp.c (vect_slp_analyze_node_operations): Detect
3514	the case where there are two different def types for the
3515	same operand at different operand position in the same stmt.
3516
35172019-02-07  Jakub Jelinek  <jakub@redhat.com>
3518
3519	Backported from mainline
3520	2019-02-05  Jakub Jelinek  <jakub@redhat.com>
3521
3522	PR target/89188
3523	* dce.c (delete_unmarked_insns): Don't remove no-op moves if they
3524	can throw, non-call exceptions are enabled and we can't delete
3525	dead exceptions or alter cfg.  Set must_clean if
3526	delete_insn_and_edges returns true, don't set it blindly for calls.
3527
3528	PR rtl-optimization/89195
3529	* combine.c (make_extraction): For MEMs, don't extract bytes outside
3530	of the original MEM.
3531
3532	PR target/89186
3533	* optabs.c (prepare_cmp_insn): Pass x and y to
3534	emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
3535
3536	2019-02-02  Jakub Jelinek  <jakub@redhat.com>
3537
3538	PR middle-end/87887
3539	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3540	Punt with warning on aggregate return or argument types.  Ignore
3541	type/mode checking for uniform arguments.
3542
3543	2019-02-01  Jakub Jelinek  <jakub@redhat.com>
3544
3545	PR tree-optimization/88107
3546	* tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
3547	instead of assertion that eh_region_outermost is non-NULL, if it
3548	is NULL, set *ALL to true and return NULL.
3549	(move_sese_region_to_fn): Adjust caller, if all is set, call
3550	duplicate_eh_regions with NULL region.
3551
3552	2019-01-31  Jakub Jelinek  <jakub@redhat.com>
3553
3554	PR sanitizer/89124
3555	* ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
3556	always_inline callees into no_sanitize_address callers.
3557
3558	2019-01-30  Jakub Jelinek  <jakub@redhat.com>
3559
3560	PR c++/89105
3561	* config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
3562	for arguments to functions that are TU-local and shouldn't be
3563	referenced by assembly.
3564
3565	2019-01-29  Jakub Jelinek  <jakub@redhat.com>
3566
3567	PR c++/66676
3568	PR ipa/89104
3569	* omp-simd-clone.c (simd_clone_clauses_extract)
3570	<case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
3571	OMP_CLAUSE_ALIGNED_ALIGNMENT.
3572
3573	2019-01-28  Jakub Jelinek  <jakub@redhat.com>
3574
3575	PR middle-end/89002
3576	* gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
3577	for lastprivate/linear IV, push gimplify context around gimplify_assign
3578	and, if it needed any temporaries, pop it into a gimple bind around the
3579	sequence.
3580
3581	PR target/89073
3582	* doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
3583	-madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
3584	x86 ISA options.
3585	(bmi2): Add missing @opindex.
3586	* doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
3587	options alphabetically.  Add missing 3dnow, 3dnowa, adx, avx, avx2,
3588	avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
3589	avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
3590	avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
3591	clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
3592	fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
3593	pku, prefetchwt1, prfchw, rdpid, rdrnd, rdseed, rtm, sahf,
3594	sgx, sha, shstk, tbm, vaes, vpclmulqdq, wbnoinvd, xsave,
3595	xsavec, xsaveopt and xsaves options.
3596
3597	2019-01-27  Jakub Jelinek  <jakub@redhat.com>
3598
3599	PR target/87214
3600	* config/i386/sse.md
3601	(<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
3602	avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
3603	first constants in pairs are multiples of 2.  Formatting fixes.
3604	(avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
3605	avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
3606	first constants in each quadruple are multiples of 4.  Formatting fixes.
3607
3608	2019-01-24  Jakub Jelinek  <jakub@redhat.com>
3609
3610	PR tree-optimization/88964
3611	* gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
3612	punt if HONOR_SNANS (chrec).
3613
3614	2019-01-23  Jakub Jelinek  <jakub@redhat.com>
3615
3616	PR tree-optimization/88964
3617	* gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
3618	build_zero_cst instead of build_int_cst.  Return false for loop
3619	invariants which honor signed zeros.
3620
3621	2019-01-22  Jakub Jelinek  <jakub@redhat.com>
3622
3623	PR target/88965
3624	* config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
3625	(rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
3626	is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
3627
3628	PR middle-end/88968
3629	* gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
3630	non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
3631
3632	PR target/88905
3633	* optabs.c (add_equal_note): Add op0_mode argument, use it instead of
3634	GET_MODE (op0).
3635	(expand_binop_directly, expand_doubleword_clz,
3636	expand_doubleword_popcount, expand_ctz, expand_ffs,
3637	expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
3638
3639	PR rtl-optimization/49429
3640	PR target/49454
3641	PR rtl-optimization/86334
3642	PR target/88906
3643	* expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
3644	addressable from here...
3645	(emit_block_op_via_libcall): ... to here.
3646
3647	2019-01-17  Jakub Jelinek  <jakub@redhat.com>
3648
3649	PR target/88734
3650	* config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
3651	(("..."))) with ("...").  Use arch=armv8.2-a+sha3 instead of
3652	arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
3653
3654	PR rtl-optimization/88870
3655	* dce.c (deletable_insn_p): Never delete const/pure calls that can
3656	throw if we can't alter the cfg or delete dead exceptions.
3657	(mark_insn): Don't call find_call_stack_args for such calls.
3658
3659	2019-01-11  Jakub Jelinek  <jakub@redhat.com>
3660
3661	PR bootstrap/88714
3662	* passes.c (finish_optimization_passes): Call print_combine_total_stats
3663	inside of pass_combine_1 dump rather than pass_profile_1.
3664
3665	2019-01-10  Jakub Jelinek  <jakub@redhat.com>
3666
3667	PR c/88568
3668	* attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
3669	DECL_EXTERNAL.
3670
3671	2019-01-07  Jakub Jelinek  <jakub@redhat.com>
3672
3673	PR debug/88723
3674	* dwarf2out.c (const_ok_for_output_1): Remove redundant call to
3675	const_not_ok_for_debug_p target hook.
3676	(mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
3677	on UNSPEC and subexpressions thereof if all subexpressions of the
3678	UNSPEC are CONSTANT_P.
3679
3680	2019-01-05  Jakub Jelinek  <jakub@redhat.com>
3681
3682	PR debug/88635
3683	* dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
3684	SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
3685	Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
3686	subexpressions of both operands.
3687	(mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
3688	subrtxes are CONSTANT_P.
3689
36902019-02-07  Richard Biener  <rguenther@suse.de>
3691
3692	Backport from mainline
3693	2018-11-20  Richard Biener  <rguenther@suse.de>
3694
3695	PR tree-optimization/88105
3696	* tree-ssa-dom.c (pass_dominator::execute): Do not walk
3697	backedges.
3698
3699	2018-11-28  Richard Biener  <rguenther@suse.de>
3700
3701	PR tree-optimization/88223
3702	* tree-ssa-sccvn.c (vn_reference_lookup_3): When skipping
3703	over a stored-same value may-alias store make sure to consider
3704	partial overlaps which are valid when TBAA reasonings do not
3705	apply and byte-granular overlaps are possible at all.
3706
37072019-02-07  Richard Biener  <rguenther@suse.de>
3708
3709	Backport from mainline
3710	2018-12-11  Richard Biener  <rguenther@suse.de>
3711
3712	PR middle-end/88448
3713	PR middle-end/88415
3714	* tree-complex.c (update_complex_assignment): Properly transfer
3715	or clean EH info around gimple_assign_set_rhs_with_ops.
3716
3717	2018-11-15  Richard Biener  <rguenther@suse.de>
3718
3719	PR tree-optimization/88030
3720	* tree-complex.c (need_eh_cleanup): New global.
3721	(update_complex_assignment): Mark blocks that need EH update.
3722	(expand_complex_comparison): Likewise.
3723	(tree_lower_complex): Allocate and deallocate need_eh_cleanup,
3724	perform EH cleanup and schedule CFG cleanup if that did anything.
3725
3726	2018-11-08  Richard Biener  <rguenther@suse.de>
3727
3728	PR tree-optimization/87929
3729	* tree-complex.c (expand_complex_comparison): Clean EH.
3730
37312019-02-06  Eric Botcazou  <ebotcazou@adacore.com>
3732
3733	* config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
3734	after restoring registers saved to allocate the frame on Windows.
3735
37362019-02-06  Richard Biener  <rguenther@suse.de>
3737
3738	Backport from mainline
3739	2019-01-31  Richard Biener  <rguenther@suse.de>
3740
3741	PR tree-optimization/89135
3742	* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
3743	with abnormal preds.
3744
3745	2019-01-18  Richard Biener  <rguenther@suse.de>
3746
3747	PR tree-optimization/88903
3748	* tree-vect-stmts.c (vectorizable_shift): Verify we see all
3749	scalar stmts a SLP shift amount is composed of when detecting
3750	shifts by scalars.
3751
37522019-02-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3753
3754	Backport from mainline.
3755	2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3756	* config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
3757	Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.  Coerce result to
3758	type of vector element when vec_extract is implemented by direct
3759	move.
3760
37612019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
3762
3763	Backport from mainline
3764	2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
3765
3766	PR target/88856
3767	* config/s390/s390.md: Remove load and test FP splitter.
3768
37692019-02-04  Bill Schmidt  <wshmidt@linux.ibm.com>
3770
3771	PR target/87064
3772	Backport from mainline
3773
3774	2019-01-30  Bill Schmidt  <wschmidt@linux.ibm.com>
3775
3776	PR target/87064
3777	* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
3778	Disable for little-endian.
3779
3780	2019-01-22  Jakub Jelinek  <jakub@redhat.com>
3781
3782	PR target/87064
3783	* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
3784	Disable for little endian.
3785
37862019-02-04  Eric Botcazou  <ebotcazou@adacore.com>
3787
3788	* config/sparc/sparc.h: Remove superfluous blank lines.
3789	* config/sparc/sparc.c (global_offset_table_rtx): Rename into...
3790	(got_register_rtx): ...this.
3791	(sparc_got): Adjust to above renaming.
3792	(sparc_tls_got): Likewise.
3793	(sparc_output_mi_thunk): Likewise.
3794	(sparc_init_pic_reg): Likewise.
3795	(save_local_or_in_reg_p): Fix test on the GOT register.
3796	(USE_HIDDEN_LINKONCE): Move around.
3797	(get_pc_thunk_name): Likewise.
3798	(gen_load_pcrel_sym): Likewise.
3799	(load_got_register): Likewise.
3800
38012019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
3802
3803	Backport from mainline
3804	2018-10-15  Bin Cheng  <bin.cheng@linux.alibaba.com>
3805
3806	PR tree-optimization/87022
3807	* tree-loop-distribution.c (pg_add_dependence_edges): Check all
3808	bits in dist vector rather than the first one.
3809
38102019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
3811
3812	Backport from mainline
3813	2019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
3814
3815	PR tree-optimization/88932
3816	* tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
3817
38182018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>
3819
3820	Backport from mainline
3821	2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>
3822
3823	PR tree-optimization/89008
3824	* gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
3825	process anything of the form X * 0.
3826
38272019-01-31  Richard Biener  <rguenther@suse.de>
3828
3829	Backport from mainline
3830	2019-01-31  Richard Biener  <rguenther@suse.de>
3831
3832	PR rtl-optimization/89115
3833	* lra.c (lra_rtx_hash): Properly hash CONST_INT values.
3834
3835	2019-01-30  Richard Biener  <rguenther@suse.de>
3836
3837	PR rtl-optimization/89115
3838	* opts.c (default_options_optimization): Reduce
3839	PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
3840	Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
3841	to the default.
3842
38432019-01-30  Kewen Lin  <linkw@gcc.gnu.org>
3844
3845	Backport from mainline.
3846	2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
3847
3848	* doc/extend.texi: Add four new prototypes for vec_ld and seven new
3849	prototypes for vec_st.
3850	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
3851	for scalar address type variants of altivec_vec_ld/altivec_vec_st,
3852	mainly on signed/unsigned long long and double.
3853
38542019-01-29  Vineet Gupta  <vgupta@synopsys.com>
3855
3856	Backport from mainline.
3857	* gcc/config.gcc: Force .init_array for ARC.
3858
38592019-01-29  Vineet Gupta  <vgupta@synopsys.com>
3860
3861	Backport from mainline.
3862	* config/arc/atomic.md: Add operand to DMB instruction.
3863
38642019-01-27  Uroš Bizjak  <ubizjak@gmail.com>
3865
3866	PR target/88948
3867	* rtl.h (prepare_copy_insn): New prototype.
3868	* gcse.c (prepare_copy_insn): New function, split out from
3869	process_insert_insn.
3870	(process_insert_insn): Use prepare_copy_insn.
3871	* store-motion.c (replace_store_insn): Use prepare_copy_insn
3872	instead of gen_move_insn.
3873
38742019-01-25  Richard Biener  <rguenther@suse.de>
3875
3876	PR tree-optimization/86865
3877	* graphite-scop-detection.c (scop_detection::can_represent_loop):
3878	Reject non-do-while loops.
3879
38802019-01-24  Uroš Bizjak  <ubizjak@gmail.com>
3881
3882	PR target/88998
3883	* config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
3884	Disparage MMX alternative.
3885	(sse2_cvtpd2pi): Ditto.
3886	(sse2_cvttpd2pi): Ditto.
3887
38882019-01-24  Richard Earnshaw  <rearnsha@arm.com>
3889
3890	PR target/88469
3891	* profile-count.h (profile_count): On ARM systems using GCC 6/7/8
3892	force the alignment of m_val.
3893
38942019-01-24  Richard Biener  <rguenther@suse.de>
3895
3896	Backport from mainline
3897	2019-01-23  Richard Biener  <rguenther@suse.de>
3898
3899	PR tree-optimization/89008
3900	* tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
3901	not leave another stray operand.
3902
39032019-01-22  Uroš Bizjak  <ubizjak@gmail.com>
3904
3905	PR target/88938
3906	* config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
3907	case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
3908
39092019-01-18  Richard Earnshaw  <rearnsha@arm.com>
3910
3911	PR target/88799
3912	* config/arm/arm-cpus.in (mp): New feature.
3913	(sec): New feature.
3914	(fgroup ARMv7ve): Add mp and sec features.
3915	(arch armv7-a): Add options to allow mp and sec extensions.
3916	(cpu generic-armv7-a): Add options to allow mp and sec extensions.
3917	(cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
3918	extenstions to the base architecture.
3919	(cpu cortex-a8): Add sec extension to the base architecture.
3920	(cpu marvell-pj4): Add mp and sec extensions to the base architecture.
3921	* config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
3922	variants down to the base v7-a varaint.
3923	* config/arm/t-multilib (v7_a_arch_variants): New variable.
3924	* doc/invoke.texi (ARM Options): Add +mp and +sec to the list
3925	of permitted extensions for -march=armv7-a and for
3926	-mcpu=generic-armv7-a.
3927
39282019-01-17  Uroš Bizjak  <ubizjak@gmail.com>
3929
3930	* config/alpha/alpha.c (alpha_gimplify_va_arg):
3931	Handle split indirect COMPLEX_TYPE arguments.
3932
39332019-01-17  Eric Botcazou  <ebotcazou@adacore.com>
3934
3935	* gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
3936	flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
3937	(stmt_uses_0_or_null_in_undefined_way): Likewise.
3938	* tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
3939
39402019-01-16  Aaron Sawdey  <acsawdey@linux.ibm.com>
3941
3942	Backported from mainline
3943	2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
3944	* config/rs6000/rs6000-string.c (expand_block_move): Don't use
3945	unaligned vsx and avoid lxvd2x/stxvd2x.
3946	(gen_lvx_v4si_move): New function.
3947
39482019-01-16  Martin Jambor  <mjambor@suse.cz>
3949
3950	Backported from mainline
3951	2018-12-10  Martin Jambor  <mjambor@suse.cz>
3952
3953	PR ipa/88214
3954	* ipa-prop.c (determine_locally_known_aggregate_parts): Make sure
3955	we check pointers against pointers.
3956
39572019-01-10  Jan Hubicka  <hubicka@ucw.cz>
3958
3959	Backported from mainline
3960	2018-12-27  Jan Hubicka  <hubicka@ucw.cz>
3961
3962	* ipa-devirt.c (polymorphic_call_target_d): Add n_odr_types.
3963	(polymorphic_call_target_hasher::hash): Hash it.
3964	(polymorphic_call_target_hasher::equal): Compare it.
3965	(possible_polymorphic_call_targets): Set it.
3966	* tree.c (free_lang_data): Rebuild type inheritance graph even on
3967	non-LTO path.
3968
39692019-01-03  Jan Hubicka  <hubicka@ucw.cz>
3970
3971	Backported from mainline
3972	2019-01-02  Richard Biener  <rguenther@suse.de>
3973
3974	PR ipa/85574
3975	* ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
3976	* ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
3977	function.
3978	(sem_item_optimizer::do_congruence_step_f): Sort the congruence
3979	set after UIDs before splitting them.
3980
39812019-01-03  Jan Hubicka  <hubicka@ucw.cz>
3982
3983	Backported from mainline
3984	2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
3985
3986	PR tree-optimization/85574
3987	* tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
3988	structure.
3989	(struct ssa_equip_hash_traits): Declare.
3990	(val_ssa_equiv): Use custom hash traits using operand_equal_p.
3991
39922019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
3993
3994	* config/sparc/sparc.md (*tablejump_sp32): Merge into...
3995	(*tablejump_sp64): Likewise.
3996	(*tablejump<P:mode>): ...this.
3997	(*call_address_sp32): Merge into...
3998	(*call_address_sp64): Likewise.
3999	(*call_address<P:mode>): ...this.
4000	(*call_symbolic_sp32): Merge into...
4001	(*call_symbolic_sp64): Likewise.
4002	(*call_symbolic<P:mode>): ...this.
4003	(call_value): Remove constraint and add predicate.
4004	(*call_value_address_sp32): Merge into...
4005	(*call_value_address_sp64): Likewise.
4006	(*call_value_address<P:mode>): ...this.
4007	(*call_value_symbolic_sp32): Merge into...
4008	(*call_value_symbolic_sp64): Likewise.
4009	(*call_value_symbolic<P:mode>): ...this.
4010	(*sibcall_symbolic_sp32): Merge into...
4011	(*sibcall_symbolic_sp64): Likewise.
4012	(*sibcall_symbolic<P:mode>): ...this.
4013	(sibcall_value): Remove constraint and add predicate.
4014	(*sibcall_value_symbolic_sp32): Merge into...
4015	(*sibcall_value_symbolic_sp64): Likewise.
4016	(*sibcall_value_symbolic<P:mode>): ...this.
4017	(window_save): Minor tweak.
4018	(*branch_sp32): Merge into...
4019	(*branch_sp64): Likewise.
4020	(*branch<P:mode>): ...this.
4021
40222019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
4023	    James Clarke  <jrtc27@jrtc27.com>
4024
4025	PR target/84010
4026	* config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
4027	consistently in TLS address generation and adjust code to the renaming
4028	of patterns.  Mark calls to __tls_get_addr as const.
4029	* config/sparc/sparc.md (tgd_hi22): Turn into...
4030	(tgd_hi22<P:mode>): ...this and use Pmode throughout.
4031	(tgd_lo10): Turn into...
4032	(tgd_lo10<P:mode>): ...this and use Pmode throughout.
4033	(tgd_add32): Merge into...
4034	(tgd_add64): Likewise.
4035	(tgd_add<P:mode>): ...this and use Pmode throughout.
4036	(tldm_hi22): Turn into...
4037	(tldm_hi22<P:mode>): ...this and use Pmode throughout.
4038	(tldm_lo10): Turn into...
4039	(tldm_lo10<P:mode>): ...this and use Pmode throughout.
4040	(tldm_add32): Merge into...
4041	(tldm_add64): Likewise.
4042	(tldm_add<P:mode>): ...this and use Pmode throughout.
4043	(tldm_call32): Merge into...
4044	(tldm_call64): Likewise.
4045	(tldm_call<P:mode>): ...this and use Pmode throughout.
4046	(tldo_hix22): Turn into...
4047	(tldo_hix22<P:mode>): ...this and use Pmode throughout.
4048	(tldo_lox10): Turn into...
4049	(tldo_lox10<P:mode>): ...this and use Pmode throughout.
4050	(tldo_add32): Merge into...
4051	(tldo_add64): Likewise.
4052	(tldo_add<P:mode>): ...this and use Pmode throughout.
4053	(tie_hi22): Turn into...
4054	(tie_hi22<P:mode>): ...this and use Pmode throughout.
4055	(tie_lo10): Turn into...
4056	(tie_lo10<P:mode>): ...this and use Pmode throughout.
4057	(tie_ld64): Use DImode throughout.
4058	(tie_add32): Merge into...
4059	(tie_add64): Likewise.
4060	(tie_add<P:mode>): ...this and use Pmode throughout.
4061	(tle_hix22_sp32): Merge into...
4062	(tle_hix22_sp64): Likewise.
4063	(tle_hix22<P:mode>): ...this and use Pmode throughout.
4064	(tle_lox22_sp32): Merge into...
4065	(tle_lox22_sp64): Likewise.
4066	(tle_lox22<P:mode>): ...this and use Pmode throughout.
4067	(*tldo_ldub_sp32): Merge into...
4068	(*tldo_ldub_sp64): Likewise.
4069	(*tldo_ldub<P:mode>): ...this and use Pmode throughout.
4070	(*tldo_ldub1_sp32): Merge into...
4071	(*tldo_ldub1_sp64): Likewise.
4072	(*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
4073	(*tldo_ldub2_sp32): Merge into...
4074	(*tldo_ldub2_sp64): Likewise.
4075	(*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
4076	(*tldo_ldsb1_sp32): Merge into...
4077	(*tldo_ldsb1_sp64): Likewise.
4078	(*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
4079	(*tldo_ldsb2_sp32): Merge into...
4080	(*tldo_ldsb2_sp64): Likewise.
4081	(*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
4082	(*tldo_ldub3_sp64): Use DImode throughout.
4083	(*tldo_ldsb3_sp64): Likewise.
4084	(*tldo_lduh_sp32): Merge into...
4085	(*tldo_lduh_sp64): Likewise.
4086	(*tldo_lduh<P:mode>): ...this and use Pmode throughout.
4087	(*tldo_lduh1_sp32): Merge into...
4088	(*tldo_lduh1_sp64): Likewise.
4089	(*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
4090	(*tldo_ldsh1_sp32): Merge into...
4091	(*tldo_ldsh1_sp64): Likewise.
4092	(*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
4093	(*tldo_lduh2_sp64): Use DImode throughout.
4094	(*tldo_ldsh2_sp64): Likewise.
4095	(*tldo_lduw_sp32): Merge into...
4096	(*tldo_lduw_sp64): Likewise.
4097	(*tldo_lduw<P:mode>): ...this and use Pmode throughout.
4098	(*tldo_lduw1_sp64): Use DImode throughout.
4099	(*tldo_ldsw1_sp64): Likewise.
4100	(*tldo_ldx_sp64): Likewise.
4101	(*tldo_stb_sp32): Merge into...
4102	(*tldo_stb_sp64): Likewise.
4103	(*tldo_stb<P:mode>): ...this and use Pmode throughout.
4104	(*tldo_sth_sp32): Merge into...
4105	(*tldo_sth_sp64): Likewise.
4106	(*tldo_sth<P:mode>): ...this and use Pmode throughout.
4107	(*tldo_stw_sp32): Merge into...
4108	(*tldo_stw_sp64): Likewise.
4109	(*tldo_stw<P:mode>): ...this and use Pmode throughout.
4110	(*tldo_stx_sp64): Use DImode throughout.
4111
41122019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
4113
4114	* doc/invoke.texi (-Os): Add reference to -finline-functions.
4115	(-finline-functions): Remove reference to -O2, add references
4116	to -fprofile-use and -fauto-profile.
4117
41182019-01-08  Jakub Jelinek  <jakub@redhat.com>
4119
4120	Backported from mainline
4121	2019-01-05  Jakub Jelinek  <jakub@redhat.com>
4122
4123	PR middle-end/82564
4124	PR target/88620
4125	* expr.c (expand_assignment): For calls returning VLA structures
4126	if to_rtx is not a MEM, force it into a stack temporary.
4127
4128	2019-01-04  Jakub Jelinek  <jakub@redhat.com>
4129
4130	PR target/88594
4131	* config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
4132	of GET_MODE (opN) as modes of the libcall arguments.
4133
4134	2019-01-03  Jakub Jelinek  <jakub@redhat.com>
4135
4136	PR debug/88644
4137	* dwarf2out.c (modified_type_die): If type is equal to sizetype,
4138	change it to qualified_type.
4139
4140	2018-12-21  Jakub Jelinek  <jakub@redhat.com>
4141
4142	PR middle-end/85594
4143	PR middle-end/88553
4144	* omp-expand.c (extract_omp_for_update_vars): Regimplify the condition
4145	if needed.
4146	(expand_omp_for_generic): Don't clobber t temporary for ordered loops.
4147
4148	PR target/88522
4149	* config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask,
4150	*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask,
4151	*avx512pf_scatterpf<mode>df_mask): Use %X5 instead of %5 for
4152	-masm=intel.
4153	(gatherq_mode): Remove mode iterator.
4154	(*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2): Use X instead
4155	of <xtg_mode>.
4156	(*avx512f_gatherdi<mode>): Use X instead of <gatherq_mode>.
4157	(*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>,
4158	*avx512f_scatterdi<mode>): Use %X5 for -masm=intel.
4159
4160	PR rtl-optimization/88563
4161	* expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode
4162	and mode arguments to convert_modes.  Likewise swap mode and word_mode
4163	arguments.  Handle both arguments with VOIDmode before convert_modes
4164	of one of them.  Formatting fixes.
4165
4166	2018-12-19  Jakub Jelinek  <jakub@redhat.com>
4167
4168	PR target/88541
4169	* config/i386/vpclmulqdqintrin.h (_mm256_clmulepi64_epi128): Enable
4170	for -mavx -mvpclmulqdq rather than just for -mavx512vl -mvpclmulqdq.
4171
4172	2018-12-14  Jakub Jelinek  <jakub@redhat.com>
4173
4174	PR c++/82294
4175	PR c++/87436
4176	* expr.h (categorize_ctor_elements): Add p_unique_nz_elts argument.
4177	* expr.c (categorize_ctor_elements_1): Likewise.  Compute it like
4178	p_nz_elts, except don't multiply it by mult.  Adjust recursive call.
4179	Fix up COMPLEX_CST handling.
4180	(categorize_ctor_elements): Add p_unique_nz_elts argument, initialize
4181	it and pass it through to categorize_ctor_elements_1.
4182	(mostly_zeros_p, all_zeros_p): Adjust categorize_ctor_elements callers.
4183	* gimplify.c (gimplify_init_constructor): Likewise.  Don't force
4184	ctor into readonly data section if num_unique_nonzero_elements is
4185	smaller or equal to 1/8 of num_nonzero_elements and size is >= 64
4186	bytes.
4187
4188	2018-12-13  Jakub Jelinek  <jakub@redhat.com>
4189
4190	PR rtl-optimization/88470
4191	* cfgcleanup.c (outgoing_edges_match): If the function is
4192	shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake
4193	edge to EXIT, return false.
4194
4195	PR rtl-optimization/88416
4196	* valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify
4197	even if !AUTO_INC_DEC.
4198
4199	2018-12-07  Jakub Jelinek  <jakub@redhat.com>
4200
4201	PR target/85593
4202	* final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage
4203	for functions with naked attribute.
4204
4205	2018-12-06  Jakub Jelinek  <jakub@redhat.com>
4206
4207	PR target/87598
4208	* config/aarch64/aarch64.c (aarch64_print_address_internal): Don't
4209	call output_operand_lossage on VOIDmode CONST_INTs.  After
4210	output_operand_lossage do return false.
4211
4212	2018-12-05  Jakub Jelinek  <jakub@redhat.com>
4213
4214	PR tree-optimization/87360
4215	* gimple-loop-jam.c (tree_loop_unroll_and_jam): On failure to analyze
4216	data dependencies, don't return false, just continue.
4217
4218	2018-11-29  Jakub Jelinek  <jakub@redhat.com>
4219
4220	PR target/88234
4221	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): For
4222	vec_add and vec_sub builtins, perform PLUS_EXPR or MINUS_EXPR
4223	in unsigned_type_for instead of vector integral type where overflow
4224	doesn't wrap.
4225
4226	2018-11-26  Jakub Jelinek  <jakub@redhat.com>
4227
4228	PR c++/86900
4229	* dwarf2out.c (secname_for_decl): For functions with
4230	DECL_SECTION_NAME if in_cold_section_p, try to return
4231	current_function_section's name if it is a named section.
4232
4233	2018-11-22  Jakub Jelinek  <jakub@redhat.com>
4234
4235	PR target/85644
4236	PR target/86832
4237	* config/i386/i386.c (ix86_option_override_internal): Default
4238	ix86_stack_protector_guard to SSP_TLS only if TARGET_THREAD_SSP_OFFSET
4239	is defined.
4240	* config/i386/i386.md (stack_protect_set, stack_protect_set_<mode>,
4241	stack_protect_test, stack_protect_test_<mode>): Use empty condition
4242	instead of TARGET_SSP_TLS_GUARD.
4243
4244	2018-11-20  Jakub Jelinek  <jakub@redhat.com>
4245
4246	PR tree-optimization/87895
4247	* omp-simd-clone.c (ipa_simd_modify_function_body): When removing
4248	or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT.
4249	(simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that
4250	redirects edges to EXIT to edges to incr_bb, iterate while EXIT
4251	has any preds and always use EDGE_PRED (, 0).
4252
4253	2018-11-19  Jakub Jelinek  <jakub@redhat.com>
4254
4255	PR tree-optimization/88071
4256	* tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead
4257	of false as last argument to gsi_remove.
4258	* tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of
4259	false as last argument to gsi_replace.
4260
4261	PR debug/87039
4262	* omp-expand.c: Don't include debug.h.
4263	(adjust_context_and_scope): Add REGION argument.  Find DECL_CONTEXT
4264	from innermost outer parallel, task, or target that has a
4265	child_fn set, or, if there is no such outer region, use
4266	current_function_decl.  Do the DECL_CONTEXT adjustment regardless of
4267	whether a suitable BLOCK is found or not.
4268	(expand_parallel_call): Don't call adjust_context_and_scope here.
4269	(grid_expand_target_grid_body): Revert 2017-01-25 changes.
4270	(expand_omp_taskreg, expand_omp_target): Likewise.  Call
4271	adjust_context_and_scope.
4272	* dwarf2out.c (dwarf2out_early_global_decl): For
4273	decl_function_context recurse instead of calling dwarf2out_decl.
4274
4275	2018-11-16  Jakub Jelinek  <jakub@redhat.com>
4276
4277	PR rtl-optimization/87475
4278	* cfgrtl.c (patch_jump_insn): Allow redirection failure for
4279	CROSSING_JUMP_P insns.
4280	(cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL.
4281
4282	2018-11-15  Jakub Jelinek  <jakub@redhat.com>
4283
4284	PR rtl-optimization/88018
4285	* cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge
4286	on the presence of fallthru edge, rather than if it is a USE or not.
4287
4288	2018-11-13  Jakub Jelinek  <jakub@redhat.com>
4289
4290	PR tree-optimization/87898
4291	* omp-simd-clone.c (ipa_simd_modify_function_body): Remove debug stmts
4292	where the first argument was changed into a non-decl.
4293
42942019-01-03  Jan Hubicka  <hubicka@ucw.cz>
4295
4296	Backport from mainline
4297	2019-01-02  Jan Hubicka  <hubicka@ucw.cz>
4298
4299	PR lto/88130
4300	* varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
4301	false at WPA time when body was removed.
4302
43032019-01-03  Jan Hubicka  <hubicka@ucw.cz>
4304
4305	Backport from mainline
4306	2018-08-29  Jan Hubicka  <jh@suse.cz>
4307
4308	PR lto/86517
4309	PR lto/88185
4310	* lto-opts.c (lto_write_options): Always stream PIC/PIE mode.
4311	* lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE.
4312
43132019-01-04  Aaron Sawdey  <acsawdey@linux.ibm.com>
4314
4315	Backport from mainline
4316	2018-11-28  Aaron Sawdey  <acsawdey@linux.ibm.com>
4317
4318	* config/rs6000/rs6000-string.c (expand_block_clear): Change how
4319	we determine if unaligned vsx is ok.
4320
43212019-01-03  Jan Hubicka  <hubicka@ucw.cz>
4322
4323	Backport from mainline
4324	2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
4325
4326	* ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
4327	(ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
4328
43292019-01-03  Martin Liska  <mliska@suse.cz>
4330
4331	Backport from mainline
4332	2019-01-01  Jan Hubicka  <hubicka@ucw.cz>
4333
4334	* coverage.c (get_coverage_counts): Use current_function_decl.
4335	* profile.c (read_thunk_profile): New function.
4336	(branch_prob): Add THUNK parameter.
4337	* tree-profile.c (tree_profiling): Handle thunks.
4338	* value-prof.c (init_node_map): Handle thunks.
4339	* value-prof.h (branch_prob): Upate prototype.
4340	(read_thunk_profile): Declare.
4341
43422019-01-03  Iain Sandoe  <iain@sandoe.co.uk>
4343
4344	revert:
4345	2018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
4346
4347	backport from mainline.
4348	2018-12-12 Segher Boessenkool  <segher@kernel.crashing.org>
4349		   Iain Sandoe  <iain@sandoe.co.uk>
4350
4351	PR target/88343
4352	* config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg
4353	unless it has been used.
4354	(first_reg_to_save): Remove dead code.
4355
43562019-01-02  Segher Boessenkool  <segher@kernel.crashing.org>
4357
4358	Backport from trunk
4359	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
4360
4361	PR inline-asm/55681
4362	* doc/extend.texi (Basic Asm): Update grammar.
4363	(Extended Asm): Update grammar.
4364
4365	Backport from trunk
4366	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
4367
4368	* doc/extend.texi (Using Assembly Language with C): Document asm inline.
4369	(Size of an asm): Fix typo.  Document asm inline.
4370	* gimple-pretty-print.c (dump_gimple_asm): Handle asm inline.
4371	* gimple.h (enum gf_mask): Add GF_ASM_INLINE.
4372	(gimple_asm_set_volatile): Fix typo.
4373	(gimple_asm_inline_p): New.
4374	(gimple_asm_set_inline): New.
4375	* gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from
4376	tree to gimple.
4377	* ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the
4378	gimple_asm_inline_p flag, too.
4379	* tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P
4380	in an ASM_EXPR.
4381	* tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return
4382	a minimum size for an asm.
4383	* tree.h (ASM_INLINE_P): New.
4384
43852018-12-28  Thomas Schwinge  <thomas@codesourcery.com>
4386	    Julian Brown  <julian@codesourcery.com>
4387
4388	* gimplify.c (gimplify_scan_omp_clauses): Fix known_eq typo/bug.
4389
43902018-12-27  Martin Liska  <mliska@suse.cz>
4391
4392	Backport from mainline
4393	2018-12-15  Jan Hubicka  <hubicka@ucw.cz>
4394
4395	PR ipa/88561
4396	* ipa-polymorphic-call.c
4397	(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Handle
4398	arguments of thunks correctly.
4399	(ipa_polymorphic_call_context::get_dynamic_context): Be ready for
4400	NULL instance pinter.
4401	* lto-cgraph.c (lto_output_node): Always stream thunk info.
4402
44032018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
4404
4405	backport from mainline.
4406	2018-12-12 Segher Boessenkool  <segher@kernel.crashing.org>
4407		   Iain Sandoe  <iain@sandoe.co.uk>
4408
4409	PR target/88343
4410	* config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg
4411	unless it has been used.
4412	(first_reg_to_save): Remove dead code.
4413
44142018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
4415
4416	Backport from mainline
4417	2018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
4418
4419	PR c++/87380
4420	* config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the
4421	default.
4422	* config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New.
4423
44242018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
4425
4426	Backport from mainline
4427	2018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
4428
4429	PR target/78444
4430	* config/i386/darwin.h (STACK_BOUNDARY): Remove macro.
4431	* config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b
4432	stack alignment in non-leaf functions.
4433
44342018-12-21  Uros Bizjak  <ubizjak@gmail.com>
4435
4436	Backport from mainline
4437	2018-12-10  Uros Bizjak  <ubizjak@gmail.com>
4438
4439	PR target/88418
4440	* config/i386/i386.c (ix86_expand_sse_cmp): For vector modes,
4441	check operand 1 with vector_operand predicate.
4442	(ix86_expand_sse_movcc): For vector modes, check op_true with
4443	vector_operand, not nonimmediate_operand.
4444
44452018-12-19  Bill Schmidt  <wschmidt@linux.ibm.com>
4446
4447	Backport from mainline
4448	2018-12-18  Bill Schmidt  <wschmidt@linux.ibm.com>
4449
4450	* doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
4451	Describe when a typedef name can be used as the type specifier for
4452	a vector type, and when it cannot.
4453
44542018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
4455
4456	Backport from trunk
4457	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
4458
4459	PR target/88213
4460	* config/rs6000/vsx.md (*vsx_extract_<P:mode>_<VSX_D:mode>_load):
4461	Require TARGET_POWERPC64.
4462
44632018-12-17  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
4464
4465	Backport from trunk
4466	2018-12-17  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
4467
4468	PR rtl-optimization/88253
4469	* combine.c (combine_simplify_rtx): Test for side-effects before
4470	substituting by zero.
4471
44722018-12-15  Segher Boessenkool  <segher@kernel.crashing.org>
4473
4474	Backport from trunk
4475	2018-12-14  Segher Boessenkool  <segher@kernel.crashing.org>
4476
4477	PR rtl-optimization/88001
4478	* function.c (match_asm_constraints_1): Don't invalidly share RTL.
4479
44802018-12-15  Jan Hubicka  <jh@suse.cz>
4481
4482	* ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET
4483	parameters.
4484	(cgraph_build_static_cdtor): Update.
4485	(build_cdtor): Use OPTIMIZATION and TARGET of the first real cdtor
4486	callsed.
4487
44882018-12-15  Jan Hubicka  <jh@suse.cz>
4489
4490	Backport from mainline
4491	2018-11-02  Richard Biener  <rguenther@suse.de>
4492
4493	* dwarf2out.c (build_abbrev_table): Guard lookup_external_ref call
4494	with is_type_die.
4495
44962018-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4497
4498	Backport from mainline
4499	2018-12-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4500
4501	* doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128
4502	behavior.
4503
45042018-12-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4505
4506	Backport from mainline
4507	PR target/88224
4508	* config/arm/arm-cpus.in (armv7-r): Add FP16conv configurations.
4509	(cortex-r7, cortex-r8): Update fpu and add new configuration.
4510	* doc/invoke.texi (armv7-r): Add two new vfp options.
4511	(nofp.dp): Add cortex-r7 and cortex-r8 to the list of targets that
4512	support this option.
4513
45142018-12-13  H.J. Lu  <hongjiu.lu@intel.com>
4515
4516	Backport from mainline
4517	2018-11-05  Xuepeng Guo  <xuepeng.guo@intel.com>
4518
4519	PR target/87853
4520	* config/i386/emmintrin.h (__v16qs): New to cope with option
4521	-funsigned-char.
4522	(_mm_cmpeq_epi8): Replace __v16qi with __v16qs.
4523	(_mm_cmplt_epi8): Likewise.
4524	(_mm_cmpgt_epi8): Likewise.
4525
45262018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
4527
4528	Backport from mainline
4529	2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
4530
4531	* config/s390/s390-builtins.def (s390_vec_double_s64): Map to
4532	s390_vec_double_s64 instead of s390_vcdgb.
4533	(s390_vec_double_u64): Map to s390_vec_double_u64 instead of
4534	s390_vcdlgb.
4535
45362018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
4537
4538	Backport from mainline
4539	2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
4540
4541	* config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64")
4542	("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT.
4543	("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT.
4544
45452018-12-13  Eric Botcazou  <ebotcazou@adacore.com>
4546
4547	Backport from mainline
4548	2018-12-11  Eric Botcazou  <ebotcazou@adacore.com>
4549
4550	* config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define,
4551	accounting for STACK_BOUNDARY 128.
4552	(STACK_DYNAMIC_OFFSET): Likewise.
4553
45542018-12-12  Peter Bergner  <bergner@linux.ibm.com>
4555
4556	Backport from mainline
4557	2018-12-07  Peter Bergner  <bergner@linux.ibm.com>
4558
4559	PR target/87496
4560	* config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
4561	-mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128.
4562	Do not error for -mabi=ibmlongdouble and no ISA 2.06 support.
4563	* doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble
4564	require -mlong-double-128.
4565
45662018-12-05  Richard Biener  <rguenther@suse.de>
4567
4568	Backport from mainline
4569	2018-09-20  Richard Sandiford  <richard.sandiford@arm.com>
4570
4571	PR tree-optimization/87288
4572	* tree-vect-loop.c (vect_analyze_loop_2): Take PEELING_FOR_GAPS
4573	into account when determining PEELING_FOR_NITERS.
4574
45752018-12-05  Iain Sandoe  <iain@sandoe.co.uk>
4576
4577	Backport from mainline
4578	2018-08-18  Iain Sandoe  <iain@sandoe.co.uk>
4579
4580	* config/darwin.c (darwin_override_options): If -gsplit-dwarf is set,
4581	emit a diagnostic that it is not supported and reset the option.
4582	* config/darwin.h (DRIVER_SELF_SPECS): Note that gsplit-dwarf is not
4583	supported and consume the option.  (ASM_FINAL_SPEC): New.
4584
45852018-12-04  Iain Sandoe  <iain@sandoe.co.uk>
4586
4587	Backport from mainline
4588	2018-08-15  Iain Sandoe  <iain@sandoe.co.uk>
4589
4590	PR target/81685
4591	* config/darwin.h: (DEBUG_STR_OFFSETS_SECTION, DEBUG_LOCLISTS_SECTION,
4592	DEBUG_RNGLISTS_SECTION) new macros.  (DEBUG_PUBNAMES_SECTION,
4593	DEBUG_PUBTYPES_SECTION) update to include GNU variant.
4594
45952018-11-29  Peter Bergner  <bergner@linux.ibm.com>
4596
4597	Backport from mainline
4598	2018-11-29  Peter Bergner  <bergner@linux.ibm.com>
4599
4600	PR target/87496
4601	* config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
4602	-mabi=ieeelongdouble without both -mpopcntd and -mvsx.
4603
46042018-11-28  Aaron Sawdey  <acsawdey@linux.ibm.com>
4605
4606	Backport from mainline
4607	2018-10-25  Aaron Sawdey  <acsawdey@linux.ibm.com>
4608
4609	* config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Change to
4610	a shorter sequence with fewer branches.
4611	(emit_final_str_compare_gpr): Ditto.
4612
4613	Backport from mainline to allow the above code to go in:
4614	2018-06-14  Aaron Sawdey  <acsawdey@linux.ibm.com>
4615
4616	* config/rs6000/rs6000-string.c (do_and3, do_and3_mask,
4617	do_cmpb3, do_rotl3): New functions.
4618
46192018-11-28  Richard Biener  <rguenther@suse.de>
4620
4621	PR tree-optimization/79351
4622	* tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from
4623	empty CONSTRUCTORs ensure the store is at a constant position.
4624
46252018-11-28  Richard Biener  <rguenther@suse.de>
4626
4627	PR tree-optimization/88229
4628	* tree-ssa.c (non_rewritable_mem_ref_base): Check DECL_SIZE_UNIT
4629	is an INTEGER_CST before accessing it so.
4630
46312018-11-26  Andreas Krebbel  <krebbel@linux.ibm.com>
4632
4633	Backport from mainline
4634	2018-11-20  Andreas Krebbel  <krebbel@linux.ibm.com>
4635
4636	* config/s390/s390.md ("clztidi2"): Swap the RTX's written to the
4637	DImode parts of the target operand.
4638
46392018-11-26  Andreas Krebbel  <krebbel@linux.ibm.com>
4640
4641	Backport from mainline
4642	2018-11-26  Andreas Krebbel  <krebbel@linux.ibm.com>
4643
4644	* doc/invoke.texi: Document z14/arch12 -march option.
4645
46462018-11-23  Tamar Christina  <tamar.christina@arm.com>
4647
4648	Backported from mainline.
4649	2018-08-16  Tamar Christina  <tamar.christina@arm.com>
4650
4651	PR target/84711
4652	* config/arm/neon.md (movv4hf, movv8hf): Refactored to..
4653	(mov<mov>): ..this and enable unconditionally.
4654
46552018-11-22  Uros Bizjak  <ubizjak@gmail.com>
4656
4657	Backport from mainline
4658	2018-11-16  Uros Bizjak  <ubizjak@gmail.com>
4659
4660	PR target/88051
4661	* config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC.
4662	(movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec.
4663
46642018-11-20  Eric Botcazou  <ebotcazou@adacore.com>
4665
4666	PR rtl-optimization/85925
4667	* rtl.h (word_register_operation_p): New predicate.
4668	* combine.c (record_dead_and_set_regs_1): Only apply specific handling
4669	for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX.
4670	* rtlanal.c (nonzero_bits1): Likewise.  Adjust couple of comments.
4671	(num_sign_bit_copies1): Likewise.
4672
46732018-11-19  Martin Liska  <mliska@suse.cz>
4674
4675	PR gcov-profile/88045
4676	* coverage.c (coverage_begin_function): One can't relly on the
4677	fact that function ends on the same line it starts or later.
4678
46792018-11-18  Uros Bizjak  <ubizjak@gmail.com>
4680
4681	Backport from mainline
4682	2018-11-11  Uros Bizjak  <ubizjak@gmail.com>
4683
4684	PR target/87928
4685	* config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI
4686	instead of (TARGET_64BIT && ix86_abi == MS_ABI).
4687	* config/i386/darwin.h (STACK_BOUNDARY): Ditto.
4688	* config/i386/cygming.h (STACK_BOUNDARY): Remove.
4689
46902018-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4691
4692	* tree-switch-conversion.c (emit_case_decision_tree): Pass location
4693	of switch statement to emit_case_nodes.
4694	(do_jump_if_equal): Add LOC parameter and set it on the newly built
4695	GIMPLE comparison statement.
4696	(emit_cmp_and_jump_insns): Likewise.
4697	(emit_case_nodes): Add LOC parameter and pass it to do_jump_if_equal
4698	as well as recursive calls.
4699
47002018-11-15  Nathan Sidwell  <nathan@acm.org>
4701
4702	PR debug/88006
4703	PR debug/87462
4704	* dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat
4705	type list.
4706
47072018-11-14  Paul A. Clarke  <pc@us.ibm.com>
4708
4709	Backport from mainline
4710	* config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian.
4711
47122018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
4713
4714	Backport from mainline
4715	PR target/85968
4716	* config/arc/arc.c (arc_return_address_register): Fix
4717	if-condition.
4718
47192018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
4720
4721	Backport from mainline
4722	* config/arc/arc.h (FUNCTION_PROFILER): Redefine to empty.
4723	* config/arc/elf.h (PROFILE_HOOK): Define.
4724	* config/arc/linux.h (PROFILE_HOOK): Likewise.
4725
47262018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
4727
4728	Backport from mainline
4729	* config/arc/arc.c (hwloop_optimize): Bailout when detecting a
4730	jump table data in the text section.
4731
47322018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
4733
4734	Backport from mainline
4735	* config/arc/arc.c (arc_eh_return_address_location): Repurpose it
4736	to fit the eh_return pattern.
4737	* config/arc/arc.md (eh_return): Define.
4738	(VUNSPEC_ARC_EH_RETURN): Likewise.
4739	* config/arc/arc-protos.h (arc_eh_return_address_location): Match
4740	new implementation.
4741	* config/arc/arc.h (EH_RETURN_HANDLER_RTX): Remove it.
4742
47432018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
4744
4745	Backport from mainline
4746	2018-09-17  Alexey Brodkin  <abrodkin@synopsys.com>
4747
4748	* config/arc/linux.h (LINK_EH_SPEC): Add missing space.
4749
47502018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
4751
4752	Backport from mainline
4753	* config/arc/linux.h (CLEAR_INSN_CACHE): Define.
4754
47552018-11-11  Uros Bizjak  <ubizjak@gmail.com>
4756
4757	Backport from mainline
4758	2018-11-04  Uros Bizjak  <ubizjak@gmail.com>
4759
4760	PR middle-end/58372
4761	* cfgexpand.c (pass_expand::execute): Move the call to
4762	finish_eh_generation in front of the call to expand_stack_alignment.
4763
47642018-11-07  Max Filippov  <jcmvbkbc@gmail.com>
4765
4766	Backport from mainline
4767	2018-11-05  Max Filippov  <jcmvbkbc@gmail.com>
4768
4769	* config/xtensa/uclinux.h (XTENSA_ALWAYS_PIC): Change to 0.
4770
47712018-11-05  Jakub Jelinek  <jakub@redhat.com>
4772
4773	PR tree-optimization/87859
4774	* gimple-ssa-store-merging.c (struct merged_store_group): Add
4775	first_nonmergeable_order member.
4776	(merged_store_group::merged_store_group): Initialize them.
4777	(imm_store_chain_info::coalesce_immediate_stores): Don't merge
4778	stores with order >= first_nonmergeable_order.
4779	Set merged_store->first_nonmergeable_order if we've skipped any
4780	stores.  Attempt to merge overlapping INTEGER_CST stores that
4781	we would otherwise skip.
4782
4783	PR sanitizer/87837
4784	* match.pd (X + Y < X): Don't optimize if TYPE_OVERFLOW_SANITIZED.
4785
4786	Backported from mainline
4787	2018-10-20  Jakub Jelinek  <jakub@redhat.com>
4788
4789	PR middle-end/87647
4790	* varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR.
4791
4792	2018-10-19  Jakub Jelinek  <jakub@redhat.com>
4793
4794	PR middle-end/85488
4795	PR middle-end/87649
4796	* omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without
4797	depend closely nested inside of loop with ordered clause with
4798	a parameter.
4799
48002018-10-29  Richard Biener  <rguenther@suse.de>
4801
4802	Backport from mainline
4803	2018-09-26  Richard Biener  <rguenther@suse.de>
4804
4805	PR debug/87428
4806	PR debug/87362
4807	* tree-inline.c (expand_call_inline): When the location
4808	of the call is UNKNOWN_LOCATION use DECL_SOURCE_LOCATION
4809	or BUILTINS_LOCATION for the BLOCK_SOURCE_LOCATION of
4810	the inserted BLOCK to make inlined_function_outer_scope_p
4811	recognize it.
4812	* dwarf2out.c (add_call_src_coords_attributes): Do not add
4813	coords for reserved locations.
4814
48152018-10-28  Iain Sandoe  <iain@sandoe.co.uk>
4816
4817	Backport from mainline
4818	2018-08-22  Iain Sandoe  <iain@sandoe.co.uk>
4819
4820	PR bootstrap/81033
4821	PR target/81733
4822	PR target/52795
4823	* gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New.
4824	(dwarf2out_switch_text_section): Generate a local label for the second
4825	function sub-section and apply it as the second FDE start label.
4826	* gcc/final.c (final_scan_insn_1): Emit second FDE label after the
4827	second sub-section start.
4828
48292018-10-28  Iain Sandoe  <iain@sandoe.co.uk>
4830
4831	Backport from mainline
4832	2018-08-15  Iain Sandoe  <iain@sandoe.co.uk>
4833
4834	* config/darwin.c
4835	(darwin_function_switched_text_sections): Delete.
4836	* gcc/config/darwin.h
4837	(TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): Likewise.
4838
48392018-10-28  Iain Sandoe  <iain@sandoe.co.uk>
4840
4841	backport from mainline.
4842	2018-10-28  Iain Sandoe  <iain@sandoe.co.uk>
4843
4844	PR target/85669
4845	* config/rs6000/darwin.h (STACK_BOUNDARY): New.
4846	(RS6000_STARTING_FRAME_OFFSET): Adjust to preserve 16byte alignment.
4847	(STACK_DYNAMIC_OFFSET): Likewise.
4848
48492018-10-26  Bill Schmidt  <wschmidt@linux.ibm.com>
4850
4851	Backport from mainline
4852	2018-10-19  Bill Schmidt  <wschmidt@linux.ibm.com>
4853
4854	PR tree-optimization/87473
4855	* gimple-ssa-strength-reduction.c (record_phi_increments_1): For
4856	phi arguments identical to the base expression of the phi
4857	candidate, record a phi-adjust increment of zero minus the index
4858	expression of the hidden basis.
4859	(phi_incr_cost_1): For phi arguments identical to the base
4860	expression of the phi candidate, the difference to compare against
4861	the increment is zero minus the index expression of the hidden
4862	basis, and there is no potential savings from replacing the (phi)
4863	statement.
4864	(ncd_with_phi): For phi arguments identical to the base expression
4865	of the phi candidate, the difference to compare against the
4866	increment is zero minus the index expression of the hidden basis.
4867	(all_phi_incrs_profitable_1): For phi arguments identical to the
4868	base expression of the phi candidate, the increment to be checked
4869	for profitability is zero minus the index expression of the hidden
4870	basis.
4871
48722018-10-25  Richard Biener  <rguenther@suse.de>
4873
4874	PR tree-optimization/87665
4875	PR tree-optimization/87745
4876	* tree-vectorizer.h (get_earlier_stmt): Remove.
4877	(get_later_stmt): Pick up UID from the original non-pattern stmt.
4878
48792018-10-24  Richard Biener  <rguenther@suse.de>
4880
4881	PR tree-optimization/87665
4882	* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust
4883	to reflect reality.
4884
48852018-10-23  Richard Biener  <rguenther@suse.de>
4886
4887	PR tree-optimization/87700
4888	* tree-ssa-copy.c (set_copy_of_val): Fix change detection logic.
4889
48902018-10-19  Richard Biener  <rguenther@suse.de>
4891
4892	PR middle-end/87645
4893	Backport from mainline
4894	2018-07-12  Richard Biener  <rguenther@suse.de>
4895
4896	* tree-ssa-sccvn.c (mprts_hook_cnt): Remove.
4897	(vn_lookup_simplify_result): Remove recursion limit applied
4898	here.
4899	(vn_nary_build_or_lookup_1): Adjust.
4900	(try_to_simplify): Likewise.
4901	* gimple-match-head.c (gimple_resimplify1): Instead apply one
4902	here.
4903	(gimple_resimplify2): Likewise.
4904	(gimple_resimplify3): Likewise.
4905	(gimple_resimplify4): Likewise.
4906
49072018-10-19  Andreas Krebbel  <krebbel@linux.ibm.com>
4908
4909	Backport from mainline
4910	2018-10-15  Andreas Krebbel  <krebbel@linux.ibm.com>
4911
4912	* config/s390/s390.c (s390_expand_vec_init): Force vector element
4913	into reg if it isn't a general operand.
4914
49152018-10-18  Richard Biener  <rguenther@suse.de>
4916
4917	PR middle-end/87087
4918	Revert
4919	2018-02-07  Richard Biener  <rguenther@suse.de>
4920
4921	PR tree-optimization/84204
4922	* tree-chrec.c (chrec_fold_plus_1): Remove size limiting in
4923	this place.
4924
49252018-10-17  Eric Botcazou  <ebotcazou@adacore.com>
4926
4927	PR middle-end/87623
4928	* fold-const.c (fold_truth_andor_1): If the right side is not constant,
4929	bail out if both sides do not have the same storage order.
4930
49312018-10-17  Richard Biener  <rguenther@suse.de>
4932
4933	Backport from mainline
4934	2018-10-08  Richard Sandiford  <richard.sandiford@arm.com>
4935
4936	PR middle-end/63155
4937	* gimple-ssa-backprop.c (backprop::intersect_uses): Use
4938	FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT.
4939
49402018-10-16  Richard Biener  <rguenther@suse.de>
4941
4942	Backport from mainline
4943	2018-10-08  Richard Biener  <rguenther@suse.de>
4944
4945	PR tree-optimization/63155
4946	* tree-ssa-propagate.c (add_ssa_edge): Do cheap check first.
4947	(ssa_propagation_engine::ssa_propagate): Remove redundant
4948	bitmap bit clearing.
4949
4950	2018-10-05  Richard Biener  <rguenther@suse.de>
4951
4952	PR tree-optimization/63155
4953	* tree-ssa-ccp.c (ccp_propagate::visit_phi): Avoid excess
4954	vertical space in dumpfiles.
4955	* tree-ssa-propagate.h
4956	(ssa_propagation_engine::process_ssa_edge_worklist): Remove.
4957	* tree-ssa-propagate.c (cfg_blocks_back): New global.
4958	(ssa_edge_worklist_back): Likewise.
4959	(curr_order): Likewise.
4960	(cfg_blocks_get): Remove abstraction.
4961	(cfg_blocks_add): Likewise.
4962	(cfg_blocks_empty_p): Likewise.
4963	(add_ssa_edge): Add to current or next worklist based on
4964	RPO index.
4965	(add_control_edge): Likewise.
4966	(ssa_propagation_engine::process_ssa_edge_worklist): Fold
4967	into ...
4968	(ssa_propagation_engine::ssa_propagate): ... here.  Unify
4969	iteration from CFG and SSA edge worklist so we process
4970	everything in RPO order, prioritizing forward progress
4971	over iteration.
4972	(ssa_prop_init): Allocate new worklists, do not dump
4973	immediate uses.
4974	(ssa_prop_fini): Free new worklists.
4975
4976	2018-09-24  Richard Biener  <rguenther@suse.de>
4977
4978	PR tree-optimization/63155
4979	* tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to
4980	the worklist when the edge of the respective argument isn't
4981	executable.
4982
49832018-10-16  Wilco Dijkstra  <wdijkstr@arm.com>
4984
4985	Backported from mainline
4986	PR target/87511
4987	* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
4988	Use HOST_WIDE_INT_1U for shift.
4989
49902018-10-16  Richard Biener  <rguenther@suse.de>
4991
4992	Backport from mainline
4993	2018-09-18  Richard Biener  <rguenther@suse.de>
4994
4995	PR middle-end/63155
4996	* tree-ssa-coalesce.c (tree_int_map_hasher): Remove.
4997	(compute_samebase_partition_bases): Likewise.
4998	(coalesce_ssa_name): Always use compute_optimized_partition_bases.
4999	(gimple_can_coalesce_p): Simplify.
5000
50012018-10-16  Richard Biener  <rguenther@suse.de>
5002
5003	Backport from mainline
5004	2018-10-15  Richard Biener  <rguenther@suse.de>
5005
5006	PR middle-end/87610
5007	* tree-ssa-structalias.c (struct vls_data): Add escaped_p member.
5008	(visit_loadstore): When a used restrict tag escaped verify that
5009	the points-to solution of "other" pointers do not include
5010	escaped.
5011	(compute_dependence_clique): If a used restrict tag escaped
5012	communicated that down to visit_loadstore.
5013
5014	2018-10-01  Richard Biener  <rguenther@suse.de>
5015
5016	PR tree-optimization/87465
5017	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix typo
5018	causing branch miscounts.
5019
50202018-10-11  Jakub Jelinek  <jakub@redhat.com>
5021
5022	Backported from mainline
5023	2018-10-10  Jakub Jelinek  <jakub@redhat.com>
5024
5025	PR target/87550
5026	* config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set
5027	to special_args set.
5028
5029	2018-09-26  Jakub Jelinek  <jakub@redhat.com>
5030
5031	PR target/87414
5032	* config/i386/i386.c: Include debug.h and dwarf2out.h.
5033	(output_indirect_thunk): Emit DW_CFA_def_cfa_offset after the
5034	call.
5035
5036	2018-09-12  Jakub Jelinek  <jakub@redhat.com>
5037		    Andreas Krebbel  <krebbel@linux.ibm.com>
5038
5039	PR tree-optimization/86844
5040	* gimple-ssa-store-merging.c
5041	(imm_store_chain_info::coalesce_immediate): For overlapping stores, if
5042	there are any overlapping stores in between them, make sure they are
5043	also coalesced or we give up completely.
5044
50452018-10-09  Will Schmidt <will_schmidt@vnet.ibm.com>
5046
5047	Backport from trunk.
5048	2018-09-06  Will Schmidt  <will_schmidt@vnet.ibm.com>
5049
5050	PR target/86731
5051	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Update logic
5052	around folding of vec_sl to handle out of range shift values.
5053
50542018-10-09  H.J. Lu  <hongjiu.lu@intel.com>
5055
5056	Backport from mainline
5057	2018-09-29  H.J. Lu  <hongjiu.lu@intel.com>
5058
5059	PR target/87370
5060	* config/i386/i386.c (construct_container): Use TImode for
5061	BLKmode values in 2 integer registers.
5062
50632018-10-08  H.J. Lu  <hongjiu.lu@intel.com>
5064
5065	Backport from mainline
5066	2018-10-08  H.J. Lu  <hongjiu.lu@intel.com>
5067
5068	PR target/87517
5069	* config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd):
5070	Defined with __builtin_ia32_vfmaddsubpd512_mask.
5071
50722018-10-05  H.J. Lu  <hongjiu.lu@intel.com>
5073
5074	Backport from mainline
5075	2018-10-05  H.J. Lu  <hongjiu.lu@intel.com>
5076
5077	PR target/87522
5078	* config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to
5079	assembler for -mavx.
5080	* config/i386/gnu-user64.h (ASM_SPEC): Likewise.
5081
50822018-10-03  Uros Bizjak  <ubizjak@gmail.com>
5083
5084	Backport from mainline
5085	2018-09-28  Uros Bizjak  <ubizjak@gmail.com>
5086
5087	* config/i386/i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG.
5088	(GET_SSE_REGNO): Rename from SSE_REGNO.  Update all uses for rename.
5089
50902018-10-03  Jonathan Wakely  <jwakely@redhat.com>
5091
5092	PR other/87353
5093	* doc/invoke.texi (Link Options): Fix formatting and grammar.
5094
50952018-10-03  Martin Liska  <mliska@suse.cz>
5096
5097	Backport from mainline
5098	2018-10-03  Martin Liska  <mliska@suse.cz>
5099
5100	PR gcov-profile/86109
5101	* coverage.c (coverage_begin_function): Do not
5102	mark lambdas as artificial.
5103	* tree-core.h (struct GTY): Remove tm_clone_flag
5104	and introduce new lambda_function.
5105	* tree.h (DECL_LAMBDA_FUNCTION): New macro.
5106
51072018-10-02  H.J. Lu  <hongjiu.lu@intel.com>
5108
5109	Backport from mainline
5110	2018-09-24  H.J. Lu  <hongjiu.lu@intel.com>
5111
5112	PR target/82699
5113	* config/i386/i386.c (rest_of_insert_endbranch): Set
5114	endbr_queued_at_entrance to true and don't insert ENDBR if
5115	x86_function_profiler will be called.
5116	(x86_function_profiler): Insert ENDBR if endbr_queued_at_entrance
5117	is true.
5118	* config/i386/i386.h (machine_function): Add
5119	endbr_queued_at_entrance.
5120
51212018-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5122
5123	Backport from mainline
5124	2018-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5125
5126	* config/arm/arm.c (output_move_double): Don't allow STRD instructions
5127	if starting source register is not even.
5128
51292018-09-29  Jakub Jelinek  <jakub@redhat.com>
5130
5131	PR target/87467
5132	* config/i386/avx512fintrin.h (_mm512_abs_pd, _mm512_mask_abs_pd): Use
5133	__m512d type for __A argument rather than __m512.
5134
51352018-09-27  Michael Meissner  <meissner@linux.ibm.com>
5136
5137	Backport from mainline
5138	2018-08-20  Michael Meissner  <meissner@linux.ibm.com>
5139
5140	PR target/87033
5141	* config/rs6000/rs6000.md (extendsi<mode>2): Change constraints
5142	from 'Y' to 'YZ' to enable the LWAX instruction to be generated
5143	for indexed loads.
5144
51452018-09-25  Martin Liska  <mliska@suse.cz>
5146
5147	Backport from mainline
5148	2018-09-24  Martin Liska  <mliska@suse.cz>
5149
5150	PR sanitizer/85774
5151	* asan.c: Make asan_handled_variables extern.
5152	* asan.h: Likewise.
5153	* cfgexpand.c (expand_stack_vars): Make sure
5154	a representative is unpoison if another
5155	variable in the partition is handled by
5156	use-after-scope sanitization.
5157
51582018-09-24  Andrew Pinski  <apinski@marvell.com>
5159
5160	*  config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Don't
5161	access prev before checking it for NULLness in the
5162	AARCH64_FUSE_CMP_BRANCH case.
5163
51642018-09-21  Eric Botcazou  <ebotcazou@adacore.com>
5165
5166	* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false
5167	if the call takes a static chain.
5168
51692018-09-19  John David Anglin  <danglin@gcc.gnu.org>
5170
5171	* config/pa/pa.md (atomic_storeqi): Restore deleted expander.
5172	(atomic_storehi): Likewise.
5173	(atomic_storesi): Likewise.
5174	(atomic_loaddi): Restore compare and swap exchange loop code.
5175
51762018-09-18  Segher Boessenkool  <segher@kernel.crashing.org>
5177
5178	Backport from trunk
5179	2018-09-18  Segher Boessenkool  <segher@kernel.crashing.org>
5180
5181	PR rtl-optimization/86882
5182	* rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER.
5183
51842018-09-18  Martin Liska  <mliska@suse.cz>
5185
5186	Backport from mainline
5187	2018-09-17  Martin Liska  <mliska@suse.cz>
5188
5189	PR gcov-profile/85871
5190	* gcov.c (output_intermediate_file): Fix out of bounds
5191	access.
5192
51932018-09-16  Hans-Peter Nilsson  <hp@bitrange.com>
5194
5195	PR target/85666
5196	* config/mmix/mmix.c (mmix_assemble_integer): Handle byte-size
5197	non-CONST_INT rtx:es using assemble_integer_with_op ".byte".
5198	(MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): Don't call
5199	leaf_function_p, instead use has_hard_reg_initial_val.
5200
52012018-09-14  John David Anglin  <danglin@gcc.gnu.org>
5202
5203	PR middle-end/87188
5204	* dojump.c (do_compare_and_jump): Canonicalize function pointers
5205	when one operand is a function pointer.  Use POINTER_TYPE_P and
5206	FUNC_OR_METHOD_TYPE_P.
5207	* expr.c (do_store_flag): Use POINTER_TYPE_P and FUNC_OR_METHOD_TYPE_P.
5208	* fold-const.c (build_range_check): Likewise.
5209	* match.pd (simple_comparison): Likewise.
5210
52112018-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
5212
5213	Backport from trunk
5214	2018-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
5215
5216	PR target/87224
5217	* config/rs6000/rs6000.md (*mov<mode>_hardfloat64): Add Z to the Y
5218	alternatives.
5219
52202018-09-14  Carl Love  <cel@us.ibm.com>
5221
5222	Backport from trunk
5223	2018-09-14  Carl Love  <cel@us.ibm.com>
5224
5225	* config/rs6000/emmintrin.h: Add _MM_SHUFFLE2.
5226	* config/rs6000/xmmintrin.h: Add _MM_SHUFFLE.
5227
52282018-09-12  Segher Boessenkool  <segher@kernel.crashing.org>
5229
5230	Backport from trunk
5231	2018-08-24  Segher Boessenkool  <segher@kernel.crashing.org>
5232
5233	PR target/86989
5234	* config/rs6000/rs6000.c (toc_relative_expr_p): Check that the base is
5235	the TOC register.
5236
52372018-09-12  Segher Boessenkool  <segher@kernel.crashing.org>
5238
5239	Backport from trunk
5240	2018-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
5241
5242	PR rtl-optimization/86771
5243	* combine.c (try_combine): Do not allow splitting a resulting PARALLEL
5244	of two SETs into those two SETs, one to be placed at i2, if that SETs
5245	destination is modified between i2 and i3.
5246
52472018-09-12  Andreas Krebbel  <krebbel@linux.ibm.com>
5248
5249	Backport from mainline
5250	2018-09-12  Andreas Krebbel  <krebbel@linux.ibm.com>
5251
5252	* config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New
5253	constants.
5254	("trunc<BFP:mode><DFP_ALL:mode>2")
5255	("trunc<DFP_ALL:mode><BFP:mode>2")
5256	("extend<BFP:mode><DFP_ALL:mode>2")
5257	("extend<DFP_ALL:mode><BFP:mode>2"): Set proper rounding mode
5258	according to the target operand type.
5259
52602018-09-12  Jakub Jelinek  <jakub@redhat.com>
5261
5262	PR middle-end/87248
5263	* fold-const.c (fold_ternary_loc) <case COND_EXPR>: Verify also that
5264	BIT_AND_EXPR's second operand is a power of two.  Formatting fix.
5265
52662018-09-05  Nathan Sidwell  <nathan@acm.org>
5267
5268	PR c++/87137
5269	* stor-layout.c (place_field): Scan forwards to check last
5270	bitfield when ms_bitfield_placement is in effect.
5271
52722018-09-05  Richard Biener  <rguenther@suse.de>
5273
5274	PR bootstrap/87225
5275	* tree-vect-stmts.c (vectorizable_simd_clone_call): Fix bogus
5276	return.
5277
52782018-09-05  Jakub Jelinek  <jakub@redhat.com>
5279
5280	Backported from mainline
5281	2018-09-04  Jakub Jelinek  <jakub@redhat.com>
5282
5283	PR target/87198
5284	* common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET,
5285	OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use
5286	OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE.
5287	(OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET
5288	and OPTION_MASK_ISA_XSAVEC_UNSET.
5289
5290	2018-08-31  Jakub Jelinek  <jakub@redhat.com>
5291
5292	PR middle-end/87138
5293	* expmed.c (expand_mult_const): Use immed_wide_int_const instead of
5294	gen_int_mode.  Formatting fixes.
5295
5296	2018-08-11  Jakub Jelinek  <jakub@redhat.com>
5297
5298	PR tree-optimization/86835
5299	* tree-ssa-math-opts.c (insert_reciprocals): Even when inserting
5300	new_stmt after def_gsi, make sure to insert new_square_stmt after
5301	that stmt, not 2 stmts before it.
5302
53032018-09-04  Max Filippov  <jcmvbkbc@gmail.com>
5304
5305	Backport from mainline
5306	2018-09-04  Max Filippov  <jcmvbkbc@gmail.com>
5307
5308	* config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and
5309	XOR operations in NAND case.
5310
53112018-09-04  Jonathan Wakely  <jwakely@redhat.com>
5312
5313	* doc/invoke.texi (Option Summary): Add -Waligned-new.
5314
53152018-09-03  Tom de Vries  <tdevries@suse.de>
5316
5317	backport from trunk:
5318	2018-06-21  Tom de Vries  <tdevries@suse.de>
5319
5320	PR tree-optimization/85859
5321	* tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call
5322	test with comment from bb_no_side_effects_p.
5323
53242018-09-01  Michael Matz  <matz@suse.de>
5325
5326	Backport from mainline
5327	PR tree-optimization/87074
5328	* gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit
5329	PHIs for outer-loop uses.
5330
53312018-08-31  Richard Biener  <rguenther@suse.de>
5332
5333	Backport from mainline
5334	2018-08-27  Richard Biener  <rguenther@suse.de>
5335
5336	PR tree-optimization/86927
5337	* tree-vect-loop.c (vect_create_epilog_for_reduction): Properly
5338	use const cond reduction code.
5339
5340	2018-08-23  Richard Biener  <rguenther@suse.de>
5341
5342	PR middle-end/87024
5343	* tree-inline.c (copy_bb): Drop unused __builtin_va_arg_pack_len
5344	calls.
5345
5346	2018-08-22  Richard Biener  <rguenther@suse.de>
5347
5348	PR tree-optimization/86945
5349	* tree-cfg.c (generate_range_test): Use unsigned arithmetic.
5350
5351	2018-08-17  Richard Biener  <rguenther@suse.de>
5352
5353	PR middle-end/86505
5354	* tree-inline.c (copy_bb): When inlining __builtin_va_arg_pack_len ()
5355	across a va-arg-pack using call adjust its return value accordingly.
5356
5357	2018-08-02  Richard Biener  <rguenther@suse.de>
5358
5359	PR tree-optimization/86816
5360	* tree-ssa-tail-merge.c (tail_merge_valueize): New function
5361	which checks for value availability before querying it.
5362	(gvn_uses_equal): Use it.
5363	(same_succ_hash): Likewise.
5364	(gimple_equal_p): Likewise.
5365
5366	2018-07-17  Richard Biener  <rguenther@suse.de>
5367
5368	PR lto/86456
5369	* dwarf2out.c (init_sections_and_labels): Always generate
5370	a debug_line_str_section for early LTO debug.
5371	(dwarf2out_finish): Reset debug_line_str_hash output early.
5372	Bump counter for extra dwarf5 .debug_loc labels to not conflict
5373	with fat LTO part.
5374	(dwarf2out_early_finish): Output debug_line_str.
5375
53762018-08-29  Luis Machado  <luis.machado@linaro.org>
5377
5378	* config/aarch64/aarch64.c (qdf24xx_vector_cost): New static global.
5379	(qdf24xx_tunings): Set vector cost structure to qdf24xx_vector_cost.
5380
53812018-08-29  Luis Machado  <luis.machado@linaro.org>
5382
5383	* config/aarch64/aarch64.c (qdf24xx_addrcost_table)
5384	<register_sextend>: Set to 3.
5385
53862018-08-27  Martin Sebor  <msebor@redhat.com>
5387
5388	PR tree-optimization/86914
5389	* tree-ssa-strlen.c (maybe_set_strlen_range): Avoid MEM_REF.
5390
53912018-08-28  Jakub Jelinek  <jakub@redhat.com>
5392
5393	PR middle-end/87099
5394	* calls.c (maybe_warn_nonstring_arg): Punt early if
5395	warn_stringop_overflow is zero.  Don't call get_range_strlen
5396	on 3rd argument, keep iterating until lenrng[1] is INTEGER_CST.
5397	Only use lenrng[1] if non-NULL and INTEGER_CST.  Don't uselessly
5398	increment lenrng[0].
5399
54002018-08-27  Jakub Jelinek  <jakub@redhat.com>
5401
5402	PR rtl-optimization/87065
5403	* combine.c (simplify_if_then_else): Formatting fix.
5404	(if_then_else_cond): Guard MULT optimization with SCALAR_INT_MODE_P
5405	check.
5406	(known_cond): Don't return const_true_rtx for vector modes.  Use
5407	CONST0_RTX instead of const0_rtx.  Formatting fixes.
5408
54092018-08-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5410
5411	Backport from mainline
5412	PR target/86662
5413	* gcc/tree.c (build_common_tree_nodes): Initialize integer_types array
5414	with all enabled __intN types.
5415
5416	* gcc/testsuite/gcc.target/msp430/pr86662.c: New test.
5417
54182018-08-21  H.J. Lu  <hongjiu.lu@intel.com>
5419
5420	Backport from mainline
5421	2018-08-20  H.J. Lu  <hongjiu.lu@intel.com>
5422
5423	PR target/87014
5424	* config/i386/i386.md (eh_return): Always update EH return
5425	address in word_mode.
5426
54272018-08-17  John David Anglin  <danglin@gcc.gnu.org>
5428
5429	Backport from mainline
5430	2018-08-11  John David Anglin  <danglin@gcc.gnu.org>
5431
5432	* config/pa/pa.md (UNSPEC_MEMORY_BARRIER): New unspec enum.
5433	Update comment for atomic instructions.
5434	(atomic_storeqi, atomic_storehi, atomic_storesi, atomic_storesf,
5435	atomic_loaddf, atomic_loaddf_1, atomic_storedf, atomic_storedf_1):
5436	Remove.
5437	(atomic_loaddi): Revise fence expansion to only emit fence prior to
5438	load for __ATOMIC_SEQ_CST model.
5439	(atomic_loaddi_1): Remove float register target.
5440	(atomic_storedi): Handle CONST_INT values.
5441	(atomic_storedi_1): Remove float register source.  Add special case
5442	for zero value.
5443	(memory_barrier): New expander and insn.
5444
54452018-08-16  Tamar Christina <tamar.christina@arm.com>
5446
5447	Backport from mainline
5448	2018-07-30  Segher Boessenkool  <segher@kernel.crashing.org>
5449
5450	PR target/86640
5451	* config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode
5452	instead of GEN_INT.
5453
54542018-08-16  Martin Liska  <mliska@suse.cz>
5455
5456	Backport from mainline
5457	2018-08-02  Martin Liska  <mliska@suse.cz>
5458
5459	PR gcov-profile/86817
5460	* gcov.c (process_all_functions): New function.
5461	(main): Call it.
5462	(process_file): Move functions processing to
5463	process_all_functions.
5464
54652018-08-14  Siddhesh Poyarekar  <siddhesh@sourceware.org>
5466
5467	Backport from mainline
5468	2018-08-03  Siddhesh Poyarekar  <siddhesh@sourceware.org>
5469
5470	* config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move
5471	neon_dup_q to...
5472	(falkor_am_1_gtov_gtov): ... a new insn reservation.
5473
54742018-08-13  Liu Hao  <lh_mouse@126.com>
5475
5476	Backport from mainline
5477	2018-08-13  Liu Hao  <lh_mouse@126.com>
5478
5479	* pretty-print.c (eat_esc_sequence): Swap the foreground and
5480	background colors if the COMMON_LVB_REVERSE_VIDEO flag is set,
5481	and clear it thereafter, as it only works for DBCS.
5482
54832018-08-13  Liu Hao  <lh_mouse@126.com>
5484
5485	Backport from mainline
5486	2018-08-13  Liu	Hao  <lh_mouse@126.com>
5487
5488	* pretty-print.c (mingw_ansi_fputs): Do not call _close() on the
5489	handle returned by _get_osf_handle().
5490
54912018-08-14  Richard Sandiford  <richard.sandiford@arm.com>
5492
5493	Backport from mainline
5494	2018-08-09  Richard Sandiford  <richard.sandiford@arm.com>
5495
5496	PR tree-optimization/86871
5497	* tree-vect-stmts.c (vect_transform_stmt): Use gimple_get_lhs
5498	instead of gimple_assign_lhs.
5499
55002018-08-07  H.J. Lu  <hongjiu.lu@intel.com>
5501
5502	Backport from mainline
5503	2018-08-05  H.J. Lu  <hongjiu.lu@intel.com>
5504
5505	PR target/86386
5506	* config/i386/i386.c (ix86_finalize_stack_frame_flags): Set
5507	cfun->machine->max_used_stack_alignment if needed.
5508
55092018-08-02  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5510
5511	Backport from mainline
5512	2018-07-31  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5513
5514	PR middle-end/86705
5515	* gcc/cfgexpand.c (set_parm_rtl): Use the alignment of Pmode when
5516	MAX_SUPPORTED_STACK_ALIGNMENT would otherwise be exceeded by the
5517	requested variable alignment.
5518	(expand_one_ssa_partition): Likewise.
5519	(expand_one_var): Likewise.
5520
55212018-08-02  Andreas Schwab  <schwab@linux-m68k.org>
5522
5523	Backport from mainline
5524	2018-07-17  Andreas Schwab  <schwab@linux-m68k.org>
5525
5526	PR target/86820
5527	* config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart)
5528	(smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT.
5529
55302018-08-01  Richard Biener  <rguenther@suse.de>
5531
5532	PR bootstrap/86724
5533	* graphite.h: Include isl/id.h and isl/space.h to allow build
5534	with ISL 0.20.
5535
55362018-08-01 Jan Willem Jagersma  <jwjagersma@gmail.com>
5537
5538	PR target/86651
5539	* dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO
5540	mode for COFF targets.
5541	* defaults.h (TARGET_COFF): Define.
5542	* config/i386/djgpp.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END,
5543	TARGET_COFF): Define.
5544	(i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): Declare.
5545	* config/i386/djgpp.c (saved_debug_info_level): New static variable.
5546	(i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): New functions.
5547
55482018-07-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5549
5550	Backport from mainline
5551	2018-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5552
5553	PR c/86617
5554	* genmatch.c (dt_operand::gen_match_op): Avoid folding volatile values.
5555
55562018-07-29  John David Anglin  <danglin@gcc.gnu.org>
5557
5558	* config/pa/pa.c (pa_output_addr_vec): Align address table.
5559	* config/pa/pa.h (JUMP_TABLES_IN_TEXT_SECTION): Revise comment.
5560	* config/pa/pa32-linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
5561
55622018-07-26  Uros Bizjak  <ubizjak@gmail.com>
5563
5564	Backport from mainline
5565	2018-07-16  Uros Bizjak  <ubizjak@gmail.com>
5566
5567	PR target/86511
5568	* expmed.c (emit_store_flag): Do not emit setcc followed by a
5569	conditional move when trapping comparison was split to a
5570	non-trapping one (and vice versa).
5571
55722018-07-26  Jakub Jelinek  <jakub@redhat.com>
5573
5574	Backported from mainline
5575	2018-07-24  Jakub Jelinek  <jakub@redhat.com>
5576
5577	PR middle-end/86627
5578	* expmed.c (expand_divmod): Punt if d == HOST_WIDE_INT_MIN
5579	and size > HOST_BITS_PER_WIDE_INT.  For size > HOST_BITS_PER_WIDE_INT
5580	and abs_d == d, do the power of two handling if profitable.
5581
5582	2018-07-17  Jakub Jelinek  <jakub@redhat.com>
5583
5584	PR middle-end/86542
5585	* omp-low.c (create_task_copyfn): Copy over also fields corresponding
5586	to _looptemp_ clauses, other than the first two.
5587
5588	PR middle-end/86539
5589	* gimplify.c (gimplify_omp_for): Ensure taskloop firstprivatized init
5590	and cond temporaries don't have reference type if iterator has
5591	pointer type.  For init use &for_pre_body instead of pre_p if
5592	for_pre_body is non-empty.
5593
55942018-07-26  Jakub Jelinek  <jakub@redhat.com>
5595
5596	PR middle-end/86660
5597	* omp-low.c (scan_sharing_clauses): Don't ignore map clauses for
5598	declare target to variables if they have always,{to,from,tofrom} map
5599	kinds.
5600
5601	* BASE-VER: Set to 8.2.1.
5602
56032018-07-26  Release Manager
5604
5605	* GCC 8.2.0 released.
5606
56072018-07-18  Martin Sebor  <msebor@redhat.com>
5608
5609	PR middle-end/85602
5610	* calls.c (maybe_warn_nonstring_arg): Handle strncat.
5611	* tree-ssa-strlen.c (is_strlen_related_p): Make extern.
5612	Handle integer subtraction.
5613	(maybe_diag_stxncpy_trunc): Handle nonstring source arguments.
5614	* tree-ssa-strlen.h (is_strlen_related_p): Declare.
5615	* doc/invoke.texi (-Wstringop-truncation): Update.
5616
5617gcc/testsuite/ChangeLog:
5618
56192018-07-16  Claudiu Zissulescu  <claziss@synopsys.com>
5620
5621	Backport from mainline
5622	2017-03-24  Claudiu Zissulescu  <claziss@synopsys.com>
5623
5624	* config/arc/arc-protos.h (arc_pad_return): Remove.
5625	* config/arc/arc.c (machine_function): Remove force_short_suffix
5626	and size_reason.
5627	(arc_print_operand): Adjust printing of '&'.
5628	(arc_verify_short): Remove conditional printing of short suffix.
5629	(arc_final_prescan_insn): Remove reference to size_reason.
5630	(pad_return): New function.
5631	(arc_reorg): Call pad_return.
5632	(arc_pad_return): Remove.
5633	(arc_init_machine_status): Remove reference to force_short_suffix.
5634	* config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE.
5635	(attr length): When attribute iscompact is true force to 2
5636	regardless; in the case of maybe check if we want to force the
5637	instruction to have 4 bytes length.
5638	(nopv): Change it to generate 4 byte long nop as well.
5639	(blockage): New pattern.
5640	(simple_return): Remove call to arc_pad_return.
5641	(p_return_i): Likewise.
5642
56432018-07-19  Richard Biener  <rguenther@suse.de>
5644
5645	Backport from mainline
5646	2018-07-13  Richard Biener  <rguenther@suse.de>
5647
5648	PR debug/86452
5649	* dwarf2out.c (gen_type_die_with_usage): Use scope_die_for
5650	instead of get_context_die.
5651
5652	2018-07-11  Richard Biener  <rguenther@suse.de>
5653
5654	PR debug/86457
5655	* dwarf2out.c (init_sections_and_labels): Use
5656	output_asm_line_debug_info consistently.
5657	(dwarf2out_early_finish): Likewise.
5658	(dwarf2out_finish): Remove DW_AT_stmt_list from early generated
5659	type units.
5660
56612018-07-16  Richard Biener  <rguenther@suse.de>
5662
5663	Backport from mainline
5664	2018-07-13  Richard Biener  <rguenther@suse.de>
5665
5666	PR middle-end/85974
5667	* match.pd (addr1 - addr2): Allow either of the operand to
5668	have a conversion.
5669
5670	2018-06-15  Richard Biener  <rguenther@suse.de>
5671
5672	PR middle-end/86076
5673	* tree-cfg.c (move_stmt_op): unshare invariant addresses
5674	before adjusting their block.
5675
5676	2018-06-06  Richard Biener  <rguenther@suse.de>
5677
5678	PR tree-optimization/85935
5679	* graphite-scop-detection.c (find_params_in_bb): Analyze
5680	condition operands with respect to the correct loop.  Assert
5681	the analysis doesn't fail.
5682
56832018-07-16  Eric Botcazou  <ebotcazou@adacore.com>
5684
5685	PR tree-optimization/86514
5686	* tree-ssa-reassoc.c (init_range_entry) <CASE_CONVERT>: Return for a
5687	conversion to a boolean type from a type with greater precision.
5688
56892018-07-15  Bill Schmidt  <wschmidt@linux.ibm.com>
5690
5691	Backport from mainline
5692	2018-07-13  Bill Schmidt  <wschmidt@linux.ibm.com>
5693		    Steve Munroe  <munroesj52@gmail.com>
5694
5695	* config/rs6000/emmintrin.h (_mm_and_si128): New function.
5696	(_mm_andnot_si128): Likewise.
5697	(_mm_or_si128): Likewise.
5698	(_mm_xor_si128): Likewise.
5699
57002018-07-14  Martin Sebor  <msebor@redhat.com>
5701
5702	PR tree-optimization/86274
5703	* gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify
5704	precondition.
5705	(format_floating): Correct handling of infinities and NaNs.
5706
57072018-07-13  H.J. Lu  <hongjiu.lu@intel.com>
5708
5709	Backport from mainline
5710	2018-07-13  H.J. Lu  <hongjiu.lu@intel.com>
5711		    Sunil K Pandey  <sunil.k.pandey@intel.com>
5712
5713	PR target/84413
5714	* config/i386/i386.c (m_CORE_AVX512): New.
5715	(m_CORE_AVX2): Likewise.
5716	(m_CORE_ALL): Add m_CORE_AVX2.
5717	* config/i386/x86-tune.def: Replace m_HASWELL with m_CORE_AVX2.
5718	Replace m_SKYLAKE_AVX512 with m_CORE_AVX512 on avx256_optimal
5719	and remove the rest of m_SKYLAKE_AVX512.
5720
57212018-07-13  Marek Polacek  <polacek@redhat.com>
5722
5723	Backport from trunk
5724	2018-07-03  Marek Polacek  <polacek@redhat.com>
5725
5726	PR middle-end/86202
5727	* gimple-fold.c (size_must_be_zero_p): Check the type of the size.
5728
57292018-07-12  Richard Biener  <rguenther@suse.de>
5730
5731	PR target/84829
5732	* config/gnu-user.h (GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC):
5733	Remove -mieee-fp handling.
5734
57352018-07-12  Jakub Jelinek  <jakub@redhat.com>
5736
5737	PR tree-optimization/86492
5738	* gimple-ssa-store-merging.c
5739	(imm_store_chain_info::coalesce_immediate_stores): Call
5740	check_no_overlap even for the merge_overlapping case.
5741
57422018-07-11  Jakub Jelinek  <jakub@redhat.com>
5743
5744	* config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask):
5745	Use __mmask64 type instead of __mmask8 for __M argument.
5746	* config/i386/avx512fintrin.h (_mm512_mask_xor_epi64,
5747	_mm512_maskz_xor_epi64): Use __mmask8 type instead of __mmask16 for
5748	__U argument.
5749	(_mm512_mask_cmpneq_epi64_mask): Use __mmask8 type instead of
5750	__mmask16 for __M argument.
5751	(_mm512_maskz_insertf32x4, _mm512_maskz_inserti32x4,
5752	_mm512_mask_insertf32x4, _mm512_mask_inserti32x4): Cast last argument
5753	to __mmask16 instead of __mmask8.
5754	* config/i386/avx512vlintrin.h (_mm_mask_add_ps, _mm_maskz_add_ps,
5755	_mm256_mask_add_ps, _mm256_maskz_add_ps, _mm_mask_sub_ps,
5756	_mm_maskz_sub_ps, _mm256_mask_sub_ps, _mm256_maskz_sub_ps,
5757	_mm256_maskz_cvtepi32_ps, _mm_maskz_cvtepi32_ps): Use __mmask8 type
5758	instead of __mmask16 for __U argument.
5759	* config/i386/avx512vlbwintrin.h (_mm_mask_cmp_epi8_mask): Use
5760	__mmask16 instead of __mmask8 for __U argument.
5761	(_mm256_mask_cmp_epi8_mask): Use __mmask32 instead of __mmask16 for
5762	__U argument.
5763	(_mm256_cmp_epi8_mask): Use __mmask32 return type instead of
5764	__mmask16.
5765	(_mm_mask_cmp_epu8_mask): Use __mmask16 instead of __mmask8 for __U
5766	argument.
5767	(_mm256_mask_cmp_epu8_mask): Use __mmask32 instead of __mmask16 for
5768	__U argument.
5769	(_mm256_cmp_epu8_mask): Use __mmask32 return type instead of
5770	__mmask16.
5771	(_mm_mask_cmp_epi16_mask): Cast last argument to __mmask8 instead
5772	of __mmask16.
5773	(_mm256_mask_cvtepi8_epi16): Use __mmask16 instead of __mmask32 for
5774	__U argument.
5775	(_mm_mask_cvtepi8_epi16): Use __mmask8 instead of __mmask32 for
5776	__U argument.
5777	(_mm256_mask_cvtepu8_epi16): Use __mmask16 instead of __mmask32 for
5778	__U argument.
5779	(_mm_mask_cvtepu8_epi16): Use __mmask8 instead of __mmask32 for
5780	__U argument.
5781	(_mm256_mask_cmpneq_epu8_mask, _mm256_mask_cmplt_epu8_mask,
5782	_mm256_mask_cmpge_epu8_mask, _mm256_mask_cmple_epu8_mask): Change
5783	return type as well as __M argument type and all casts from __mmask8
5784	to __mmask32.
5785	(_mm256_mask_cmpneq_epu16_mask, _mm256_mask_cmplt_epu16_mask,
5786	_mm256_mask_cmpge_epu16_mask, _mm256_mask_cmple_epu16_mask): Change
5787	return type as well as __M argument type and all casts from __mmask8
5788	to __mmask16.
5789	(_mm256_mask_cmpneq_epi8_mask, _mm256_mask_cmplt_epi8_mask,
5790	_mm256_mask_cmpge_epi8_mask, _mm256_mask_cmple_epi8_mask): Change
5791	return type as well as __M argument type and all casts from __mmask8
5792	to __mmask32.
5793	(_mm256_mask_cmpneq_epi16_mask, _mm256_mask_cmplt_epi16_mask,
5794	_mm256_mask_cmpge_epi16_mask, _mm256_mask_cmple_epi16_mask): Change
5795	return type as well as __M argument type and all casts from __mmask8
5796	to __mmask16.
5797	* config/i386/avx512vbmi2vlintrin.h (_mm_mask_shrdi_epi32,
5798	_mm_mask_shldi_epi32): Cast last argument to __mmask8 instead of
5799	__mmask16.
5800
58012018-07-11  Grazvydas Ignotas  <notasas@gmail.com>
5802
5803	* config/i386/avx512bwintrin.h: (_mm512_mask_cmp_epi8_mask,
5804	_mm512_mask_cmp_epu8_mask): Use __mmask64 type instead of __mmask32
5805	for __U argument.
5806
58072018-07-05  Martin Sebor  <msebor@redhat.com>
5808
5809	PR c++/86400
5810	* tree-ssa-strlen.c (maybe_set_strlen_range): Use type size rather
5811	than its domain to compute its the upper bound of a char array.
5812
58132018-07-03  Carl Love  <cel@us.ibm.com>
5814
5815	Backport from trunk
5816	2018-07-03  Carl Love  <cel@us.ibm.com>
5817
5818	* config/rs6000/rs6000-c.c: Map ALTIVEC_BUILTIN_VEC_UNPACKH for
5819	float argument to VSX_BUILTIN_DOUBLEH_V4SF.
5820	Map ALTIVEC_BUILTIN_VEC_UNPACKL for float argument to
5821	VSX_BUILTIN_DOUBLEL_V4SF.
5822
58232018-07-04  Luis Machado  <luis.machado@linaro.org>
5824
5825	* config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static
5826	global.
5827	(qdf24xx_tunings) <addr_costs>: Set to qdf24xx_addrcost_table.
5828
58292018-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
5830
5831	Backport from trunk
5832	2018-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
5833
5834	PR target/86285
5835	* config/rs6000/rs6000.c (rs6000_init_builtins): Do not set
5836	ieee128_float_type_node to long_double_type_node unless
5837	TARGET_LONG_DOUBLE_128 is set.
5838
58392018-07-02  Eric Botcazou  <ebotcazou@adacore.com>
5840
5841	* config/i386/i386.c (ix86_finalize_stack_frame_flags): Do not overrule
5842	-fno-omit-frame-pointer when not optimizing.
5843
58442018-06-30  Alexandre Oliva  <aoliva@redhat.com>
5845
5846	PR debug/86064
5847	* dwarf2out.c (loc_list_has_views): Adjust comments.
5848	(dw_loc_list): Split single cross-partition range with
5849	nonzero locview.
5850
58512018-06-29  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5852
5853	Backport from mainline
5854	2018-06-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5855
5856	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
5857	behavior of vec_pack (vector double, vector double) to match
5858	behavior of vec_float2 (vector double, vector double).
5859
58602018-06-29  Jakub Jelinek  <jakub@redhat.com>
5861
5862	* config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H.
5863
58642018-06-28  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5865
5866	Backport from mainline
5867	2017-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
5868
5869	* doc/sourcebuild.texi (Endianness): New subsubsection.
5870
58712018-06-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5872
5873	Backport from mainline
5874	2018-06-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5875
5876	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
5877	behavior of vec_packsu (vector unsigned long long, vector unsigned
5878	long long) to match behavior of vec_packs with same signature.
5879
58802018-06-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
5881
5882	Backport from trunk
5883	2018-06-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
5884
5885	* config/rs6000/rs6000-string.c (expand_block_clear): Don't use
5886	unaligned vsx for 16B memset.
5887
58882018-06-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
5889
5890	Backport from trunk
5891	2018-06-22  Aaron Sawdey  <acsawdey@linux.ibm.com>
5892
5893	PR target/86222
5894	* config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32
5895	correctly.
5896
58972018-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
5898
5899	Backport from trunk
5900	2018-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
5901
5902	PR rtl-optimization/85645
5903	* regrename.c (build_def_use): Also kill the chains that include the
5904	destination of a REG_CFA_REGISTER note.
5905
59062018-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
5907
5908	Backport from trunk
5909	2018-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
5910
5911	PR rtl-optimization/85645
5912	*  regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an
5913	insn that has a REG_CFA_REGISTER note.
5914
59152018-06-26  Robin Dapp  <rdapp@linux.ibm.com>
5916
5917	* config/s390/s390.h (enum processor_flags): Do not use
5918	default tune parameter when -march was specified.
5919
59202018-06-26  Jakub Jelinek  <jakub@redhat.com>
5921
5922	PR target/86314
5923	* config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s):
5924	Check reg_overlap_mentioned_p in addition to reg_set_p with the same
5925	operands.
5926
59272018-06-25  Michael Meissner  <meissner@linux.ibm.com>
5928
5929	Back port from trunk
5930	2018-06-25  Michael Meissner  <meissner@linux.ibm.com>
5931
5932	* config.gcc (powerpc64le*): Revert January 16th, 2018 patch that
5933	added IEEE/IBM long double multilib support on PowerPC little
5934	endian Linux systems.
5935	* config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise.
5936	(MULTILIB_DEFAULTS): Likewise.
5937	* config/rs6000/rs6000.c (rs6000_option_override_internal):
5938	Likewise.
5939	* config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise.
5940	* config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used.
5941	* config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used.
5942
59432018-06-25  Segher Boessenkool  <segher@kernel.crashing.org>
5944
5945	Backport from trunk
5946	2018-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
5947
5948	* config/rs6000/rs6000.md (abs<mode>2): Handle IFmode.
5949
59502018-05-02  Jan Hubicka  <jh@suse.cz>
5951
5952	Backport from mainline
5953	2018-04-30  Jan Hubicka  <jh@suse.cz>
5954
5955	* lto-wrapper.c (ltrans_priorities): New static var.
5956	(cmp_priority): New.
5957	(run_gcc): Read priorities and if doing parallel build order
5958	the Makefile by them.
5959
59602018-06-25  Segher Boessenkool  <segher@kernel.crashing.org>
5961
5962	Backport from trunk
5963	2018-06-19  Segher Boessenkool  <segher@kernel.crashing.org>
5964
5965	PR target/86197
5966	* config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An
5967	ieee128 argument takes up only one (vector) register, not two (floating
5968	point) registers.
5969
59702018-06-23  Richard Sandiford  <richard.sandiford@linaro.org>
5971
5972	PR tree-optimization/85989
5973	* gimple-ssa-backprop.c (backprop::m_visited_phis): New member
5974	variable.
5975	(backprop::intersect_uses): Check it when deciding whether this
5976	is a backedge reference.
5977	(backprop::process_block): Add each phi to m_visited_phis
5978	after visiting it, then clear it at the end.
5979
59802018-06-22  David Edelsohn  <dje.gcc@gmail.com>
5981
5982	Backport from mainline
5983
5984	2018-06-19  Tony Reix  <tony.reix@atos.com>
5985	    Damien Bergamini  <damien.bergamini@atos.com>
5986	    David Edelsohn  <dje.gcc@gmail.com>
5987
5988	* collect2.c (static_obj): New variable.
5989	(static_libs): New variable.
5990	(is_in_list): Uncomment declaration.
5991	(main): Track AIX libraries linked statically.
5992	(is_in_list): Uncomment definition.
5993	(scan_prog_file): Don't add AIX shared libraries initializer
5994	to constructor list if linking statically.
5995
59962018-06-22  Michael Meissner  <meissner@linux.ibm.com>
5997
5998	Back port from trunk
5999	2018-06-21  Michael Meissner  <meissner@linux.ibm.com>
6000
6001	* config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit
6002	conversion insn that shows up when pr85657-3.c is compiled using
6003	IEEE 128-bit long double.
6004
6005	Back port from trunk
6006	2018-06-21  Michael Meissner  <meissner@linux.ibm.com>
6007
6008	* config/rs6000/rs6000.c (init_float128_ieee): Prevent complex
6009	multiply and divide external functions from being created more
6010	than once.
6011
6012	Back port from trunk
6013	2018-06-21  Michael Meissner  <meissner@linux.ibm.com>
6014
6015	* config/rs6000/rs6000.md (neg<mode>2_internal): Use the correct
6016	mode to check whether the mode is IBM extended.
6017
6018	2018-06-18  Michael Meissner  <meissner@linux.ibm.com>
6019
6020	PR target/85358
6021	* config/rs6000/rs6000-modes.def (toplevel): Rework the 128-bit
6022	floating point modes, so that IFmode is numerically greater than
6023	TFmode, which is greater than KFmode using FRACTIONAL_FLOAT_MODE
6024	to declare the ordering.  This prevents IFmode from being
6025	converted to TFmode when long double is IEEE 128-bit on an ISA 3.0
6026	machine.  Include rs6000-modes.h to share the fractional values
6027	between genmodes* and the rest of the compiler.
6028	(IFmode): Likewise.
6029	(KFmode): Likewise.
6030	(TFmode): Likewise.
6031	* config/rs6000/rs6000-modes.h: New file.
6032	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Change the
6033	meaning of rs6000_long_double_size so that 126..128 selects an
6034	appropriate 128-bit floating point type.
6035	(rs6000_option_override_internal): Likewise.
6036	* config/rs6000/rs6000.h (toplevel): Include rs6000-modes.h.
6037	(TARGET_LONG_DOUBLE_128): Change the meaning of
6038	rs6000_long_double_size so that 126..128 selects an appropriate
6039	128-bit floating point type.
6040	(LONG_DOUBLE_TYPE_SIZE): Update comment.
6041	* config/rs6000/rs6000.md (trunciftf2): Correct the modes of the
6042	source and destination to match the standard usage.
6043	(truncifkf2): Likewise.
6044	(copysign<mode>3, IEEE iterator): Rework copysign of float128 on
6045	ISA 2.07 to use an explicit clobber, instead of passing in a
6046	temporary.
6047	(copysign<mode>3_soft): Likewise.
6048
6049	Back port from trunk
6050	2018-06-08  David Edelsohn  <dje.gcc@gmail.com>
6051
6052	* config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if
6053	TARGET_ELF.
6054
6055	Back port from trunk
6056	2018-06-04  Michael Meissner  <meissner@linux.ibm.com>
6057
6058	* config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to
6059	track if we pass or return IEEE 128-bit floating point.
6060	(ieee128_mangling_gcc_8_1): New boolean to say whether to generate
6061	C++ mangling that is compatible with GCC 8.1.
6062	(TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook.
6063	(init_cumulative_args): Note if we pass or return IEEE 128-bit
6064	floating point types.
6065	(rs6000_function_arg_advance_1): Likewise.
6066	(rs6000_mangle_type): Optionally generate mangled names that match
6067	what GCC 8.1 generated for IEEE 128-bit floating point types.
6068	(rs6000_globalize_decl_name): If we have an external function that
6069	passes or returns IEEE 128-bit types, generate a weak reference
6070	from the mangled name used in GCC 8.1 to the current mangled
6071	name.
6072	(rs6000_init_builtins): Make __ibm128 use the long double type if
6073	long double is IBM extended double.  Make __float128 use the long
6074	double type if long double is IEEE 128-bit.
6075
6076	PR target/85657
6077	* config/rs6000/rs6000-builtin.def (BU_IBM128_2): New helper
6078	macro for __ibm128 built-in functions.
6079	(PACK_IF): Add __ibm128 pack/unpack functions.
6080	(UNPACK_IF): Likewise.
6081	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Do not
6082	enable long double built-in functions if long double is IEEE
6083	128-bit floating point.
6084	(rs6000_invalid_builtin): Update long double built-in function
6085	error message.
6086	(rs6000_expand_builtin): For PACK_IF and UNPACK_IF built-in
6087	functions, adjust the built-in function to use the long double
6088	built-in function if __ibm128 and long double are the same type.
6089	* doc/extend.texi (PowerPC builtins): Update documention for
6090	__builtin_{,un}pack_longdouble.  Add documentation for
6091	__builtin_{,un}pack_ibm128.
6092
6093	Back port from trunk
6094	2018-06-01  Segher Boessenkool  <segher@kernel.crashing.org>
6095
6096	* config/rs6000/rs6000.c (rs6000_mangle_type): Change the mangling of
6097	the 128-bit floating point types.  Fix function comment.
6098
60992018-06-22  Michael Meissner  <meissner@linux.ibm.com>
6100
6101	Back port from trunk
6102	2018-05-21  Michael Meissner  <meissner@linux.ibm.com>
6103
6104	PR target/85657
6105	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
6106	define __ibm128 as long double.
6107	* config/rs6000/rs6000.c (rs6000_init_builtins): Create __ibm128
6108	as a distinct type with IEEE 128-bit floating point is supported.
6109	(init_float128_ieee): Fix up conversions between IFmode and IEEE
6110	128-bit types to use the correct functions.
6111	(rs6000_expand_float128_convert): Use explicit FLOAT_EXTEND to
6112	convert between 128-bit floating point types that have different
6113	modes but the same representation, instead of using gen_lowpart to
6114	makean alias.
6115	* config/rs6000/rs6000.md (IFKF): New iterator for IFmode and
6116	KFmode.
6117	(IFKF_reg): New attributes to give the register constraints for
6118	IFmode and KFmode.
6119	(extend<mode>tf2_internal): New insns to mark an explicit
6120	conversion between 128-bit floating point types that have a
6121	different mode but share the same representation.
6122
61232018-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6124
6125	PR target/85994
6126	* config/i386/sol2.h (CPP_SPEC): Don't pass -P for
6127	-x assembler-with-cpp.
6128
61292018-06-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6130
6131	Backported from mainline
6132	2018-06-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6133
6134	* config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom
6135	multilibs for *-*-rtems*.
6136	* config/riscv/t-rtems: New file.
6137
61382018-06-20  Jakub Jelinek  <jakub@redhat.com>
6139
6140	Backported from mainline
6141	2018-06-16  Jakub Jelinek  <jakub@redhat.com>
6142
6143	PR rtl-optimization/86108
6144	* bb-reorder.c (create_forwarder_block): Renamed to ...
6145	(create_eh_forwarder_block): ... this.  Split OLD_BB after labels and
6146	jump from new landing pad to the second part.
6147	(sjlj_fix_up_crossing_landing_pad, dw2_fix_up_crossing_landing_pad):
6148	Adjust callers.
6149
61502018-06-20  Jakub Jelinek  <jakub@redhat.com>
6151
6152	PR debug/86194
6153	* var-tracking.c (use_narrower_mode_test): Check if shift amount can
6154	be narrowed.
6155
6156	PR tree-optimization/86231
6157	* tree-vrp.c (union_ranges): For (  [  )  ] or (   )[   ] range and
6158	anti-range don't overwrite *vr0min before using it to compute *vr0max.
6159
61602018-06-19  Max Filippov  <jcmvbkbc@gmail.com>
6161
6162	Backport from mainline
6163	2018-06-19  Max Filippov  <jcmvbkbc@gmail.com>
6164
6165	* config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec
6166	constant.
6167	(allocate_stack, frame_blockage, *frame_blockage): New patterns.
6168
61692018-06-19  Eric Botcazou  <ebotcazou@adacore.com>
6170
6171	* gimplify.c (gimplify_init_constructor): Really never clear for an
6172	incomplete constructor if CONSTRUCTOR_NO_CLEARING is set.
6173
61742018-06-18  Martin Sebor  <msebor@redhat.com>
6175
6176	PR c/82063
6177	* calls.c (alloc_max_size): Correct a logic error/typo.
6178	Treat excessive arguments as infinite.  Warn for invalid arguments.
6179	* doc/invoke.texi (-Walloc-size-larger-than): Update.
6180
61812018-06-16  Jakub Jelinek  <jakub@redhat.com>
6182
6183	PR middle-end/86095
6184	* common.opt (Wunsafe-loop-optimizations): Add Ignore, remove Var,
6185	documented as preserved for backward compatibility only.
6186	* doc/invoke.texi: Remove -Wunsafe-loop-optimizations documentation.
6187
61882018-06-15  Jakub Jelinek  <jakub@redhat.com>
6189
6190	PR middle-end/85878
6191	* expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P
6192	check from first store_expr, use to_mode instead of GET_MODE (to_rtx).
6193	Only call store_expr for halves if the mode is the same.
6194
6195	PR middle-end/86123
6196	* match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions.
6197	Fix up comment formatting.
6198
61992018-06-14  Jakub Jelinek  <jakub@redhat.com>
6200
6201	PR middle-end/86122
6202	* match.pd ((A +- CST1) +- CST2): Punt if last resort
6203	unsigned_type_for returns NULL.
6204
6205	PR target/85945
6206	* lower-subreg.c (find_decomposable_subregs): Don't decompose float
6207	subregs of multi-word pseudos unless the float mode has word size.
6208
62092018-06-14  Richard Biener  <rguenther@suse.de>
6210
6211	PR middle-end/86139
6212	* tree-vect-generic.c (build_word_mode_vector_type): Remove
6213	duplicate and harmful type_hash_canon.
6214	* tree.c (type_hash_canon): Assert we didn't find ourselves.
6215
62162018-06-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6217
6218	Backport from mainline
6219	2018-06-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6220
6221	* config/rtems.h (STDINT_LONG32): Define.
6222
62232018-05-05  Roland McGrath  <mcgrathr@google.com>
6224
6225	PR other/77609
6226	* varasm.c (default_section_type_flags): Set SECTION_NOTYPE for
6227	any section for which we don't know a specific type it should have,
6228	regardless of name.  Previously this was done only for the exact
6229	names ".init_array", ".fini_array", and ".preinit_array".
6230	(default_elf_asm_named_section): Add comment about
6231	relationship with default_section_type_flags and SECTION_NOTYPE.
6232	(get_section): Don't consider it a type conflict if one side has
6233	SECTION_NOTYPE and the other doesn't, as long as neither has the
6234	SECTION_BSS et al used in the default_section_type_flags logic.
6235
62362018-06-13  Martin Sebor  <msebor@redhat.com>
6237
6238	PR tree-optimization/86114
6239	* gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS
6240	of integer types.
6241	* tree-ssa-strlen.c (maybe_set_strlen_range): Same.
6242
62432018-06-13  Eric Botcazou  <ebotcazou@adacore.com>
6244
6245	PR target/86048
6246	* config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative
6247	offsets for register save directives.  Emit a second batch of save
6248	directives, if need be, when the function accesses prior frames.
6249
62502018-06-11  Jason Merrill  <jason@redhat.com>
6251
6252	PR c++/80485 - inline function non-zero address.
6253	* symtab.c (nonzero_address): Check DECL_COMDAT.
6254
62552018-06-11  Peter Bergner  <bergner@vnet.ibm.com>
6256
6257	Backport from mainline
6258	2018-06-08  Peter Bergner  <bergner@vnet.ibm.com>
6259
6260	PR target/85755
6261	* config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC
6262	addresses.
6263
62642018-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
6265
6266	Backport from trunk
6267	2018-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
6268
6269	PR target/85755
6270	* config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers
6271	on the correct operand.
6272	(*movdi_internal64): Ditto.
6273
62742018-06-08  Carl Love  <cel@us.ibm.com>
6275
6276	Backport from mainline
6277	* gcc/config/rs6000/vsx.md (vextract_fp_from_shorth,
6278	vextract_fp_from_shortl): Add BE support.
6279
62802018-06-08  Carl Love  <cel@us.ibm.com>
6281
6282	Backport from mainline
6283	* gcc/config/rs6000/vsx.md (first_match_index_<mode>):
6284	Calculate index using natureal element order.
6285	(first_match_or_eos_index_<mode>):
6286	Calculate index using natural element order.
6287	(first_match_index_<mode>):
6288	Calculate index using natural element order.
6289	(first_match_or_eos_index_<mode>):
6290	Calculate index using natural order.
6291	(define_insn vclzlsbb): Change to define_insn vclzlsbb_<mode>.
6292	for BE and LE modes.
6293	* gcc/config/rs6000/rs6000-c.c: Rename P9V_BUILTIN_VCLZLSBB,
6294	P9V_BUILTIN_VCLZLSBB_V16QI.
6295	* gcc/config/rs6000/rs6000-builtin.def: Make VCLZLSBB mode
6296	specific.
6297
62982018-06-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6299
6300	Backport from mainline
6301	2018-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6302
6303	PR target/81497
6304	* config/arm/arm-builtins.c (arm_type_qualifiers): Add
6305	qualifier_void_pointer and qualifier_const_void_pointer.
6306	(arm_ldc_qualifiers, arm_stc_qualifiers): Use the above.
6307	(arm_init_builtins): Handle the above.
6308	* config/arm/arm_acle.h (__arm_cdp, __arm_ldc, __arm_ldcl, __arm_stc,
6309	__arm_stcl, __arm_mcr, __arm_cdp2, __arm_ldc2, __arm_ldcl2, __arm_stc2,
6310	__arm_stcl2,__arm_mcr2, __arm_mcrr, __arm_mcrr2): Remove return for
6311	void intrinsics.
6312
63132018-06-07  Uros Bizjak  <ubizjak@gmail.com>
6314
6315	PR target/85684
6316	* config/i386/i386.c (ix86_expand_builtin) <case IX86_BUILTIN_RDPID>:
6317	Generate SImode target register for null target.
6318	<case IX86_BUILTIN_XGETBV>: Ditto.
6319	<case IX86_BUILTIN_XSETBV>: Optimize LSHIFTRT generation.
6320	* config/i386/xsaveintrin.h (_xgetbv): Add missing return.
6321
63222018-06-07  Peter Bergner  <bergner@vnet.ibm.com>
6323
6324	Backport from mainline
6325	2018-06-06  Peter Bergner  <bergner@vnet.ibm.com>
6326
6327	PR target/63177
6328	* /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9.
6329	Don't handle -mcpu=power8 if -mpower9-vector is also used.
6330
63312018-06-06  Richard Biener  <rguenther@suse.de>
6332
6333	Backport from mainline
6334	2018-06-04  Richard Biener  <rguenther@suse.de>
6335
6336	PR tree-optimization/86038
6337	* tracer.c (find_best_successor): Check probability for
6338	being initialized, bail out if not.
6339
6340	2018-05-30  Richard Biener  <rguenther@suse.de>
6341
6342	PR tree-optimization/85964
6343	* tracer.c (better_p): Drop initialized count check, we only
6344	call the function with initialized counts now.
6345	(find_best_successor): Do find a best edge if one
6346	has uninitialized count.
6347	(find_best_predecessor): Likewise.  Do BB frequency check only
6348	if count is initialized.
6349
6350	2018-05-28  Richard Biener  <rguenther@suse.de>
6351
6352	PR tree-optimization/85934
6353	* tree-vect-generic.c (expand_vector_operations_1): Hoist
6354	vector boolean check before scalar optimization.
6355
6356	2018-05-22  Richard Biener  <rguenther@suse.de>
6357
6358	PR tree-optimization/85863
6359	* tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant
6360	comparisons when vectype is specified.
6361	(vectorizable_condition): Do not specify vectype for
6362	vect_is_simple_cond when SLP vectorizing.
6363
63642018-06-05  Andreas Krebbel  <krebbel@linux.ibm.com>
6365
6366	Backport from mainline
6367	2018-06-05  Andreas Krebbel  <krebbel@linux.ibm.com>
6368
6369	* config/s390/s390-builtin-types.def: Add void function type.
6370	* config/s390/s390-builtins.def: Use the function type for the
6371	tbeginc builtin.
6372
63732018-06-04  Martin Sebor  <msebor@redhat.com>
6374
6375	PR c/85623
6376	* calls.c (maybe_warn_nonstring_arg): Use string length to set
6377	or ajust the presumed bound on an operation to avoid unnecessary
6378	warnings.
6379
63802018-06-04  Richard Earnshaw  <rearnsha@arm.com>
6381
6382	PR target/86003
6383	* config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list
6384	of bits to ignore when comparing architectures.
6385
63862018-06-04  Jakub Jelinek  <jakub@redhat.com>
6387
6388	PR c++/86025
6389	* tree.c (inchash::add_expr): Handle IDENTIFIER_NODE.
6390
63912018-06-01  Bill Schmidt  <wschmidt@linux.ibm.com>
6392
6393	PR tree-optimization/85712
6394	Backport from mainline:
6395	2018-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
6396
6397	PR tree-optimization/85712
6398	* gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
6399	first_interp field.
6400	(alloc_cand_and_find_basis): Initialize first_interp field.
6401	(slsr_process_mul): Modify first_interp field.
6402	(slsr_process_add): Likewise.
6403	(slsr_process_cast): Modify first_interp field for each new
6404	interpretation.
6405	(slsr_process_copy): Likewise.
6406	(dump_candidate): Dump first_interp field.
6407	(replace_mult_candidate): Process all interpretations, not just
6408	subsequent ones.
6409	(replace_rhs_if_not_dup): Likewise.
6410	(replace_one_candidate): Likewise.
6411
6412	Backport from mainline:
6413	2018-05-25  Bill Schmidt  <wschmidt@linux.ibm.com>
6414
6415	PR tree-optimization/85712
6416	* gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if
6417	this candidate has already been replaced in-situ by a copy.
6418
64192018-05-31  Uros Bizjak  <ubizjak@gmail.com>
6420
6421	PR target/85950
6422	* config/i386/i386.md (l<rounding_insn><MODEF:mode><SWI48:mode>2):
6423	Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q}
6424	sequence.
6425	(sse4_1_round<mode>2): Use nonimmediate_operand
6426	for operand 1 predicate.
6427
64282018-05-31  Jakub Jelinek  <jakub@redhat.com>
6429
6430	PR target/85984
6431	* bb-reorder.c (pass_partition_blocks::gate): Return false for
6432	functions with naked attribute.
6433
64342018-05-31  H.J. Lu  <hongjiu.lu@intel.com>
6435
6436	PR target/85829
6437	* config/i386/x86-tune.def: Re-enable partial_reg_dependency
6438	and movx for Haswell.
6439
64402018-05-30  Jakub Jelinek  <jakub@redhat.com>
6441
6442	Backported from mainline
6443	2018-05-14  Jakub Jelinek  <jakub@redhat.com>
6444
6445	PR target/85756
6446	* config/i386/i386.md: Disallow non-commutative arithmetics in
6447	last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim
6448	optimization.  Use COMMUTATIVE_ARITH_P test rather than != MINUS
6449	in the peephole2 before it.
6450
6451	2018-05-08  Jakub Jelinek  <jakub@redhat.com>
6452
6453	PR target/85683
6454	* config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0
6455	after cmpelim optimization.
6456
64572018-05-28  H.J. Lu  <hongjiu.lu@intel.com>
6458
6459	Backport from mainline
6460	2018-05-26  H.J. Lu  <hongjiu.lu@intel.com>
6461
6462	PR target/85900
6463	PR target/85345
6464	* varasm.c (assemble_alias): Lookup ifunc attribute on error.
6465
6466	2018-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6467
6468	PR target/85900
6469	PR target/85345
6470	* varasm.c (assemble_alias): Check ifunc_resolver only on
6471	FUNCTION_DECL.
6472
6473	2018-05-22  H.J. Lu  <hongjiu.lu@intel.com>
6474
6475	PR target/85345
6476	* cgraph.h (cgraph_node::create): Set ifunc_resolver for ifunc
6477	attribute.
6478	(cgraph_node::create_alias): Likewise.
6479	(cgraph_node::get_availability): Check ifunc_resolver instead
6480	of looking up ifunc attribute.
6481	* cgraphunit.c (maybe_diag_incompatible_alias): Likewise.
6482	* varasm.c (do_assemble_alias): Likewise.
6483	(assemble_alias): Likewise.
6484	(default_binds_local_p_3): Likewise.
6485	* cgraph.h (cgraph_node): Add ifunc_resolver.
6486	(cgraph_node::only_called_directly_or_aliased_p): Return false
6487	for IFUNC resolver.
6488	* lto-cgraph.c (input_node): Set ifunc_resolver for ifunc
6489	attribute.
6490	* symtab.c (symtab_node::verify_base): Verify that ifunc_resolver
6491	is equivalent to lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)).
6492	(symtab_node::binds_to_current_def_p): Check ifunc_resolver
6493	instead of looking up ifunc attribute.
6494
64952018-05-27  John David Anglin  <danglin@gcc.gnu.org>
6496
6497	* config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0.
6498
64992018-05-25  Richard Biener  <rguenther@suse.de>
6500
6501	PR c++/85912
6502	* tree-dump.c (dequeue_and_dump): Remove access to removed
6503	operand 2 of a SWITCH_EXPR.
6504
65052018-05-24  Uros Bizjak  <ubizjak@gmail.com>
6506
6507	* config/i386/sse.md (cvtusi2<ssescalarmodesuffix>64<round_name>):
6508	Add {q} suffix to insn mnemonic.
6509
65102018-05-24  Uros Bizjak  <ubizjak@gmail.com>
6511
6512	PR target/85903
6513	* config/i386/sse.md (movdi_to_sse): Do not generate pseudo
6514	when memory input operand is handled.
6515
65162018-05-23  Bin Cheng  <bin.cheng@arm.com>
6517
6518	Backport from mainline
6519	2018-05-17  Bin Cheng  <bin.cheng@arm.com>
6520	    Richard Biener  <rguenther@suse.de>
6521
6522	PR tree-optimization/85793
6523	* tree-vect-stmts.c (vectorizable_load): Handle 1 element-wise load
6524	for VMAT_ELEMENTWISE.
6525
65262018-05-23  Richard Biener  <rguenther@suse.de>
6527
6528	PR middle-end/85874
6529	* tree-data-ref.c (create_runtime_alias_checks): Defer
6530	and ignore overflow warnings.
6531
65322018-05-23  Martin Liska  <mliska@suse.cz>
6533
6534	Backport from mainline
6535	2018-05-23  Yury Gribov  <tetra2005@gmail.com>
6536
6537	PR tree-optimization/85822
6538	* tree-vrp.c (is_masked_range_test): Fix handling of negative
6539	constants.
6540
65412018-05-23  Martin Liska  <mliska@suse.cz>
6542
6543	Backport from mainline
6544	2018-05-11  Martin Liska  <mliska@suse.cz>
6545
6546	PR sanitizer/85556
6547	* doc/extend.texi: Document LLVM style format for no_sanitize
6548	attribute.
6549
65502018-05-22  Martin Sebor  <msebor@redhat.com>
6551
6552	PR middle-end/85643
6553	* calls.c (get_attr_nonstring_decl): Handle MEM_REF.
6554
65552018-05-22  Richard Sandiford  <richard.sandiford@linaro.org>
6556
6557	PR tree-optimization/85814
6558	* tree-ssa-strlen.c (get_stridx_plus_constant): Cope with
6559	a null return from get_strinfo when unsharing the next
6560	strinfo in the chain.
6561
65622018-05-21  Pat Haugen  <pthaugen@us.ibm.com>
6563
6564	Backport from mainline
6565	2018-05-17  Pat Haugen  <pthaugen@us.ibm.com>
6566		    Segher Boessenkool  <segher@kernel.crashing.org>
6567
6568	PR target/85698
6569	* config/rs6000/rs6000.c (rs6000_output_move_128bit): Check dest operand.
6570
65712018-05-18  Toon Moene  <toon@moene.org>
6572
6573	* doc/invoke.texi: Move -floop-unroll-and-jam documentation
6574	directly after that of -floop-interchange. Indicate that both
6575	options are enabled by default when specifying -O3.
6576
65772018-05-11  Martin Jambor  <mjambor@suse.cz>
6578
6579	PR ipa/85655
6580	* ipa-cp.c (intersect_with_plats): Check that the lattice contains
6581	single const.
6582
65832018-05-11  Richard Earnshaw  <rearnsha@arm.com>
6584
6585	PR target/85733
6586	* config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature.
6587
65882018-05-11  Richard Earnshaw  <rearnsha@arm.com>
6589
6590	PR target/85606
6591	* config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now
6592	equivalent.
6593	(cortex-m0): Use armv6s-m isa.
6594	(cortex-m0plus): Likewise.
6595	(cortex-m1): Likewise.
6596	(cortex-m0.small-multiply): Likewise.
6597	(cortex-m0plus.small-multiply): Likewise.
6598	(cortex-m1.small-multiply): Likewise.
6599
66002018-05-09  Eric Botcazou  <ebotcazou@adacore.com>
6601
6602	PR rtl-optimization/85638
6603	* bb-reorder.c: Include common/common-target.h.
6604	(create_forwarder_block): New function extracted from...
6605	(fix_up_crossing_landing_pad): ...here.  Rename into...
6606	(dw2_fix_up_crossing_landing_pad): ...this.
6607	(sjlj_fix_up_crossing_landing_pad): New function.
6608	(find_rarely_executed_basic_blocks_and_crossing_edges): In SJLJ mode,
6609	call sjlj_fix_up_crossing_landing_pad if there are incoming EH edges
6610	from both partitions and exit the loop after one iteration.
6611
66122018-05-08  Richard Biener  <rguenther@suse.de>
6613
6614	Backport from mainline
6615	2018-05-04  Richard Biener  <rguenther@suse.de>
6616
6617	PR middle-end/85588
6618	* fold-const.c (negate_expr_p): Restrict negation of operand
6619	zero of a division to when we know that can happen without
6620	overflow.
6621	(fold_negate_expr_1): Likewise.
6622
6623	2018-05-03  Richard Biener  <rguenther@suse.de>
6624
6625	PR tree-optimization/85615
6626	* tree-ssa-threadupdate.c (thread_block_1): Only allow exits
6627	to loops not nested in BBs loop father to avoid creating multi-entry
6628	loops.
6629
6630	2018-05-02  Richard Biener  <rguenther@suse.de>
6631
6632	PR middle-end/85567
6633	* gimplify.c (gimplify_save_expr): When in SSA form allow
6634	SAVE_EXPRs to compute to SSA vars.
6635
6636	2018-05-02  Richard Biener  <rguenther@suse.de>
6637
6638	PR tree-optimization/85597
6639	* tree-vect-stmts.c (vectorizable_operation): For ternary SLP
6640	do not use split vect_get_vec_defs call but call vect_get_slp_defs
6641	directly.
6642
66432018-05-08  Richard Earnshaw  <rearnsha@arm.com>
6644
6645	PR target/85658
6646	* config/arm/parsecpu.awk (check_cpu): Fix operator precedence.
6647	(check_arch): Likewise.
6648	(check_fpu): Return the result rather than printing it.
6649	(end arch): Fix operator precedence.
6650	(end cpu): Likewise.
6651	(END): Print the result from check_fpu.
6652
66532018-05-08  Richard Biener  <rguenther@suse.de>
6654
6655	Backport from mainline
6656	2018-05-04  Richard Biener  <rguenther@suse.de>
6657
6658	* bb-reorder.c (sanitize_hot_paths): Release hot_bbs_to_check.
6659	* gimple-ssa-store-merging.c
6660	(imm_store_chain_info::output_merged_store): Remove redundant create,
6661	release split_store vector contents on failure.
6662	* tree-vect-slp.c (vect_schedule_slp_instance): Avoid leaking
6663	scalar stmt vector on cache hit.
6664
6665	2018-05-04  Richard Biener  <rguenther@suse.de>
6666
6667	PR middle-end/85627
6668	* tree-complex.c (tree_lower_complex): Handle removed blocks.
6669
66702018-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
6671
6672	Backport from mainline.
6673	2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
6674
6675	* config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with
6676	GET_MODE_MASK before any checking.
6677	(nds32_can_use_bset_p): Likewise.
6678	(nds32_can_use_btgl_p): Likewise.
6679
66802018-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
6681
6682	Backport from mainline.
6683	2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
6684
6685	* config/nds32/nds32-doubleword.md: New define_split pattern for
6686	illegal register number.
6687
66882018-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
6689
6690	Backport from mainline.
6691	2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
6692
6693	* config/nds32/nds32.c (nds32_print_operand): Set op_value ealier.
6694
66952018-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
6696
6697	Backport from mainline.
6698	2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
6699
6700	* config/nds32/nds32.h (ASM_APP_ON): Add missing newline character.
6701
67022018-05-06  Jakub Jelinek  <jakub@redhat.com>
6703
6704	PR c++/85659
6705	* cfgexpand.c (expand_asm_stmt): Don't create a temporary if
6706	the type is addressable.  Don't force op into register if it has
6707	BLKmode.
6708
67092018-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6710
6711	Backport from trunk.
6712	2018-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6713
6714	PR target/85512
6715	* config/aarch64/constraints.md (Usg): Limit to 31.
6716	(Usj): Limit to 63.
6717
67182018-05-02  Jakub Jelinek  <jakub@redhat.com>
6719
6720	* BASE-VER: Set to 8.1.1.
6721
67222018-05-02  Release Manager
6723
6724	* GCC 8.1.0 released.
6725
67262018-05-02  Richard Sandiford  <richard.sandiford@linaro.org>
6727
6728	PR tree-optimization/85586
6729	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only
6730	exit early for statements in the same group if the accesses are
6731	not strided.
6732
67332018-05-01  Jakub Jelinek  <jakub@redhat.com>
6734
6735	PR web/85578
6736	* doc/install.texi2html: Replace _002d with - and _002a with * in
6737	generated html files using sed.
6738
67392018-04-27  Martin Jambor  <mjambor@suse.cz>
6740
6741	PR ipa/85549
6742	* ipa-cp.c (find_aggregate_values_for_callers_subset): Make sure
6743	the jump function allows for passing through aggregate values.
6744
67452018-04-27  Jeff Law  <law@redhat.com>
6746
6747	* config.gcc: Mark tile* targets as deprecated/obsolete.
6748
67492018-04-27  Jakub Jelinek  <jakub@redhat.com>
6750
6751	PR tree-optimization/85529
6752	* tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB
6753	argument.  Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE,
6754	rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious
6755	zero extension or masking of the MSB bit.
6756	(optimize_range_tests): Add FIRST_BB argument, pass it through
6757	to optimize_range_tests_var_bound.
6758	(maybe_optimize_range_tests, reassociate_bb): Adjust
6759	optimize_range_tests callers.
6760
67612018-04-26  Richard Biener  <rguenther@suse.de>
6762	    Jakub Jelinek  <jakub@redhat.com>
6763
6764	* cgraph.h (symbol_table): Just declare debug method here.
6765	* symtab.c (symbol_table::debug): Define.
6766
67672018-04-26  Jonathan Wakely  <jwakely@redhat.com>
6768
6769	* doc/invoke.texi (-Wreturn-type): Document default status for C++.
6770
67712018-04-25  H.J. Lu  <hongjiu.lu@intel.com>
6772
6773	Backport from mainline
6774	2018-04-25  Sebastian Peryt  <sebastian.peryt@intel.com>
6775
6776	PR target/85473
6777	* config/i386/i386.c (ix86_expand_builtin): Change memory
6778	operand to XI, extend p0 to Pmode.
6779	* config/i386/i386.md: Change unspec volatile and operand
6780	1 mode to XI, change operand 0 mode to P.
6781
67822018-04-25  Jakub Jelinek  <jakub@redhat.com>
6783
6784	* DEV-PHASE: Set to prerelease.
6785
67862018-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
6787
6788	* config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes
6789	in __abskf2 and __powikf2.
6790
67912018-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6792
6793	PR target/85512
6794	* config/aarch64/constraints.md (Usg, Usj): New constraints.
6795	* config/aarch64/iterators.md (cmode_simd): New mode attribute.
6796	* config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
6797	Use the above on operand 2.  Reindent.
6798	(*aarch64_lshr_sisd_or_int_<mode>3): Likewise.
6799
68002018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
6801
6802	PR target/85485
6803	* common/config/i386/i386-common.c (ix86_handle_option): Don't
6804	handle OPT_mcet.
6805	* config/i386/i386.opt (mcet): Removed.
6806	* doc/install.texi: Remove -mcet documentation.
6807	* doc/invoke.texi: Likewise.
6808
68092018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
6810
6811	PR target/85485
6812	* doc/install.texi: Remove -mcet from bootstrap-cet.
6813
68142018-04-24  Jakub Jelinek  <jakub@redhat.com>
6815
6816	PR target/85511
6817	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define
6818	__builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32
6819	if TARGET_64BIT.
6820
6821	PR target/85503
6822	* config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if
6823	const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool
6824	containing a CONST_VECTOR.
6825
68262018-04-24  Cesar Philippidis  <cesar@codesourcery.com>
6827
6828	* doc/install.texi: Update newlib dependency for nvptx.
6829
68302018-04-24  Jakub Jelinek  <jakub@redhat.com>
6831
6832	PR target/85508
6833	* config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL
6834	instead of INTVAL when shifting x left.
6835
68362018-04-24  Andreas Krebbel  <krebbel@linux.ibm.com>
6837
6838	PR tree-optimization/85478
6839	* tree-vect-loop.c (vect_analyze_loop_2): Do not call
6840	vect_grouped_store_supported for single element vectors.
6841
68422018-04-24  Richard Biener  <rguenther@suse.de>
6843
6844	PR target/85491
6845	* config/i386/i386.c (ix86_add_stmt_cost): Restrict strided
6846	load cost increase to the case of non-constant step.
6847
68482018-04-24  Jakub Jelinek  <jakub@redhat.com>
6849
6850	PR target/84828
6851	* reg-stack.c (move_for_stack_reg): Don't fail assertion about dead
6852	destination if any_malformed_asm.
6853
68542018-04-23  Eric Botcazou  <ebotcazou@adacore.com>
6855
6856	PR middle-end/85496
6857	* expr.c (store_field): In the bitfield case, if the value comes from
6858	a function call and is returned in registers by means of a PARALLEL,
6859	do not change the mode of the temporary unless BLKmode and VOIDmode.
6860
68612018-04-23  Andrey Belevantsev  <abel@ispras.ru>
6862
6863	PR rtl-optimization/85423
6864	* sel-sched-ir.c (has_dependence_note_mem_dep): Only discard
6865	dependencies to debug insns when the previous insn is non-debug.
6866
68672018-04-23  Claudiu Zissulescu  <claziss@synopsys.com>
6868
6869	* config/arc/arc.md ("vunspec"): Delete it, unify all the unspec
6870	enums into a single definition.
6871	(fls): Fix predicates and printing.
6872	(seti): Likewise.
6873
68742018-04-23  Claudiu Zissulescu  <claziss@synopsys.com>
6875
6876	* config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove.
6877	* config/arc/arc.c (arc_expand_builtin): Sleep accepts registers
6878	and short u6 immediate.
6879	(check_if_valid_sleep_operand): Remove.
6880	* config/arc/arc.md (Sleep): Accepts registers and u6 immediates.
6881
68822018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
6883
6884	* config/nds32/nds32.c (nds32_compute_stack_frame): Consider
6885	flag_always_save_lp condition.
6886	* config/nds32/nds32.opt (malways-save-lp): New option.
6887
68882018-04-22  Shiva Chen  <shiva0217@gmail.com>
6889
6890	* config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare.
6891	* config/nds32/nds32.c (nds32_use_load_post_increment): New.
6892	* config/nds32/nds32.h
6893	(USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define.
6894	(USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define.
6895
68962018-04-22  Shiva Chen  <shiva0217@gmail.com>
6897
6898	* config/nds32/nds32-protos.h (nds32_ls_333_p): Remove.
6899	* config/nds32/nds32.c (nds32_ls_333_p): Remove.
6900
69012018-04-22  Shiva Chen  <shiva0217@gmail.com>
6902	    Chung-Ju Wu  <jasonwucj@gmail.com>
6903
6904	* config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode):
6905	Declare.
6906	* config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function.
6907	* config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify.
6908
69092018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
6910
6911	* config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value.
6912
69132018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
6914
6915	* config/nds32/nds32-protos.h (nds32_data_alignment,
6916	nds32_local_alignment): Declare.
6917	* config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment,
6918	nds32_local_alignment): New functions.
6919	(TARGET_CONSTANT_ALIGNMENT): Define.
6920	* config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
6921
69222018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
6923
6924	* config/nds32/nds32.c
6925	(TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file.
6926	(TARGET_MODES_TIEABLE_P): Likewise.
6927
69282018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
6929
6930	* config/nds32/nds32.c (nds32_asm_file_start): Display optimization
6931	level Ofast and Og.
6932
69332018-04-22  Monk Chiang  <sh.chiang04@gmail.com>
6934	    Chung-Ju Wu  <jasonwucj@gmail.com>
6935
6936	* config/nds32/constants.md (unspec_volatile_element): Add enum values
6937	for unaligned access.
6938	* config/nds32/nds32-intrinsic.c: Implementation of expanding
6939	unaligned access.
6940	* config/nds32/nds32-intrinsic.md: Likewise.
6941	* config/nds32/nds32_intrinsic.h: Likewise.
6942	* config/nds32/nds32.h (nds32_builtins): Likewise.
6943	* config/nds32/nds32.opt (munaligned-access): New option.
6944	* config/nds32/nds32.c (nds32_asm_file_start): Display
6945	flag_unaligned_access status.
6946
69472018-04-20  Kito Cheng  <kito.cheng@gmail.com>
6948
6949	* config/riscv/elf.h (LINK_SPEC): Pass --no-relax if
6950	-mno-relax is present.
6951	* config/riscv/linux.h (LINK_SPEC): Ditto.
6952
69532018-04-20  Martin Sebor  <msebor@redhat.com>
6954
6955	PR c/85365
6956	* gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict
6957	for null pointers.
6958	(gimple_fold_builtin_stxcpy_chk): Same.
6959	* gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same.
6960
69612018-04-20  Michael Meissner  <meissner@linux.ibm.com>
6962
6963	PR target/85456
6964	* config/rs6000/rs6000.c (init_float128_ieee): Add support to call
6965	__powikf2 when long double is IEEE 128-bit.
6966
69672018-04-20  Kito Cheng  <kito.cheng@gmail.com>
6968
6969	* config/riscv/riscv.c (riscv_first_stack_step): Round up min
6970	step to make sure stack always aligned.
6971
69722018-04-20  Carl Love  <cel@us.ibm.com>
6973
6974	PR target/83402
6975	* config/rs6000/rs6000-c.c (rs6000_gimple_fold_builtin): Add
6976	size check for arg0.
6977
69782018-04-20  Nathan Sidwell  <nathan@codesourcery.com>
6979	    Tom de Vries  <tom@codesourcery.com>
6980
6981	PR target/85445
6982	* config/nvptx/nvptx.c (nvptx_emit_forking, nvptx_emit_joining):
6983	Emit insns for calls too.
6984	(nvptx_find_par): Always look for worker-level predecessor insn.
6985	(nvptx_propagate): Add is_call parm, return bool.  Copy frame for
6986	calls.
6987	(nvptx_vpropagate, nvptx_wpropagate): Adjust.
6988	(nvptx_process_pars): Propagate frames for calls.
6989
69902018-04-20  H.J. Lu  <hongjiu.lu@intel.com>
6991
6992	PR target/85469
6993	* common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET):
6994	Removed.
6995	(OPTION_MASK_ISA_IBT_UNSET): Likewise.
6996	(ix86_handle_option): Don't handle OPT_mibt.
6997	* config/i386/cet.h: Check __CET__ instead of __IBT__ and
6998	__SHSTK__.
6999	* config/i386/driver-i386.c (host_detect_local_cpu): Remove
7000	has_ibt and ibt.
7001	* config/i386/i386-c.c (ix86_target_macros_internal): Don't
7002	check OPTION_MASK_ISA_IBT nor flag_cf_protection.
7003	(ix86_target_macros): Define __CET__ with flag_cf_protection
7004	for -fcf-protection.
7005	* config/i386/i386.c (isa2_opts): Remove -mibt.
7006	* config/i386/i386.h (TARGET_IBT): Removed.
7007	(TARGET_IBT_P): Likewise.
7008	(ix86_valid_target_attribute_inner_p): Don't check OPT_mibt.
7009	* config/i386/i386.md (nop_endbr): Don't check TARGET_IBT.
7010	* config/i386/i386.opt (mcet): Update help message.
7011	(mshstk): Likewise.
7012	(mibt): Removed.
7013	* doc/invoke.texi: Remove -mibt.  Document __CET__.  Document
7014	-mcet as an alias for -mshstk.
7015
70162018-04-20  Richard Biener <rguenther@suse.de>
7017
7018	PR middle-end/85475
7019	* match.pd ((X * CST) * Y -> (X * Y) * CST): Avoid exponential
7020	complexity by forcing a single use of the multiply operand.
7021
70222018-04-20  Martin Jambor  <mjambor@suse.cz>
7023
7024	ipa/85449
7025	* ipa-cp.c (cgraph_edge_brings_value_p): Move check for self-feeding
7026	recursion dependency to only apply to non-clones.
7027
70282018-04-20  Martin Jambor  <mjambor@suse.cz>
7029
7030	ipa/85447
7031	* ipa-cp.c (create_specialized_node): Check that clones of
7032	self-recursive edges exist during IPA-CP.
7033
70342018-04-19  Toon Moene  <toon@moene.org>
7035
7036	* doc/invoke.texi: Add -floop-unroll-and-jam to options enabled
7037	by -O3.
7038
70392018-04-19  Jakub Jelinek  <jakub@redhat.com>
7040
7041	PR tree-optimization/85467
7042	* fold-const.c (fold_ternary_loc) <case BIT_FIELD_REF>: Use
7043	VECTOR_TYPE_P macro.  If type is vector type, VIEW_CONVERT_EXPR the
7044	VECTOR_CST element to type.
7045
70462018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
7047
7048	PR target/85397
7049	* config/i386/i386.h (STACK_SAVEAREA_MODE): New.
7050	* config/i386/i386.md (builtin_setjmp_setup): Removed.
7051	(builtin_longjmp): Likewise.
7052	(save_stack_nonlocal): New pattern.
7053	(restore_stack_nonlocal): Likewise.
7054
70552018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
7056
7057	PR target/85404
7058	* config/i386/cet.c (file_end_indicate_exec_stack_and_cet):
7059	Replace ASM_OUTPUT_LABEL with fprintf.
7060
70612018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
7062
7063	PR target/85417
7064	* config/i386/cet.c (file_end_indicate_exec_stack_and_cet):
7065	Check flag_cf_protection instead of TARGET_IBT and TARGET_SHSTK.
7066	* config/i386/i386-c.c (ix86_target_macros_internal): Also
7067	define __IBT__ and __SHSTK__ for -fcf-protection.
7068	* config/i386/i386.c (pass_insert_endbranch::gate): Don't check
7069	TARGET_IBT.
7070	(ix86_trampoline_init): Likewise.
7071	(x86_output_mi_thunk): Likewise.
7072	(ix86_notrack_prefixed_insn_p): Likewise.
7073	(ix86_option_override_internal): Don't disallow -fcf-protection.
7074	* config/i386/i386.md (rdssp<mode>): Also enable for
7075	-fcf-protection.
7076	(incssp<mode>): Likewise.
7077	(nop_endbr): Likewise.
7078	* config/i386/i386.opt (mcet): Change help message to built-in
7079	functions only.
7080	(mibt): Likewise.
7081	(mshstk): Likewise.
7082	* doc/invoke.texi: Remove -mcet, -mibt and -mshstk condition
7083	on -fcf-protection.  Change -mcet, -mibt and -mshstk to only
7084	enable CET built-in functions.
7085
70862018-04-19  Sebastian Peryt  <sebastian.peryt@intel.com>
7087
7088	* common/config/i386/i386-common.c
7089	(OPTION_MASK_ISA_MOVDIRI_SET, OPTION_MASK_ISA_MOVDIR64B_SET,
7090	OPTION_MASK_ISA_MOVDIRI_UNSET,
7091	OPTION_MASK_ISA_MOVDIR64B_UNSET): New defines.
7092	(ix86_handle_option): Handle -mmovdiri and -mmovdir64b.
7093	* config.gcc (movdirintrin.h): New header.
7094	* config/i386/cpuid.h (bit_MOVDIRI,
7095	bit_MOVDIR64B): New bits.
7096	* config/i386/driver-i386.c (host_detect_local_cpu): Detect -mmovdiri
7097	and -mmvodir64b.
7098	* config/i386/i386-builtin-types.def ((VOID, PUNSIGNED, UNSIGNED),
7099	(VOID, PVOID, PCVOID)): New function types.
7100	* config/i386/i386-builtin.def (__builtin_ia32_directstoreu_u32,
7101	__builtin_ia32_directstoreu_u64,
7102	 __builtin_ia32_movdir64b): New builtins.
7103	* config/i386/i386-c.c (__MOVDIRI__, __MOVDIR64B__): New.
7104	* config/i386/i386.c (ix86_target_string): Added -mmovdir64b
7105	and -mmovdiri.
7106	(ix86_valid_target_attribute_inner_p): Ditto.
7107	(ix86_expand_special_args_builtin): Added VOID_FTYPE_PUNSIGNED_UNSIGNED
7108	and VOID_FTYPE_PUNSIGNED_UNSIGNED.
7109	(ix86_expand_builtin): Expand IX86_BUILTIN_MOVDIR64B.
7110	* config/i386/i386.h (TARGET_MOVDIRI, TARGET_MOVDIRI_P,
7111	TARGET_MOVDIR64B, TARGET_MOVDIR64B_P): New.
7112	* config/i386/i386.md (UNSPECV_MOVDIRI, UNSPECV_MOVDIR64B): New.
7113	(movdiri<mode>, movdir64b_<mode>): New.
7114	* config/i386/i386.opt: Add -mmovdiri and -mmovdir64b.
7115	* config/i386/immintrin.h: Include movdirintrin.h.
7116	* config/i386/movdirintrin.h: New file.
7117	* doc/invoke.texi: Added -mmovdiri and -mmovdir64b.
7118
71192018-04-19  Richard Biener  <rguenther@suse.de>
7120
7121	PR middle-end/85455
7122	* cfg.c (clear_bb_flags): When loop state says we have
7123	marked irreducible regions also preserve BB_IRREDUCIBLE_LOOP.
7124
71252018-04-19  Richard Biener  <rguenther@suse.de>
7126
7127	PR tree-optimization/84737
7128	* tree-vect-data-refs.c (vect_copy_ref_info): New function
7129	copying restrict info.
7130	(vect_setup_realignment): Use it.
7131	* tree-vectorizer.h (vect_copy_ref_info): Declare.
7132	* tree-vect-stmts.c (vectorizable_store): Copy ref info from
7133	the first DR to all generated stores.
7134	(vectorizable_load): Likewise for loads.
7135
71362018-04-19  Jakub Jelinek  <jakub@redhat.com>
7137
7138	PR tree-optimization/85446
7139	* match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require
7140	the integral and pointer types to have the same precision.
7141
7142	* doc/install.texi: Document --disable-cet being the default and
7143	--enable-cet=auto.
7144
71452018-04-18  Martin Liska  <mliska@suse.cz>
7146
7147	* ipa-devirt.c (odr_subtypes_equivalent_p): Fix GNU coding
7148	style.
7149
71502018-04-18  Martin Liska  <mliska@suse.cz>
7151
7152	Revert
7153	2018-03-02  Eric Botcazou  <ebotcazou@adacore.com>
7154
7155	PR ipa/83983
7156	* ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both
7157	arguments if they are comparable.
7158
71592018-04-18  Martin Liska  <mliska@suse.cz>
7160
7161	Revert
7162	2018-03-13  Eric Botcazou  <ebotcazou@adacore.com>
7163
7164	PR lto/84805
7165	* ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of
7166	incomplete types.
7167
71682018-04-18  H.J. Lu  <hongjiu.lu@intel.com>
7169
7170	PR target/85388
7171	* config/i386/i386.c (ix86_expand_split_stack_prologue): Insert
7172	ENDBR after calling __morestack.
7173
71742018-04-18  David Malcolm  <dmalcolm@redhat.com>
7175
7176	PR jit/85384
7177	* configure.ac (gcc-driver-name.h): Honor --with-gcc-major-version
7178	by using gcc_base_ver to generate a gcc_driver_version, and use
7179	it when generating GCC_DRIVER_NAME.
7180	* configure: Regenerate.
7181
71822018-04-18  Jakub Jelinek  <jakub@redhat.com>
7183
7184	PR target/81084
7185	* config.gcc: Obsolete powerpc*-*-*spe*.
7186
71872018-04-17  Jakub Jelinek  <jakub@redhat.com>
7188
7189	PR debug/84637
7190	* dbxout.c (dbxout_int): Perform negation in unsigned int type.
7191	(stabstr_D): Change type of unum from unsigned int to
7192	unsigned HOST_WIDE_INT.  Perform negation in unsigned HOST_WIDE_INT
7193	type.
7194
71952018-04-17  Jim Wilson  <jimw@sifive.com>
7196
7197	PR 84856
7198	* config/riscv/riscv.c (riscv_compute_frame_info): Add calls to
7199	RISCV_STACK_ALIGN when using outgoing_args_size and pretend_args_size.
7200	Set arg_pointer_offset after using pretend_args_size.
7201
72022018-04-17  Jakub Jelinek  <jakub@redhat.com>
7203
7204	PR rtl-optimization/85431
7205	* dse.c (record_store): Ignore zero width stores.
7206
7207	PR sanitizer/85230
7208	* asan.c (handle_builtin_stack_restore): Adjust comment.  Emit
7209	__asan_allocas_unpoison call and last_alloca_addr = new_sp before
7210	__builtin_stack_restore rather than after it.
7211	* builtins.c (expand_asan_emit_allocas_unpoison): Pass
7212	arg1 + (virtual_dynamic_stack_rtx - stack_pointer_rtx) as second
7213	argument instead of virtual_dynamic_stack_rtx.
7214
72152018-04-17  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7216
7217	* config/rs6000/rs6000-protos.h (rs6000_builtin_is_supported_p):
7218	New prototype.
7219	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7220	Add note to error message to explain internal mapping of overloaded
7221	built-in function name to non-overloaded built-in function name.
7222	* config/rs6000/rs6000.c (rs6000_builtin_is_supported_p): New
7223	function.
7224
72252018-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
7226
7227	PR target/85424
7228	* config/rs6000/rs6000.md (pack<mode>): Do not try handle a pack
7229	where the inputs overlap with the output.
7230
72312018-04-17  Jakub Jelinek  <jakub@redhat.com>
7232
7233	* config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Add
7234	(=v, v) alternative and explicit "memory" attribute.
7235	(vec_extract_lo_<mode><mask_name>): Likewise.  Also add
7236	"type", "prefix", "prefix_extra", "length_immediate" and "mode"
7237	attributes.
7238	(vec_extract_lo_<mode><mask_name>): Add (=v, v) alternative and use
7239	"sselog1" type instead of "sselog".
7240	(vec_extract_hi_<mode><mask_name>): Use "sselog1" type instead of
7241	"sselog".  Remove explicit "memory" attribute.
7242	(vec_extract_lo_v32hi): Add (=v, v) alternative and explicit "memory",
7243	"type", "prefix", "prefix_extra", "length_immediate" and "mode"
7244	attributes.
7245	(vec_extract_hi_v32hi): Merge all alternatives into one, use
7246	"sselog1" type instead of "sselog".  Remove explicit "memory"
7247	attribute.
7248	(vec_extract_hi_v16hi): Merge each pair of alternatives into one,
7249	use "sselog1" type instead of "sselog".  Remove explicit "memory"
7250	attribute.
7251	(vec_extract_lo_v64qi): Add (=v, v) alternative and explicit "memory",
7252	"type", "prefix", "prefix_extra", "length_immediate" and "mode"
7253	attributes.
7254	(vec_extract_hi_v64qi): Merge all alternatives into one, use
7255	"sselog1" type instead of "sselog".  Remove explicit "memory"
7256	attribute.
7257	(vec_extract_hi_v32qi): Merge each pair of alternatives into one,
7258	use "sselog1" type instead of "sselog".  Remove explicit "memory"
7259	attribute.
7260
7261	PR target/85430
7262	* config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu.
7263
7264	PR middle-end/85414
7265	* rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG
7266	on a SUBREG.
7267
72682018-04-17  Martin Jambor  <mjambor@suse.cz>
7269
7270	PR ipa/85421
7271	* ipa-cp.c (create_specialized_node): Call
7272	expand_all_artificial_thunks if necessary.
7273
72742018-04-17  Martin Liska  <mliska@suse.cz>
7275
7276	PR lto/85405
7277	* ipa-devirt.c (odr_types_equivalent_p): Remove trailing
7278	in message, remote space in between '_G' and '('.
7279
72802018-04-17  Jakub Jelinek  <jakub@redhat.com>
7281
7282	PR target/85281
7283	* config/i386/sse.md (reduces<mode><mask_scalar_name>,
7284	avx512f_vmcmp<mode>3<round_saeonly_name>,
7285	avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
7286	avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name>,
7287	avx512f_rndscale<mode><round_saeonly_name>,
7288	avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
7289	avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
7290	Use %<iptr>2 instead of %2 for -masm=intel.
7291	(avx512f_vcvtss2usi<round_name>, avx512f_vcvtss2usiq<round_name>,
7292	avx512f_vcvttss2usi<round_saeonly_name>,
7293	avx512f_vcvttss2usiq<round_saeonly_name>): Use %k1 instead of %1 for
7294	-masm=intel.
7295	(avx512f_vcvtsd2usi<round_name>, avx512f_vcvtsd2usiq<round_name>,
7296	avx512f_vcvttsd2usi<round_saeonly_name>,
7297	avx512f_vcvttsd2usiq<round_saeonly_name>, ufloatv2siv2df2<mask_name>):
7298	Use %q1 instead of %1 for -masm=intel.
7299	(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
7300	avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Use %<iptr>3 instead
7301	of %3 for -masm=intel.
7302	(sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for
7303	-masm=intel.
7304	(*avx512vl_<code>v2div2qi2_store): Use %w0 instead of %0 for
7305	-masm=intel.
7306	(*avx512vl_<code><mode>v4qi2_store): Use %k0 instead of %0 for
7307	-masm=intel.
7308	(avx512vl_<code><mode>v4qi2_mask_store): Use a single pattern with
7309	%k0 and %1 for -masm=intel rather than two patterns, one with %0 and
7310	%g1.
7311	(*avx512vl_<code><mode>v8qi2_store): Use %q0 instead of %0 for
7312	-masm=intel.
7313	(avx512vl_<code><mode>v8qi2_mask_store): Use a single pattern with
7314	%q0 and %1 for -masm=intel rather than two patterns, one with %0 and
7315	%g1 and one with %0 and %1.
7316	(avx512er_vmrcp28<mode><round_saeonly_name>,
7317	avx512er_vmrsqrt28<mode><round_saeonly_name>): Use %<iptr>1 instead of
7318	%1 for -masm=intel.
7319	(avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask,
7320	avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask,
7321	avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order
7322	of %0 and %{%4%} for -masm=intel.
7323	(avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz,
7324	avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz,
7325	avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap
7326	order of %0 and %{%5%}%{z%} for -masm=intel.
7327
73282018-04-17  Jan Hubicka  <jh@suse.cz>
7329
7330	PR lto/85405
7331	* ipa-devirt.c (odr_types_equivalent_p): Handle bit fields.
7332
73332018-04-17  Martin Liska  <mliska@suse.cz>
7334
7335	PR ipa/85329
7336	* multiple_target.c (create_dispatcher_calls): Set apostrophes
7337	for target_clone error message.  Make default implementation
7338	clone to be a local declaration.
7339	(separate_attrs): Add new argument and check for an empty
7340	string.
7341	(expand_target_clones): Handle it.
7342	(ipa_target_clone): Make redirection just for target_clones
7343	functions.
7344
73452018-04-16  Cesar Philippidis  <cesar@codesourcery.com>
7346	    Tom de Vries  <tom@codesourcery.com>
7347
7348	PR middle-end/84955
7349	* omp-expand.c (expand_oacc_for): Add dummy false branch for
7350	tiled basic blocks without omp continue statements.
7351
73522018-04-16  Aaron Sawdey  <acsawdey@linux.ibm.com>
7353
7354	PR target/83660
7355	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark
7356	vec_extract expression as having side effects to make sure it gets
7357	a cleanup point.
7358
73592018-04-16  H.J. Lu  <hongjiu.lu@intel.com>
7360
7361	PR target/85403
7362	* config/i386/i386.c (get_builtin_code_for_version): Check
7363	error_mark_node.
7364
73652018-04-16  Olga Makhotina  <olga.makhotina@intel.com>
7366
7367	PR target/84331
7368	* gcc/config.gcc: Support "skylake".
7369	* gcc/config/i386/i386-c.c (ix86_target_macros_internal): Handle
7370	PROCESSOR_SKYLAKE.
7371	* gcc/config/i386/i386.c (m_SKYLAKE): Define.
7372	(processor_target_table): Add "skylake".
7373	(ix86_option_override_internal): Add "skylake".
7374	(get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE,
7375	PROCESSOR_CANNONLAKE.
7376	(get_builtin_code_for_version): Fix priority for
7377	PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER,
7378	PROCESSOR_SKYLAKE-AVX512.
7379	* gcc/config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE.
7380	(processor_type): Add PROCESSOR_SKYLAKE.
7381
73822018-04-16  Paolo Carlini  <paolo.carlini@oracle.com>
7383	    Jason Merrill  <jason@redhat.com>
7384
7385	PR c++/85112
7386	* convert.c (convert_to_integer_1): Use direct recursion for
7387	enumeral types and types with a precision less than the number
7388	of bits in their mode.
7389
73902018-04-16  Julia Koval  <julia.koval@intel.com>
7391
7392	PR target/84413
7393	* config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL,
7394	X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512
7395
73962018-04-14  Segher Boessenkool  <segher@kernel.crashing.org>
7397
7398	PR target/85293
7399	* config/rs6000/rs6000.opt (mdirect-move): Make deprecated.
7400	* doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move
7401	and -mno-direct-move.
7402
74032018-04-13  Paul A. Clarke  <pc@us.ibm.com>
7404
7405	PR target/83402
7406	* config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}):
7407	Ensure that vec_splat_s32 is only called with 0 <= shift < 16.
7408	Ensure negative shifts result in {0}.
7409
74102018-04-13  Vladimir Makarov  <vmakarov@redhat.com>
7411
7412	PR rtl-optimization/79916
7413	* config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard
7414	regs (if any) to define how to gnerate SD moves when LRA is in
7415	progress.
7416
74172018-04-13  Jakub Jelinek  <jakub@redhat.com>
7418
7419	PR rtl-optimization/85393
7420	* except.h (expand_dw2_landing_pad_for_region): Remove declaration.
7421	* except.c (expand_dw2_landing_pad_for_region): Make static.
7422	* bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just
7423	a label and unconditional jump to old_bb, rather than
7424	expand_dw2_landing_pad_for_region insn(s) and jump to single_succ
7425	basic block.
7426
7427	PR rtl-optimization/85376
7428	* simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and
7429	zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX
7430	instead of a specific value.
7431
74322018-04-13  Jan Hubicka  <hubicka@ucw.cz>
7433	    Bin Cheng  <bin.cheng@arm.com>
7434
7435	PR tree-optimization/82965
7436	PR tree-optimization/83991
7437	* cfgloopanal.c (expected_loop_iterations_unbounded): Add
7438	by_profile_only parameter.
7439	* cfgloopmanip.c (scale_loop_profile): Further scale loop's profile
7440	information if the loop was predicted to iterate too many times.
7441	* cfgloop.h (expected_loop_iterations_unbounded): Update prototype
7442
74432018-04-13  Jan Hubicka  <hubicka@ucw.cz>
7444
7445	PR lto/71991
7446	* config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for
7447	always inline.
7448
74492018-04-13  Martin Liska  <mliska@suse.cz>
7450	    Jakub Jelinek  <jakub@redhat.com>
7451
7452	PR middle-end/81657
7453	* expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET.
7454	* expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET.
7455	* builtins.c (expand_builtin_memory_copy_args): Use
7456	BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target,
7457	handle dest_addr == pc_rtx.
7458
74592018-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
7460
7461	PR target/85291
7462	* config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if
7463	asked to not generate direct moves.
7464	(fix_trunc<mode>si2_stfiwx): Similar.
7465	(fix_trunc<mode>si2_internal): Similar.
7466
74672018-04-12  Jakub Jelinek  <jakub@redhat.com>
7468
7469	PR debug/83157
7470	* var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST.
7471	* cselib.c (cselib_record_sets): For STRICT_LOW_PART dest,
7472	lookup if dest in some wider mode is known to be const0_rtx and
7473	if so, record permanent equivalence for it to be ZERO_EXTEND of
7474	the narrower mode destination.
7475
74762018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
7477
7478	* lto-streamer-out.c (output_function): Revert 259346.
7479	* omp-expand.c (expand_oacc_for): Likewise.
7480
74812018-04-12  Alexander Monakov  <amonakov@ispras.ru>
7482
7483	PR rtl-optimization/85354
7484	* sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call...
7485	* sel-sched.c (sel_global_init): ... here.
7486
74872018-04-12  Eric Botcazou  <ebotcazou@adacore.com>
7488
7489	PR target/85238
7490	* lto-wrapper.c (debug_objcopy): Open the files in binary mode.
7491	* dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO
7492	mode for PE-COFF targets.
7493	* config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare.
7494	(i386_pe_asm_lto_end): Likewise.
7495	* config/i386/cygming.h (TARGET_ASM_LTO_START): Define.
7496	(TARGET_ASM_LTO_END): Likewise.
7497	* config/i386/winnt.c (saved_debug_info_level): New static variable.
7498	(i386_pe_asm_lto_start): New function.
7499	(i386_pe_asm_lto_end): Likewise.
7500
75012018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
7502	    Richard Biener  <rguenther@suse.de>
7503
7504	PR middle-end/84955
7505	* lto-streamer-out.c (output_function): Fix CFG loop state before
7506	streaming out.
7507	* omp-expand.c (expand_oacc_for): Handle calls to internal
7508	functions like regular functions.
7509
75102018-04-12  Richard Biener  <rguenther@suse.de>
7511
7512	PR lto/85371
7513	* dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label]
7514	for the early LTO debug to properly generate references to it
7515	during DIE emission.  Do not re-use that for the skeleton for
7516	split-dwarf.
7517	(dwarf2out_early_finish): Likewise.
7518
75192018-04-12  Jakub Jelinek  <jakub@redhat.com>
7520
7521	PR target/85328
7522	* config/i386/sse.md
7523	(<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name> split,
7524	<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name> split,
7525	vec_extract_lo_<mode><mask_name> split, vec_extract_lo_v32hi,
7526	vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg
7527	and output is a reg, avoid creating invalid lowpart subreg, but
7528	instead split into a 512-bit move.  Don't split if not AVX512VL,
7529	input is xmm16+ reg and output is a mem.
7530	(vec_extract_lo_<mode><mask_name>, vec_extract_lo_v32hi,
7531	vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is
7532	xmm16+ reg and output is a mem.
7533
75342018-04-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7535
7536	* config/s390/s390.c (s390_output_indirect_thunk_function): Check
7537	also for flag_dwarf2_cfi_asm.
7538
75392018-04-12  Jakub Jelinek  <jakub@redhat.com>
7540
7541	PR rtl-optimization/85342
7542	* regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use
7543	a bool scalar var inside of the loop instead.  Don't try to update
7544	recog_data.operand after failed apply_change_group.
7545
75462018-04-12  Tom de Vries  <tom@codesourcery.com>
7547
7548	PR target/85296
7549	* config/nvptx/nvptx.c (flexible_array_member_type_p): New function.
7550	(nvptx_assemble_decl_begin): Add undefined param.  Declare undefined
7551	array with flexible array member as array without given dimension.
7552	(nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call
7553	argument for undefined param to true.
7554
75552018-04-11  Aaron Sawdey  <acsawdey@linux.ibm.com>
7556
7557	PR target/85321
7558	* doc/invoke.texi (RS/6000 and PowerPC Options): Document options
7559	-mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe
7560	from PowerPC section.
7561	* config/rs6000/sysv4.opt (mcall-): Improve help text.
7562	* config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim
7563	help text that is too long.
7564	* config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim
7565	help text that is too long.
7566	* config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim
7567	help text that is too long.
7568
75692018-04-11  Uros Bizjak  <ubizjak@gmail.com>
7570
7571	* config/alpha/alpha.md (stack_probe_internal): Rename
7572	from "probe_stack".  Update all callers.
7573
75742018-04-11  Alexander Monakov  <amonakov@ispras.ru>
7575
7576	PR rtl-optimization/84566
7577	* sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking
7578	sched_macro_fuse_insns.
7579
75802018-04-11  Alexander Monakov  <amonakov@ispras.ru>
7581
7582	PR target/84301
7583	* sched-rgn.c (add_branch_dependences): Move sel_sched_p check here...
7584	(compute_block_dependences): ... from here.
7585
75862018-04-11  Jakub Jelinek  <jakub@redhat.com>
7587
7588	PR tree-optimization/85331
7589	* vec-perm-indices.h (vec_perm_indices::clamp): Change input type
7590	from int to HOST_WIDE_INT.
7591
75922018-04-11  Martin Jambor  <mjambor@suse.cz>
7593
7594	PR ipa/84149
7595	* ipa-cp.c (propagate_vals_across_pass_through): Expand comment.
7596	(cgraph_edge_brings_value_p): New parameter dest_val, check if it is
7597	not the same as the source val.
7598	(cgraph_edge_brings_value_p): New parameter.
7599	(gather_edges_for_value): Pass destination value to
7600	cgraph_edge_brings_value_p.
7601	(perhaps_add_new_callers): Likewise.
7602	(get_info_about_necessary_edges): Likewise and exclude values brought
7603	only by self-recursive edges.
7604	(create_specialized_node): Redirect only clones of self-calling edges.
7605	(+self_recursive_pass_through_p): New function.
7606	(find_more_scalar_values_for_callers_subset): Use it.
7607	(find_aggregate_values_for_callers_subset): Likewise.
7608	(known_aggs_to_agg_replacement_list): Removed.
7609	(decide_whether_version_node): Re-calculate known constants for all
7610	remaining context clones.
7611
76122018-04-11  Richard Biener  <rguenther@suse.de>
7613
7614	PR lto/85339
7615	* dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute
7616	from early DWARF output.
7617	(dwarf2out_early_finish): Output line info unconditionally into
7618	early DWARF and add reference to it.
7619
76202018-04-11  Jakub Jelinek  <jakub@redhat.com>
7621
7622	PR target/85281
7623	* config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases.
7624	(<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes
7625	other than V2DFmode using iptr mode attribute.
7626	(<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute.
7627
76282018-04-11  Alexander Monakov  <amonakov@ispras.ru>
7629
7630	PR rtl-optimization/84659
7631	* sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg.
7632
76332018-04-11  Jakub Jelinek  <jakub@redhat.com>
7634
7635	PR debug/85302
7636	* dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if
7637	SIZEP is NULL.
7638	(output_loc_list): Pass address of a dummy size variable even in the
7639	locview handling loop.
7640	(index_location_lists): Add comment on why skip_loc_list_entry can't
7641	call size_of_locs.
7642
76432018-04-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7644
7645	PR target/85261
7646	* config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
7647	into register.
7648
76492018-04-10  Aaron Sawdey  <acsawdey@linux.ibm.com>
7650
7651	PR target/85321
7652	* doc/invoke.texi (RS/6000 and PowerPC Options): Document options
7653	-mblock-compare-inline-limit, -mblock-compare-inline-loop-limit,
7654	and -mstring-compare-inline-limit.
7655
76562018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
7657
7658	PR target/85287
7659	* gcc/config/rs6000/rs6000.md (allocate_stack): Put the residual size
7660	for stack clash protection in a register whenever we need it to be in
7661	a register.
7662
76632018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
7664
7665	* common/config/rs6000/rs6000-common.c (rs6000_option_init_struct):
7666	Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF.
7667
76682018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
7669
7670	PR target/85321
7671	* config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in
7672	the help text.
7673	(mlong-double-): Ditto.
7674	* config/rs6000/sysv4.opt (msdata=): Ditto.
7675	(mtls-size=): Ditto.
7676
76772018-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7678
7679	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
7680	erroneous entries for
7681	"vector int vec_ldl (int, long int *)", and
7682	"vector unsigned int vec_ldl (int, unsigned long int *)".
7683	Add comments and entries for
7684	"vector bool char vec_ldl (int, bool char *)",
7685	"vector bool short vec_ldl (int, bool short *)",
7686	"vector bool int vec_ldl (int, bool int *)",
7687	"vector bool long long vec_ldl (int, bool long long *)",
7688	"vector pixel vec_ldl (int, pixel *)",
7689	"vector long long vec_ldl (int, long long *)",
7690	"vector unsigned long long vec_ldl (int, unsigned long long *)".
7691	* config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new
7692	type tree bool_long_long_type_node and correct definition of
7693	bool_V2DI_type_node to make reference to this new type tree.
7694	(rs6000_mangle_type): Replace erroneous reference to
7695	bool_long_type_node with bool_long_long_type_node.
7696	* config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add
7697	comments to emphasize sign distinctions for char and int types and
7698	replace RS6000_BTI_bool_long constant with
7699	RS6000_BTI_bool_long_long constant.  Also add comment to restrict
7700	use of RS6000_BTI_pixel.
7701	(bool_long_type_node): Remove this macro definition.
7702	(bool_long_long_type_node): New macro definition
7703
77042018-04-10  Jakub Jelinek  <jakub@redhat.com>
7705
7706	PR rtl-optimization/85300
7707	* combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also
7708	into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if
7709	simplify_unary_operation fails.
7710
77112018-04-10  Martin Liska  <mliska@suse.cz>
7712
7713	* gdbhooks.py: Add pretty-printers for varpool_node, symtab_node,
7714	cgraph_edge and ipa_ref.
7715
77162018-04-10  Jakub Jelinek  <jakub@redhat.com>
7717
7718	PR target/85177
7719	PR target/85255
7720	* config/i386/sse.md
7721	(<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix
7722	computation of the VEC_MERGE selector from mask.
7723	(<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>):
7724	Fix decoding of the VEC_MERGE selector into mask.
7725
77262018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
7727
7728	PR tree-optimization/85286
7729	* tree-vect-data-refs.c (vect_get_smallest_scalar_type):
7730
77312018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
7732
7733	* final.c (final_1): Set insn_last_address as well as
7734	insn_current_address.
7735
77362018-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7737
7738	PR target/85173
7739	* explow.c (emit_stack_probe): Call validize_mem on memory location
7740	before passing it to gen_probe_stack.  Create address operand and
7741	legitimize it for the probe_stack_address case.
7742
77432018-04-09  Jan Hubicka  <jh@suse.cz>
7744
7745	PR lto/85078
7746	* ipa-devirt.c (rebuild_type_inheritance-hash): New.
7747	* ipa-utils.h (rebuild_type_inheritance-hash): Declare.
7748	* tree.c (free_lang_data_in_type): Fix handling of binfos;
7749	walk basetypes.
7750	(free_lang_data): Rebuild type inheritance graph.
7751
77522018-04-09  Martin Sebor  <msebor@redhat.com>
7753
7754	* invoke.texi (-finline-small-functions): Mention other optimization
7755	options.
7756	(-findirect-inlining, -fpartial-inlining): Same.
7757	(-finline-functions-called-once): Same.
7758	(-freorder-blocks-and-partition): Same.
7759
77602018-04-09  Jan Hubicka  <jh@suse.cz>
7761
7762	PR rtl/84058
7763	* cfgcleanup.c (try_forward_edges): Do not give up on crossing
7764	jumps; choose last target that matches the criteria (i.e.
7765	no partition changes for non-crossing jumps).
7766	* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic
7767	support for redirecting crossing jumps to non-crossing.
7768
77692018-04-09  Alexey Brodkin  <abrodkin@synopsys.com>
7770
7771	* config/arc/arc.c (arc_expand_prologue): Set stack usage info
7772	also for naked functions.
7773
77742018-04-09  Claudiu Zissulescu  <claziss@synopsys.com>
7775
7776	* config/arc/arc.md (add_shift): New pattern.
7777	(add_shift2): Likewise.
7778	(sub_shift): Likewise.
7779	(sub_shift_cmp0_noout): Likewise.
7780	(compare_si_ashiftsi): Likewise.
7781	(xbfu_cmp0_noout): New combine pattern.
7782	(xbfu_cmp0"): Likewise.
7783	(movsi_set_cc_insn): Place the predicable variant first.
7784	(commutative_binary_cmp0_noout): Remove clobber.
7785	(commutative_binary_cmp0): New pattern.
7786	(noncommutative_binary_cmp0): Likewise.
7787	(noncommutative_binary_cmp0_noout): Likewise.
7788	(noncommutative_binary_comparison_result_used): Removed.
7789	(rsub_cmp0): New pattern.
7790	(rsub_cmp0_noout): Likewise.
7791	(extzvsi): Changed, keep only meaningful variants.
7792	(SQH, SEZ): New iterators.
7793	(SQH_postfix): New mode attribute.
7794	(SEZ_prefix): New code attribute.
7795	(<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern.
7796	(<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise.
7797	* config/arc/predicates.md (cc_set_register): Use CC_REG instead
7798	of numerical value.
7799	(noncommutative_operator): Check the availability of barrel
7800	shifter option.
7801
78022018-04-09  Richard Biener  <rguenther@suse.de>
7803
7804	PR tree-optimization/85284
7805	* tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
7806	Only use the niter constraining form of simple_iv when the exit
7807	is always executed.
7808
78092018-04-09  Tom de Vries  <tom@codesourcery.com>
7810
7811	PR target/84041
7812	* config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR.
7813	(define_expand "*memory_barrier"): New define_expand.
7814	(define_insn "memory_barrier"): New insn.
7815
78162018-04-09  Andrey Belevantsev  <abel@ispras.ru>
7817
7818	PR rtl-optimization/80463
7819	PR rtl-optimization/83972
7820	PR rtl-optimization/83480
7821
7822	* sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the
7823	correct producer for the insn.
7824	(tidy_control_flow): Fixup seqnos in case of debug insns.
7825
78262018-04-09  Andrey Belevantsev  <abel@ispras.ru>
7827
7828	PR rtl-optimization/83913
7829
7830	* sel-sched-ir.c (merge_expr_data): Choose the middle between two
7831	different sched-times when merging exprs.
7832
78332018-04-09  Andrey Belevantsev  <abel@ispras.ru>
7834
7835	PR rtl-optimization/83962
7836
7837	* sel-sched-ir.c (tidy_control_flow): Correct the order in which we call
7838	tidy_fallthru_edge and tidy_control_flow.
7839
78402018-04-09  Andrey Belevantsev  <abel@ispras.ru>
7841
7842	PR rtl-optimization/83530
7843
7844	* sel-sched.c (force_next_insn): New global variable.
7845	(remove_insn_for_debug): When force_next_insn is true, also leave only
7846	next insn in the ready list.
7847	(sel_sched_region): When the region wasn't scheduled, make another pass
7848	over it with force_next_insn set to 1.
7849
78502018-04-08  Monk Chiang  <sh.chiang04@gmail.com>
7851
7852	* config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h
7853	into tm_file.
7854	* config/nds32/constants.md (unspec_volatile_element): Add enum values
7855	for interrupt control.
7856	* config/nds32/nds32-intrinsic.c: Implementation of intrinsic
7857	functions for interrupt control.
7858	* config/nds32/nds32-intrinsic.md: Likewise.
7859	* config/nds32/nds32_intrinsic.h: Likewise.
7860	* config/nds32/nds32.h (nds32_builtins): Likewise.
7861
78622018-04-08  Chung-Ju Wu  <jasonwucj@gmail.com>
7863
7864	* config/nds32/nds32.c (nds32_init_machine_status,
7865	nds32_legitimate_index_p, nds32_legitimate_address_p): Consider
7866	strict_aligned_p field.
7867	(nds32_expand_to_rtl_hook): New function.
7868	(TARGET_EXPAND_TO_RTL_HOOK): Define.
7869	* config/nds32/nds32.h (machine_function): Add strict_aligned_p field.
7870
78712018-04-08  Kito Cheng  <kito.cheng@gmail.com>
7872	    Chung-Ju Wu  <jasonwucj@gmail.com>
7873
7874	* config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu.
7875	* config/nds32/nds32-n7.md: New file.
7876	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7.
7877	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7
7878	pipeline.
7879	* config/nds32/nds32-protos.h: More declarations for n7 pipeline.
7880	* config/nds32/nds32.md (pipeline_model): Add n7.
7881	* config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus.
7882	* config/nds32/pipelines.md: Include n7 settings.
7883
78842018-04-08  Kito Cheng  <kito.cheng@gmail.com>
7885	    Chung-Ju Wu  <jasonwucj@gmail.com>
7886
7887	* config.gcc (nds32*-*-*): Check that e8 is valid to --with-cpu.
7888	* config/nds32/nds32-e8.md: New file.
7889	* config/nds32/nds32-opts.h (nds32-cpu_type): Add CPU_E8.
7890	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for e8
7891	pipeline.
7892	* config/nds32/nds32-protos.h: More declarations for e8 pipeline.
7893	* config/nds32/nds32.md (pipeline_model): Add e8.
7894	* config/nds32/nds32.opt (mcpu): Support e8 pipeline cpus.
7895	* config/nds32/pipelines.md: Include e8 settings.
7896
78972018-04-08  Kito Cheng  <kito.cheng@gmail.com>
7898	    Chung-Ju Wu  <jasonwucj@gmail.com>
7899
7900	* config.gcc (nds32*-*-*): Check that n6/n8/s8 are valid to --with-cpu.
7901	* config/nds32/nds32-n8.md: New file.
7902	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N6 and CPU_N8.
7903	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n8
7904	pipeline.
7905	* config/nds32/nds32-protos.h: More declarations for n8 pipeline.
7906	* config/nds32/nds32-utils.c: More implementations for n8 pipeline.
7907	* config/nds32/nds32.md (pipeline_model): Add n8.
7908	* config/nds32/nds32.opt (mcpu): Support n8 pipeline cpus.
7909	* config/nds32/pipelines.md: Include n8 settings.
7910
79112018-04-08  Kito Cheng  <kito.cheng@gmail.com>
7912	    Chung-Ju Wu  <jasonwucj@gmail.com>
7913
7914	* config.gcc (nds32*): Add nds32-utils.o into extra_objs.
7915	* config/nds32/nds32-n9-2r1w.md: New file.
7916	* config/nds32/nds32-n9-3r2w.md: New file.
7917	* config/nds32/nds32-opts.h (nds32_cpu_type, nds32_mul_type,
7918	nds32_register_ports): New or modify for cpu n9.
7919	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n9
7920	pipeline.
7921	* config/nds32/nds32-protos.h: More declarations for n9 pipeline.
7922	* config/nds32/nds32-utils.c: New file.
7923	* config/nds32/nds32.h (TARGET_PIPELINE_N9, TARGET_PIPELINE_SIMPLE,
7924	TARGET_MUL_SLOW): Define.
7925	* config/nds32/nds32.md (pipeline_model): New attribute.
7926	* config/nds32/nds32.opt (mcpu, mconfig-mul, mconfig-register-ports):
7927	New options that support cpu n9.
7928	* config/nds32/pipelines.md: Include n9 settings.
7929	* config/nds32/t-nds32 (nds32-utils.o): Add dependency.
7930
79312018-04-08  Chung-Ju Wu  <jasonwucj@gmail.com>
7932
7933	* config/nds32/nds32-md-auxiliary.c (output_cond_branch): Output align
7934	information if necessary.
7935	(output_cond_branch_compare_zero): Likewise.
7936	* config/nds32/nds32.c (nds32_adjust_insn_length): Consider align case.
7937	(nds32_target_alignment): Refine for alignment.
7938	* config/nds32/nds32.h (NDS32_ALIGN_P): Define.
7939	(FUNCTION_BOUNDARY): Modify.
7940	* config/nds32/nds32.md (call_internal, call_value_internal): Consider
7941	align case.
7942	* config/nds32/nds32.opt (malways-align, malign-functions): New.
7943
79442018-04-08  Monk Chiang  <sh.chiang04@gmail.com>
7945
7946	* config/nds32/constants.md (unspec_volatile_element): Add values for
7947	TLB operation and data prefetch.
7948	* config/nds32/nds32-intrinsic.c: Implementation of intrinsic
7949	functions for TLB operation and data prefetch.
7950	* config/nds32/nds32-intrinsic.md: Likewise.
7951	* config/nds32/nds32_intrinsic.h: Likewise.
7952	* config/nds32/nds32.c (nds32_dpref_names): Likewise.
7953	(nds32_print_operand): Likewise.
7954	* config/nds32/nds32.h (nds32_builtins): Likewise.
7955
79562018-04-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
7957	Andrew Pinski <pinsika@gcc.gnu.org>
7958
7959	PR middle-end/82976
7960	* match.pd: Use constant_boolean_node of correct type instead of
7961	boolean_true_node or boolean_false_node for simplifying
7962	pointer comparisons to zero.
7963
79642018-04-07  Jakub Jelinek  <jakub@redhat.com>
7965
7966	PR tree-optimization/80021
7967	* tree.c (verify_type_variant): Make error call in verify_variant_match
7968	translatable and remove final full stop.
7969
79702018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
7971
7972	* config/nds32/constants.md (unspec_volatile_element): Add
7973	UNSPEC_VOLATILE_EH_RETURN.
7974	* config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push,
7975	nds32_output_stack_pop): Support dwarf exception handling process.
7976	* config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare.
7977	* config/nds32/nds32.c (nds32_init_machine_status): Support dwarf
7978	exception handling process.
7979	(nds32_compute_stack_frame): Likewise.
7980	(nds32_return_addr_rtx): Likewise.
7981	(nds32_initial_elimination_offset): Likewise.
7982	(nds32_expand_prologue): Likewise.
7983	(nds32_expand_epilogue): Likewise.
7984	(nds32_dynamic_chain_address): New function.
7985	* config/nds32/nds32.h (machine_function): Add fields for dwarf
7986	exception handling.
7987	(DYNAMIC_CHAIN_ADDRESS): Define.
7988	(EH_RETURN_DATA_REGNO): Define.
7989	(EH_RETURN_STACKADJ_RTX): Define.
7990	* config/nds32/nds32.md (eh_return, nds32_eh_return): Implement
7991	patterns for dwarf exception handling.
7992
79932018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
7994
7995	* config/nds32/nds32.h: Clean up obsolete macros.
7996
79972018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
7998
7999	* config/nds32/constants.md (unspec_element, unspec_volatile_element):
8000	Add enum values for particular instructions.
8001	* config/nds32/nds32-intrinsic.c: Implementation of expanding
8002	particular intrinsic functions.
8003	* config/nds32/nds32-intrinsic.md: Likewise.
8004	* config/nds32/nds32_intrinsic.h: Likewise.
8005	* config/nds32/nds32.h (nds32_builtins): Likewise.
8006	* config/nds32/nds32.md (type): Add pbsad and pbsada.
8007	(btst, ave): New patterns for particular instructions.
8008
80092018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
8010
8011	* config/nds32/constants.md (unspec_element, unspec_volatile_element):
8012	Add enum values for atomic load/store and memory sync.
8013	* config/nds32/nds32-intrinsic.c: Implementation for atomic load/store
8014	and memory sync.
8015	* config/nds32/nds32-intrinsic.md: Likewise.
8016	* config/nds32/nds32_intrinsic.h: Likewise.
8017	* config/nds32/nds32.h (nds32_builtins): Likewise.
8018
80192018-04-07  Jakub Jelinek  <jakub@redhat.com>
8020
8021	PR tree-optimization/85257
8022	* fold-const.c (native_encode_vector): If not all elts could fit
8023	and off is -1, return 0 rather than offset.
8024	* tree-ssa-sccvn.c (vn_reference_lookup_3): Pass
8025	(offseti - offset2) / BITS_PER_UNIT as 4th argument to
8026	native_encode_expr.  Verify len * BITS_PER_UNIT >= maxsizei.  Don't
8027	adjust buffer in native_interpret_expr call.
8028
80292018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
8030
8031	* config/nds32/constants.md (unspec_volatile_element): Add cache
8032	control enum values.
8033	* config/nds32/nds32-intrinsic.c: Add cache control expand functions.
8034	* config/nds32/nds32-intrinsic.md: Add cache control patterns.
8035	* config/nds32/nds32.c (nds32_cctl_names): New.
8036	(nds32_print_operand): Handle cache control register names.
8037	* config/nds32/nds32.h (nds32_builtins): New enum values.
8038	* config/nds32/nds32_intrinsic.h: Add cache control enum types and
8039	macros.
8040	* config/nds32/nds32.md (type): Add mmu.
8041	* config/nds32/pipelines.md (simple_insn): Add mmu.
8042
80432018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
8044
8045	* config/nds32/nds32.md (type): Remove call.
8046	* config/nds32/pipelines.md (simple_insn): Likewise.
8047
80482018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
8049
8050	* config/nds32/constants.md (unspec_volatile_element): Add
8051	UNSPEC_VOLATILE_FMFCSR, UNSPEC_VOLATILE_FMTCSR and
8052	UNSPEC_VOLATILE_FMFCFG.
8053	* config/nds32/nds32-intrinsic.c (bdesc_noarg): New builtin
8054	description for fmfcfg and fmfcsr.
8055	(bdesc_1arg): Add fmtcsr.
8056	(bdesc_2arg): Add fcpynss, fcpyss, fcpynsd and fcpysd.
8057	(nds32_expand_builtin_impl): Deal with FPU intrinsic functions.
8058	* config/nds32/nds32-intrinsic.md (unspec_fcpynsd, unspec_fcpysd,
8059	unspec_fcpynss, unspec_fcpysd, unspec_fcpyss, unspec_fmfcsr,
8060	unspec_fmfcfg): New patterns.
8061	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FMFCFG,
8062	NDS32_BUILTIN_FMFCSR, NDS32_BUILTIN_FMTCSR, NDS32_BUILTIN_FCPYNSS,
8063	NDS32_BUILTIN_FCPYSS,NDS32_BUILTIN_FCPYNSD and NDS32_BUILTIN_FCPYSD.
8064	* config/nds32/nds32_intrinsic.h (__nds32__fcpynsd, __nds32__fcpynss,
8065	__nds32__fcpysd, __nds32__fcpyss, __nds32__fmfcsr, __nds32__fmtcsr,
8066	__nds32__fmfcfg): Define.
8067
80682018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
8069
8070	* config/nds32/nds32.c (nds32_intrinsic_register_names): Add more
8071	intrinsic register names.
8072	* config/nds32/nds32_intrinsic.h (nds32_intrinsic_registers): Add more
8073	intrinsic register enum values and macros.
8074
80752018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
8076
8077	* config/nds32/nds32.c (nds32_legitimate_index_p): Modify condition
8078	for load/store addressing form.
8079	(nds32_print_operand_address): Likewise.
8080
80812018-04-06  Eric Botcazou  <ebotcazou@adacore.com>
8082
8083	PR target/85196
8084	* config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands
8085	based on LABEL_REF.  Remove useless assertion.
8086	(pic_address_needs_scratch): Fix formatting.
8087	(sparc_legitimize_pic_address): Minor tweaks.
8088	(sparc_delegitimize_address): Adjust assertion accordingly.
8089	* config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand
8090	into symbolic_operand.
8091	(movsi_high_pic_label_ref): Likewise.
8092	(movsi_lo_sum_pic_label_ref): Likewise.
8093	(movdi_pic_label_ref): Likewise.
8094	(movdi_high_pic_label_ref): Likewise.
8095	(movdi_lo_sum_pic_label_ref): Likewise.
8096
80972018-04-06  Amaan Cheval  <amaan.cheval@gmail.com>
8098
8099	* config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for
8100	custom LIB_SPEC setup.
8101
81022018-04-06  Ruslan Bukin  <br@bsdpad.com>
8103	    Kito Cheng  <kito.cheng@gmail.com>
8104
8105	* config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support.
8106	* config/riscv/freebsd.h: New.
8107
81082018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
8109
8110	* config/nds32/nds32.c (nds32_adjust_insn_length): Refine.
8111	* config/nds32/nds32.h (ADJUST_INSN_LENGTH): Change the location in
8112	file.
8113
81142018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
8115	    Kito Cheng  <kito.cheng@gmail.com>
8116
8117	* config/nds32/nds32-md-auxiliary.c (nds32_output_return,
8118	nds32_output_call, nds32_symbol_binds_local_p): New functions.
8119	* config/nds32/nds32-protos.h (nds32_output_call,
8120	nds32_output_return): Declare.
8121	* config/nds32/nds32.md: Refine all the call and return patterns.
8122
81232018-04-06  Jakub Jelinek  <jakub@redhat.com>
8124
8125	PR debug/85252
8126	* dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only
8127	build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST.
8128
8129	PR rtl-optimization/84872
8130	* cfgloopmanip.c (create_preheader): Use make_forwarder_block even if
8131	nentry == 1 when CP_FALLTHRU_PREHEADERS and single_entry is
8132	EDGE_CROSSING edge.
8133
81342018-04-06  Tamar Christina  <tamar.christina@arm.com>
8135
8136	* expr.c (copy_blkmode_to_reg): Revert 254862.
8137	* doc/sourcebuild.texi (word_mode_no_slow_unalign): Likewise.
8138
81392018-04-06  Richard Biener  <rguenther@suse.de>
8140
8141	PR middle-end/85244
8142	* tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref
8143	after seeing a component reference with an adjacent field.  Treat
8144	refs to arrays at struct end of external decls similar to
8145	refs to unconstrained commons.
8146
81472018-04-06  Jakub Jelinek  <jakub@redhat.com>
8148
8149	PR sanitizer/85213
8150	* fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't
8151	look through SAVE_EXPRs with non-side-effects argument.  Adjust
8152	recursive calls.
8153	(fold_comparison): Adjust twoval_comparison_p caller, don't handle
8154	save_p here.
8155
81562018-04-06  Richard Biener  <rguenther@suse.de>
8157
8158	PR middle-end/85180
8159	* alias.c (find_base_term): New wrapper around find_base_term
8160	unwinding CSELIB_VAL_PTR changes.
8161	(find_base_term): Do not restore CSELIB_VAL_PTR during the
8162	recursion.
8163
81642018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8165
8166	* config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP
8167	instructions.
8168	* config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New
8169	constant definitions.
8170	("nop"): lr 0,0 -> nopr r0
8171	("nop_lr0", "nop_lr1"): New insn definitions.
8172
81732018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
8174
8175	* config/nds32/nds32.md (*stack_push, *stack_pop): Use
8176	NDS32_V3PUSH_AVAILABLE_P macro.
8177
81782018-04-06  Monk Chiang  <sh.chiang04@gmail.com>
8179	    Chung-Ju Wu  <jasonwucj@gmail.com>
8180
8181	* config.gcc (nds32*-*-*): Add v2j v3f v3s checking.
8182	(nds32*-*-*): Add float and fpu_config into supported_defaults.
8183	* common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
8184	Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA.
8185	* config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN,
8186	UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS.
8187	* config/nds32/constraints.md: New constraints and checking for hard
8188	float configuration.
8189	* config/nds32/iterators.md: New mode iterator and attribute for hard
8190	float configuration.
8191	* config/nds32/nds32-doubleword.md: Use hard float alternatives and
8192	patterns.
8193	* config/nds32/nds32-fpu.md: New file.
8194	* config/nds32/nds32-md-auxiliary.c: New functions and checkings to
8195	deal with hard float code generation.
8196	* config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and
8197	ARCH_V3S.
8198	(abi_type, float_reg_number): New enum type.
8199	* config/nds32/nds32-predicates.c: New predicates for hard float.
8200	* config/nds32/nds32-protos.h: Declare functions for hard float.
8201	* config/nds32/nds32.c: Implementation for hard float configuration.
8202	* config/nds32/nds32.h: Definitions for hard float configuration.
8203	* config/nds32/nds32.md: Include hard float machine description and
8204	modify patterns for hard float configuration.
8205	* config/nds32/nds32.opt: New options for hard float configuration.
8206	* config/nds32/predicates.md: New predicates for hard float
8207	configuration.
8208
82092018-04-06  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
8210
8211	* common/config/nds32/nds32-common.c
8212	(nds32_option_optimization_table): Enable -mreleax-hint by default.
8213
82142018-04-05  Jakub Jelinek  <jakub@redhat.com>
8215
8216	PR middle-end/85195
8217	* match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Use view_convert around
8218	CONSTRUCTOR_ELT (ctor, ...)->value.
8219
82202018-04-05  Uros Bizjak  <ubizjak@gmail.com>
8221
8222	PR target/85193
8223	* config/i386/i386.md (define_attr "memory"): Handle rotate1 type.
8224
82252018-04-05  Tom de Vries  <tom@codesourcery.com>
8226
8227	PR target/85204
8228	* config/nvptx/nvptx.c (nvptx_single): Fix neutering of bb with only
8229	cond jump.
8230
82312018-04-05  Shiva Chen  <shiva0217@gmail.com>
8232	    Kito Cheng  <kito.cheng@gmail.com>
8233
8234	* config/nds32/constraints.md (U33): Fine-tune checking condition.
8235	* config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Ditto.
8236	* config/nds32/nds32.h (nds32_16bit_address_type): Add
8237	ADDRESS_POST_MODIFY_LO_REG_IMM3U.
8238
82392018-04-05  Shiva Chen  <shiva0217@gmail.com>
8240	    Kito Cheng  <kito.cheng@gmail.com>
8241
8242	* config/nds32/constraints.md (Ufe): New memory constraint.
8243	* config/nds32/nds32-md-auxiliary.c (nds32_mem_format,
8244	nds32_output_16bit_load): Consider r8 register for lwi45.fe format.
8245	* config/nds32/nds32.c (nds32_print_operand): Output lwi45.fe
8246	operands.
8247	* config/nds32/nds32.h (nds32_16bit_address_type): Add ADDRESS_R8_IMM7U.
8248	* config/nds32/nds32.md (*mov<mode>): Adjust pattern.
8249
82502018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
8251
8252	* config/nds32/nds32.md: Use optimize_size in the condition for
8253	alu-shift instructions.
8254
82552018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
8256
8257	* config/nds32/nds32.md (divsi4, udivsi4): New patterns.
8258
82592018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
8260
8261	* config/nds32/nds32.md (negsi2): Refine pattern.
8262
82632018-04-05  Kito Cheng  <kito.cheng@gmail.com>
8264	    Chung-Ju Wu  <jasonwucj@gmail.com>
8265
8266	* config/nds32/iterators.md (shift_rotate): New code iterator.
8267	(shift): New code attribute.
8268	* config/nds32/nds32-md-auxiliary.c (nds32_expand_constant): New.
8269	* config/nds32/nds32-protos.h (nds32_expand_constant): Declare.
8270	* config/nds32/nds32.c (nds32_print_operand): Deal with more cases.
8271	* config/nds32/nds32.md (addsi3, *add_srli): Refine implementation for
8272	bit-wise operations.
8273	(andsi3, *andsi3): Ditto.
8274	(iorsi3, *iorsi3, *or_slli, *or_srli): Ditto.
8275	(xorsi3, *xorsi3, *xor_slli, *xor_srli): Ditto.
8276	(<shift>si3, *ashlsi3, *ashrsi3, *lshrsi3, *rotrsi3): Ditto.
8277	* config/nds32/predicates.md (nds32_rimm5u_operand, nds32_and_operand,
8278	nds32_ior_operand, nds32_xor_operand): New predicates.
8279
82802018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
8281
8282	* config/nds32/nds32.md (add<mode>3, sub<mode>3): Rename to ...
8283	(addsi3, subsi3): ... this.
8284
82852018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
8286
8287	* config/nds32/nds32.md (*sub_srli, *and_slli): Fine-tune predicator.
8288
82892018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
8290
8291	* config/nds32/nds32.md: Adjust indention.
8292
82932018-04-05  Kito Cheng  <kito.cheng@gmail.com>
8294
8295	* config/nds32/nds32.md (feature): New attribute.
8296
82972018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
8298
8299	* config/nds32/nds32.md (subtype): New attribute.
8300
83012018-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8302
8303	PR target/85203
8304	* config/arm/arm-builtins.c (arm_expand_builtin): Change
8305	expansion to perform a bitwise AND of the argument followed by a
8306	boolean negation of the result.
8307
83082018-04-04  Peter Bergner  <bergner@vnet.ibm.com>
8309
8310	PR rtl-optimization/84878
8311	* ddg.c (add_cross_iteration_register_deps): Use DF_REF_BB to determine
8312	the basic block.  Assert the use reference is not artificial and that
8313	it has an associated insn.
8314
83152018-04-04  Michael Matz  <matz@suse.de>
8316
8317	* builtins.c (compute_objsize): Pass correct operand
8318	to array_at_struct_end_p.
8319
83202018-04-04  Richard Biener  <rguenther@suse.de>
8321
8322	PR lto/85176
8323	* dwarf2out.c (dwarf2out_register_external_die): Peel namespaces
8324	from contexts for DINFO_LEVEL_TERSE and below.
8325
83262018-04-04  Kito Cheng  <kito.cheng@gmail.com>
8327
8328	* config/nds32/nds32-doubleword.md (move_<mode>): Require
8329	resiter_operand condition.
8330	* config/nds32/nds32.md (*move<mode>): Ditto.
8331
83322018-04-04  Kito Cheng  <kito.cheng@gmail.com>
8333	    Monk Chiang  <sh.chiang04@gmail.com>
8334
8335	* config/nds32/nds32.md (movmisalign<mode>): New pattern.
8336
83372018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
8338
8339	* config/nds32/nds32.md (movqi, movhi): Merge into mov<mode>.
8340
83412018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
8342	    Kito Cheng  <kito.cheng@gmail.com>
8343
8344	* config/nds32/nds32-md-auxiliary.c (nds32_inverse_cond_code,
8345	nds32_cond_code_str, output_cond_branch,
8346	output_cond_branch_compare_zero, nds32_expand_cbranch,
8347	nds32_expand_cstore, nds32_expand_movcc,
8348	nds32_output_cbranchsi4_equality_zero,
8349	nds32_output_cbranchsi4_equality_reg,
8350	nds32_output_cbranchsi4_equality_reg_or_const_int,
8351	nds32_output_cbranchsi4_greater_less_zero: New functions.
8352	* config/nds32/nds32-protos.h (nds32_expand_cbranch,
8353	nds32_expand_cstore, nds32_expand_movcc,
8354	nds32_output_cbranchsi4_equality_zero,
8355	nds32_output_cbranchsi4_equality_reg,
8356	nds32_output_cbranchsi4_equality_reg_or_const_int,
8357	nds32_output_cbranchsi4_greater_less_zero): Declare.
8358	* config/nds32/predicates.md (nds32_movecc_comparison_operator,
8359	nds32_rimm11s_operand): New predicates.
8360	* config/nds32/nds32.h (nds32_expand_result_type): New enum type.
8361	* config/nds32/nds32.md: Rewrite all the branch and conditional move
8362	patterns.
8363
83642018-04-04  Kito Cheng  <kito.cheng@gmail.com>
8365
8366	* config/nds32/nds32-doubleword.md: Refine all the instruction type.
8367	* config/nds32/nds32.md: Ditto.
8368	* config/nds32/pipelines.md: Ditto.
8369
83702018-04-04  Richard Biener  <rguenther@suse.de>
8371
8372	PR tree-optimization/85168
8373	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid
8374	propagating abnormals.
8375
83762018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
8377
8378	* config/nds32/nds32.md (enabled): Use yes/no for this attribute.
8379
83802018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
8381	    Kito Cheng  <kito.cheng@gmail.com>
8382
8383	* config/nds32/nds32-md-auxiliary.c (nds32_long_call_p): New function.
8384	* config/nds32/nds32-protos.h (nds32_long_call_p): Declare.
8385	* config/nds32/nds32.c (nds32_function_ok_for_sibcall): New function.
8386	(TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
8387	* config/nds32/nds32.md (sibcall_internal): New.
8388	(sibcall_register): Remove.
8389	(sibcall_immediate): Remove.
8390	(sibcall_value_internal): New.
8391	(sibcall_value_register): Remove.
8392	(sibcall_value_immediate): Remove.
8393	* config/nds32/predicates.md (nds32_general_register_operand): New.
8394	(nds32_call_address_operand): New.
8395
83962018-04-03  Jakub Jelinek  <jakub@redhat.com>
8397
8398	PR rtl-optimization/85167
8399	* shrink-wrap.c (move_insn_for_shrink_wrap): Don't set bb_uses and
8400	bb_defs if *split_p, instead preinitialize it to NULL.
8401
8402	PR tree-optimization/85156
8403	* builtins.c (fold_builtin_expect): Use save_expr on arg1 to avoid
8404	evaluating the argument multiple times.
8405
84062018-04-03  Bill Schmidt  <wschmidt@linux.ibm.com>
8407
8408	* config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Use __vector rather
8409	than vector.
8410	(_mm_cvtpd_ps): Likewise.
8411	(_mm_cvttpd_epi32): Likewise.
8412	* config/rs6000/mmintrin.h (_mm_unpacklo_pi8): Likewise.
8413	* config/rs6000/xmmintrin.h: For strict-ANSI C++ or C11, undefine
8414	vector, pixel, and bool following altivec.h include.
8415
84162018-04-03  Martin Sebor  <msebor@redhat.com>
8417
8418	* doc/extend.texi (Common Function Attributes): Clarify.
8419	(const attribute): Likewise.
8420	(pure attribute): Likewise.
8421
84222018-04-03  Jakub Jelinek  <jakub@redhat.com>
8423
8424	PR target/85169
8425	* config/i386/i386.c (ix86_expand_vector_set): Use
8426	HOST_WIDE_INT_1U << elt instead of 1 << elt.  Formatting fix.
8427
84282018-04-03  Uros Bizjak  <ubizjak@gmail.com>
8429
8430	* config/i386/i386.c (emit_i387_cw_initialization): Always use logic
8431	instructions when changing rounding bits to preserve precision bits
8432	in the x87 control word.
8433
84342018-04-03  Martin Liska  <mliska@suse.cz>
8435
8436	PR tree-optimization/82491
8437	* rtl.h (strip_offset_and_add): Replace += suboffset with
8438	poly_uint64 () + suboffset.
8439
84402018-03-29  Martin Liska  <mliska@suse.cz>
8441	    Martin Jambor  <mjambor@suse.cz>
8442
8443	PR ipa/84947
8444	* ipa-cp.c (propagate_bits_across_jump_function): Bail out if
8445	param_type is not an integral or pointer type.
8446
84472018-04-03  Richard Biener  <rguenther@suse.de>
8448
8449	* sese.h (recompute_all_dominators): Remove.
8450
84512018-04-02  Martin Sebor  <msebor@redhat.com>
8452
8453	* doc/invoke.texi (-Wrestrict): Fix typos.
8454
84552018-04-02  Jim Wilson  <jimw@sifive.com>
8456
8457	* config/riscv/riscv.h (SHIFT_COUNT_TRUNCATED): Set to zero.
8458	* config/riscv/riscv.md (<optab>si3): Use QImode shift count.
8459	(<optab>di3, <optab>si3_extend): Likewise.
8460	(<optab>si3_mask, <optab>si3_mask_1): New.
8461	(<optab>di3_mask, <optab>di3_mask_1): New.
8462	(<optab>si3_extend_mask, <optab>si3_extend_mask_1): New.
8463	(lshrsi3_zero_extend_1): Use VOIDmode shift count.
8464	* config/riscv/sync.md (atomic_test_and_set): Emit QImode shift count.
8465
84662018-04-02  Gerald Pfeifer  <gerald@pfeifer.com>
8467
8468	* doc/cpp.texi (Variadic Macros): Fix line continuation in an
8469	example.
8470
84712018-04-02  Chung-Ju Wu  <jasonwucj@gmail.com>
8472
8473	* config/nds32/nds32.c (TARGET_CANONICALIZE_COMPARISON): Define.
8474	(nds32_canonicalize_comparison): New function.
8475
84762018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
8477	    Kito Cheng  <kito.cheng@gmail.com>
8478	    Kuan-Lin Chen  <kuanlinchentw@gmail.com>
8479
8480	* config.gcc (nds32): Add nds32-relax-opt.o into extra_objs.
8481	* config/nds32/constants.md (unspec_volatile_element): Add
8482	UNSPEC_VOLATILE_RELAX_GROUP.
8483	* config/nds32/nds32-relax-opt.c: New file.
8484	* config/nds32/nds32-predicates.c
8485	(nds32_symbol_load_store_p): New function.
8486	* config/nds32/nds32-protos.h
8487	(nds32_symbol_load_store_p): Declare function.
8488	(make_pass_nds32_relax_opt): Declare new rtl pass function.
8489	* config/nds32/nds32.c
8490	(nds32_register_pass): New function to register pass.
8491	(nds32_register_passes): New function to register passes.
8492	* config/nds32/nds32.md (relax_group): New pattern.
8493	* config/nds32/nds32.opt (mrelax-hint): New option.
8494	* config/nds32/t-nds32 (nds32-relax-opt.o): New dependency.
8495
84962018-04-01  Kito Cheng  <kito.cheng@gmail.com>
8497
8498	* config/nds32/t-nds32: Modify files dependency.
8499
85002018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
8501
8502	* config/nds32/nds32.h (FUNCTION_PROFILER): Output newline character.
8503	(PROFILE_HOOK): Define its implementation.
8504
85052018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
8506
8507	* config/nds32/nds32.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int
8508	type and 32-bit size.
8509
85102018-04-01  Jakub Jelinek  <jakub@redhat.com>
8511
8512	PR middle-end/85090
8513	* config/i386/sse.md (V): Add V64QI and V32HI for TARGET_AVX512F.
8514	(V_128_256): New mode iterator.
8515	(*avx512dq_vextract<shuffletype>64x2_1 splitter): New define_split.
8516	(*avx512f_vextract<shuffletype>32x4_1 splitter): Likewise.
8517	(xop_pcmov_<mode><avxsizesuffix>): Use V_128_256 mode iterator instead
8518	of V.
8519	* config/i386/i386.c (ix86_expand_vector_set): Improve V32HImode and
8520	V64QImode expansion for !TARGET_AVX512BW && TARGET_AVX512F.
8521
85222018-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
8523
8524	PR target/83315
8525	* config/rs6000/xmmintrin.h (_mm_set_ps, _mm_max_ps): Handle (quiet)
8526	NaN inputs correctly.
8527
85282018-03-30  Peter Bergner  <bergner@vnet.ibm.com>
8529
8530	PR target/80546
8531	* config/rs6000/vsx.md (??r): New mode attribute.
8532	(*vsx_mov<mode>_64bit): Use it.
8533	(*vsx_mov<mode>_32bit): Likewise.
8534
85352018-03-30  Martin Sebor  <msebor@redhat.com>
8536
8537	PR tree-optimization/84818
8538	* builtins.c (check_access): Use warning_n.
8539
85402018-03-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
8541
8542	PR target/83822
8543	* config/rs6000/rs6000-string.c (expand_compare_loop): Fix redundant
8544	condition.
8545	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Fix redundant
8546	condition.
8547
85482018-03-30  Julia Koval  <julia.koval@intel.com>
8549
8550	PR target/84413
8551	* x86-tune.def (movx, partial_reg_dependency): Enable for
8552	m_SKYLAKE_AVX512.
8553
85542018-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8555
8556	PR inline-asm/84985
8557	* lra-constraints.c (process_alt_operands): Move setting
8558	this_alternative_matches below.
8559
85602018-03-29  Martin Liska  <mliska@suse.cz>
8561
8562	PR lto/84995.
8563	* doc/invoke.texi: Document how LTO works with debug info.
8564	Describe auto-load support of binutils.  Mention 'x86-64'
8565	as valid option value of -march option.
8566
85672018-03-29  Jakub Jelinek  <jakub@redhat.com>
8568
8569	* config/i386/sse.md (<avx512>_blendm<mode>): Use <sseintprefix>.
8570
8571	PR c/85094
8572	* fold-const.c (operand_equal_p): Handle DEBUG_BEGIN_STMT.
8573	For STATEMENT_LIST, pass down OEP_LEXICOGRAPHIC and maybe
8574	OEP_NO_HASH_CHECK for recursive call, to avoid exponential
8575	checking.
8576
85772018-03-28  Peter Bergner  <bergner@vnet.ibm.com>
8578
8579	PR target/84912
8580	* config/rs6000/rs6000.h (RS6000_BTM_POWERPC64): New define.
8581	(RS6000_BTM_COMMON): Add RS6000_BTM_POWERPC64.
8582	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add support
8583	for RS6000_BTM_POWERPC64.
8584	(rs6000_invalid_builtin): Add handling for RS6000_BTM_POWERPC64
8585	(rs6000_builtin_mask_names): Add RS6000_BTM_POWERPC64.
8586	* config/rs6000/rs6000-builtin.def (BU_P7_POWERPC64_MISC_2): New macro
8587	definition.
8588	(DIVDE): Use it.
8589	(DIVDEU): Likewise.
8590
85912018-03-28 Carl Love  <cel@us.ibm.com>
8592
8593	Revert
8594	2017-09-27  Carl Love  <cel@us.ibm.com>
8595
8596	* config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
8597	(FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
8598	* config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
8599	fctiw instruction.
8600
86012018-03-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8602
8603	* config/rs6000/xmmintrin.h (_mm_max_pi16): Use __vector __bool
8604	instead of __vector bool.
8605	(_mm_max_pu8): Likewise.
8606	(_mm_min_pi16): Likewise.
8607
86082018-03-28  Peter Bergner  <bergner@vnet.ibm.com>
8609
8610	PR target/84912
8611	* config/rs6000/rs6000-builtin.def (DIVWEO): Delete macro expansion.
8612	(DIVWEUO): Likewise.
8613	(DIVDEO): Likewise.
8614	(DIVDEUO): Likewise.
8615	* config/rs6000/rs6000.c (builtin_function_type): Remove support for
8616	DIVWEUO and DIVDEUO.
8617	* config/rs6000/rs6000.md (UNSPEC_DIVEO, UNSPEC_DIVEUO): Delete unspecs.
8618	(UNSPEC_DIV_EXTEND): Remove deleted unspecs.
8619	(div_extend): Likewise.
8620	* doc/extend.texi (__builtin_divweo): Remove documentation for deleted
8621	builtin function.
8622	(__builtin_divweuo): Likewise.
8623	(__builtin_divdeo): Likewise.
8624	(__builtin_divdeuo): Likewise.
8625
86262018-03-28  Jakub Jelinek  <jakub@redhat.com>
8627
8628	PR target/85095
8629	* config/i386/i386.md (*add<mode>3_carry_0, *addsi3_carry_zext_0,
8630	*sub<mode>3_carry_0, *subsi3_carry_zext_0): New patterns.
8631
8632	PR tree-optimization/82004
8633	* gimple-match-head.c (optimize_pow_to_exp): New function.
8634	* match.pd (pow(C,x) -> exp(log(C)*x)): Wrap with #if GIMPLE.
8635	Don't fold to exp if optimize_pow_to_exp is false.
8636
86372018-03-28  Martin Liska  <mliska@suse.cz>
8638
8639	PR other/84819
8640	* calls.c (initialize_argument_information): Fix trailing space.
8641	* common.opt: Fix typo and provide better explanation for
8642	-fsanitize-coverage option.
8643	* config/i386/i386.opt: Fix typo.
8644
86452018-03-28  Jakub Jelinek  <jakub@redhat.com>
8646	    Martin Liska  <mliska@suse.cz>
8647
8648	PR sanitizer/85081
8649	* gimplify.c (asan_poison_variable): Don't do the check for
8650	gimplify_omp_ctxp here.
8651	(gimplify_decl_expr): Do it here.
8652	(gimplify_target_expr): Likewise.
8653
86542018-03-28  Martin Liska  <mliska@suse.cz>
8655
8656	PR target/84988
8657	* config/i386/i386.c (ix86_function_arg_advance): Do not call
8658	chkp_type_bounds_count if MPX is not enabled.
8659
86602018-03-27  Chung-Ju Wu  <jasonwucj@gmail.com>
8661
8662	* config/nds32/nds32.h (BRANCH_COST): Adjust cost.
8663
86642018-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
8665
8666	PR target/84914
8667	* config/rs6000/rs6000.c (create_complex_muldiv): New helper
8668	function to create the function decl for complex long double
8669	multiply and divide for -mabi=ieeelongdouble.
8670	(init_float128_ieee): Call it.
8671
86722018-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8673
8674	PR target/85044
8675	* config/i386/i386.c (ix86_trampoline_init): Insert ENDBR for
8676	-fcf-protection=branch -mibt.
8677	* config/i386/i386.h (TRAMPOLINE_SIZE): Increased by 4 bytes.
8678
86792018-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8680
8681	PR target/81863
8682	* config/arm/arm.c (arm_valid_symbolic_address): Handle arm_word_relocations
8683
86842018-03-27  Cesar Philippidis  <cesar@codesourcery.com>
8685
8686	PR target/85056
8687	* config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to
8688	extern array declarations.
8689
86902018-03-27  Richard Biener  <rguenther@suse.de>
8691
8692	PR middle-end/84067
8693	* match.pd ((A * C) +- (B * C) -> (A+-B) * C): Guard with
8694	explicit single_use checks.
8695
86962018-03-27  Richard Biener  <rguenther@suse.de>
8697
8698	PR tree-optimization/85082
8699	* tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces):
8700	Valueize the VUSE.
8701
87022018-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8703
8704	* config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES
8705	* common/config/aarch64/aarch64-common.c (aarch64_optimization_table[]):
8706	Turn on fasynchronous-unwind-tables and funwind-tables.
8707
87082018-03-26  Uros Bizjak  <ubizjak@gmail.com>
8709
8710	PR target/85073
8711	* config/i386/i386.md (*bmi_blsr_<mode>_cmp): New insn pattern.
8712	(*bmi_blsr_<mode>_ccz): Ditto.
8713
87142018-03-26  Tom de Vries  <tom@codesourcery.com>
8715
8716	PR tree-optimization/85063
8717	* omp-general.c (offloading_function_p): New function.  Factor out
8718	of ...
8719	* omp-offload.c (pass_omp_target_link::gate): ... here.
8720	* omp-general.h (offloading_function_p): Declare.
8721	* tree-switch-conversion.c (build_one_array): Mark CSWTCH.x variable
8722	with attribute omp declare target for offloading functions.
8723
87242018-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8725
8726	PR tree-optimization/84005
8727	* tree-data-ref.h (get_base_for_alignment): Declare.
8728	* tree-data-ref.c (get_base_for_alignment_1): New function.
8729	(get_base_for_alignment): Likewise.
8730	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
8731	get_base_for_alignment to find a suitable base object, instead
8732	of always using drb->base_address.
8733
87342018-03-23  Jakub Jelinek  <jakub@redhat.com>
8735
8736	PR inline-asm/85022
8737	* emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have
8738	known size by default.
8739
87402018-03-23  Vladimir Makarov  <vmakarov@redhat.com>
8741
8742	PR inline-asm/85030
8743	* lra-constraints.c (process_alt_operands): Don't match BLKmode
8744	and non BLKmode operands.
8745
87462018-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8747
8748	PR target/85026
8749	* config/arm/arm.md (unaligned_loadhis): Remove first alternative.
8750	Clean up attributes.
8751
87522018-03-23  Richard Biener  <rguenther@suse.de>
8753
8754	PR debug/85020
8755	* dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when
8756	we are going to emit early debug for LTO.
8757
87582018-03-23  Jakub Jelinek  <jakub@redhat.com>
8759
8760	PR inline-asm/85034
8761	* function.c (match_asm_constraints_1): Don't optimize if input
8762	doesn't satisfy general_operand predicate for output's mode.
8763
8764	PR inline-asm/85022
8765	* alias.c (write_dependence_p): Don't require for x_canonicalized
8766	non-VOIDmode if x has VOIDmode.
8767
8768	PR sanitizer/85029
8769	* sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base),
8770	just don't try to optimize it rather than assert it never happens.
8771
87722018-03-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8773
8774	* config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X
8775	macro expansions for definition of ST_INTERNAL_<mode> and
8776	LD_INTERNAL_<mode> builtins.
8777	* config/rs6000/rs6000-protos.h (rs6000_address_for_altivec):
8778	Remove prototype.
8779	* config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this
8780	function.
8781	(altivec_expand_st_builtin): Likewise.
8782	(altivec_expand_builtin): Remove calls to deleted functions.
8783	(rs6000_address_for_altivec): Delete this function.
8784	* config/rs6000/vector.md: Remove expands for
8785	vector_altivec_load_<mode> and vector_altivec_store_<mode>.
8786
87872018-03-22  Sudakshina Das  <sudi.das@arm.com>
8788
8789	PR target/84826
8790	* config/arm/arm.h (machine_function): Add static_chain_stack_bytes.
8791	* config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid
8792	re-computing once computed.
8793	(arm_expand_prologue): Compute machine->static_chain_stack_bytes.
8794	(arm_init_machine_status): Initialize
8795	machine->static_chain_stack_bytes.
8796
87972018-03-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8798
8799	PR target/84760
8800	* doc/extend.texi: Add four new prototypes for vec_ld.
8801	* config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol
8802	definitions for more logical presentation.
8803	* config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add
8804	entries for V1TI variants of __builtin_altivec_ld builtin.
8805	* config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and
8806	handling of V1TI variant of LVX icode pattern.
8807	(altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI.
8808	(rs6000_gimple_fold_builtin): Likewise.
8809	(altivec_init_builtins): Add code to define
8810	__builtin_altivec_lvx_v1ti function.
8811
88122018-03-22  Jakub Jelinek  <jakub@redhat.com>
8813
8814	PR inline-asm/84941
8815	* function.c (match_asm_constraints_1): Don't do the optimization
8816	if input isn't a REG, SUBREG, MEM or constant.
8817
88182018-03-22  Tom de Vries  <tom@codesourcery.com>
8819
8820	PR tree-optimization/84956
8821	* tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with
8822	bb_has_abnormal_pred.
8823
88242018-03-22  Jakub Jelinek  <jakub@redhat.com>
8825
8826	PR sanitizer/85018
8827	* dwarf2asm.c (dw2_output_indirect_constant_1): Set
8828	DECL_INITIAL (decl) to decl at the end.
8829	* varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change,
8830	adjust the comment.
8831
88322018-03-21  Joseph Myers  <joseph@codesourcery.com>
8833
8834	* doc/extend.texi (__builtin_tgmath): Document when complex
8835	integer types are treated as _Complex _Float64.
8836
88372018-03-21  Tom de Vries  <tom@codesourcery.com>
8838
8839	* doc/extend.texi (__builtin_extend_pointer): Remove pasto.
8840
88412018-03-21  Jakub Jelinek  <jakub@redhat.com>
8842
8843	PR tree-optimization/84960
8844	* tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb
8845	if it is ENTRY block, move them into single succ of ENTRY in that case.
8846
88472018-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
8848
8849	PR tree-optimization/84811
8850	* poly-int.h (poly_span_traits): Remove the T3 parameter and
8851	promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT.
8852	(maybe_in_range_p, known_in_range_p, ranges_known_overlap_p):
8853	(known_subrange_p): Update accordingly.  Cast each value involved
8854	in the size comparison, rather than casting the result of the
8855	subtraction.
8856
88572018-03-21  Jakub Jelinek  <jakub@redhat.com>
8858
8859	PR tree-optimization/84982
8860	* gimple-ssa-store-merging.c (invert_op): Handle boolean inversion
8861	by flipping the least significant bit rather than all bits from
8862	bitpos to bitpos + bitsize - 1.
8863
88642018-03-21  Nathan Sidwell  <nathan@acm.org>
8865
8866	* doc/extend.texi (Deprecated Features): Remove mention of
8867	long-deleted deprecations.
8868
88692018-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8870
8871	PR jit/84288
8872	* configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set.
8873	* configure: Regenerate.
8874
88752018-03-21  Tom de Vries  <tom@codesourcery.com>
8876
8877	PR tree-optimization/83126
8878	* tree-parloops.c (num_phis): New function.
8879	(gen_parallel_loop): Detect and handle canonicalize_loop_ivs failure.
8880
88812018-03-21  Nathan Sidwell  <nathan@acm.org>
8882
8883	* doc/extend.texi (Deprecated Features): Update deprecated flags,
8884	mention anon-struct/union members and trailing attributes.
8885
88862018-03-21  Bin Cheng  <bin.cheng@arm.com>
8887
8888	PR tree-optimization/84969
8889	* tree-loop-distribution.c (fuse_memset_builtins): Don't reorder
8890	builtin memset partitions if they set different rhs values.
8891
88922018-03-21  Jakub Jelinek  <jakub@redhat.com>
8893
8894	PR rtl-optimization/84989
8895	* simplify-rtx.c (simplify_unary_operation_1): Don't try to simplify
8896	VEC_DUPLICATE with scalar result mode.
8897
88982018-03-21  Martin Liska  <mliska@suse.cz>
8899
8900	PR ipa/84963
8901	* ipa-icf.c (sem_item_optimizer::fixup_points_to_sets): Remove
8902	not intended return statement.
8903
89042018-03-21  Martin Liska  <mliska@suse.cz>
8905
8906	PR target/84988
8907	* tree-chkp.c (CHKP_ARRAY_MAX_CHECK_STEPS): Define a new macro.
8908	(chkp_find_bound_slots_1): Limit number of iterations.
8909
89102018-03-20  David H. Gutteridge  <dhgutteridge@sympatico.ca>
8911
8912	PR target/84838
8913	* Minor grammar fixes for x86 options.
8914
89152018-03-20  Jakub Jelinek  <jakub@redhat.com>
8916
8917	PR debug/84875
8918	* dce.c (delete_unmarked_insns): Don't remove frame related noop moves
8919	holding REG_CFA_RESTORE notes, instead turn them into a USE.
8920
89212018-03-20  Peter Bergner  <bergner@vnet.ibm.com>
8922
8923	PR target/83789
8924	* config/rs6000/altivec.md (altivec_lvx_<mode>_2op): Delete define_insn.
8925	(altivec_lvx_<mode>_1op): Likewise.
8926	(altivec_stvx_<mode>_2op): Likewise.
8927	(altivec_stvx_<mode>_1op): Likewise.
8928	(altivec_lvx_<VM2:mode>): New define_expand.
8929	(altivec_stvx_<VM2:mode>): Likewise.
8930	(altivec_lvx_<VM2:mode>_2op_<P:mptrsize>): New define_insn.
8931	(altivec_lvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
8932	(altivec_stvx_<VM2:mode>_2op_<P:mptrsize>): Likewise.
8933	(altivec_stvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
8934	* config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Use new expanders.
8935	(rs6000_gen_lvx): Likewise.
8936	* config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise.
8937	(altivec_expand_stv_builtin): Likewise.
8938	(altivec_expand_builtin): Likewise.
8939	* config/rs6000/vector.md: Likewise.
8940
89412018-03-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8942
8943	PR target/82518
8944	* config/arm/arm.c (arm_array_mode_supported_p): Return false for
8945	BYTES_BIG_ENDIAN.
8946
89472018-03-20  Richard Biener  <rguenther@suse.de>
8948
8949	PR target/84986
8950	* config/i386/i386.c (ix86_add_stmt_cost): Only cost
8951	sign-conversions as zero, fall back to standard scalar_stmt
8952	cost for the rest.
8953
89542018-03-20  Martin Liska  <mliska@suse.cz>
8955
8956	PR ipa/84825
8957	* predict.c (rebuild_frequencies): Handle case when we have
8958	PROFILE_ABSENT, but flag_guess_branch_prob is false.
8959
89602018-03-20  Jakub Jelinek  <jakub@redhat.com>
8961
8962	PR target/84990
8963	* dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off
8964	flag_section_anchors.
8965	* varasm.c (use_blocks_for_decl_p): Remove hack for
8966	dw2_force_const_mem.
8967
8968	PR target/84845
8969	* config/aarch64/aarch64.md (*aarch64_reg_<mode>3_neg_mask2): Rename
8970	to ...
8971	(*aarch64_<optab>_reg_<mode>3_neg_mask2): ... this.  If pseudos can't
8972	be created, use lowpart_subreg of operands[0] rather than operands[0]
8973	itself.
8974	(*aarch64_reg_<mode>3_minus_mask): Rename to ...
8975	(*aarch64_ashl_reg_<mode>3_minus_mask): ... this.
8976	(*aarch64_<optab>_reg_di3_mask2): Use const_int_operand predicate
8977	and n constraint instead of aarch64_shift_imm_di and Usd.
8978	(*aarch64_reg_<optab>_minus<mode>3): Rename to ...
8979	(*aarch64_<optab>_reg_minus<mode>3): ... this.
8980
89812018-03-20  Sudakshina Das  <sudi.das@arm.com>
8982
8983	PR target/82989
8984	* config/arm/neon.md (ashldi3_neon): Update ?s for constraints
8985	to favor GPR over NEON registers.
8986	(<shift>di3_neon): Likewise.
8987
89882018-03-20  Tom de Vries  <tom@codesourcery.com>
8989
8990	PR target/84952
8991	* config/nvptx/nvptx.c (nvptx_single): Don't neuter bar.sync.
8992	(nvptx_process_pars): Emit bar.sync asap and alap.
8993
89942018-03-20  Tom de Vries  <tom@codesourcery.com>
8995
8996	PR target/84954
8997	* config/nvptx/nvptx.c (prevent_branch_around_nothing): Also update
8998	seen_label if seen_label is already set.
8999
90002018-03-20  Jakub Jelinek  <jakub@redhat.com>
9001
9002	PR target/84945
9003	* config/i386/i386.c (fold_builtin_cpu): For features above 31
9004	use __cpu_features2 variable instead of __cpu_model.__cpu_features[0].
9005	Use 1U instead of 1.  Formatting fixes.
9006
9007	PR c/84953
9008	* builtins.c (fold_builtin_strpbrk): For strpbrk(x, "") use type
9009	instead of TREE_TYPE (s1) for the return value.
9010
90112018-03-19  Jakub Jelinek  <jakub@redhat.com>
9012
9013	PR tree-optimization/84946
9014	* gimple-ssa-store-merging.c (mem_valid_for_store_merging): Compute
9015	bitsize + bitsize in poly_uint64 rather than poly_int64.
9016
9017	PR sanitizer/78651
9018	* dwarf2asm.c: Include fold-const.c.
9019	(dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR
9020	of decl rather than decl itself.
9021
9022	PR rtl-optimization/84643
9023	* memmodel.h (enum memmodel): Add MEMMODEL_MAX enumerator.
9024
90252018-03-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
9026
9027	PR sanitizer/78651
9028	* dwarf2asm.c (dw2_output_indirect_constant_1): Disable ASan before
9029	calling assemble_variable.
9030
90312018-03-19  Sudakshina Das  <sudi.das@arm.com>
9032
9033	PR target/81647
9034	* config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Modify
9035	instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED.
9036
90372018-03-19  Jim Wilson  <jimw@sifive.com>
9038
9039	PR bootstrap/84856
9040	* config/riscv/riscv.c (riscv_function_arg_boundary): Use
9041	PREFERRED_STACK_BOUNDARY instead of STACK_BOUNDARY.
9042	(riscv_first_stack_step): Likewise.
9043	(riscv_option_override): Use STACK_BOUNDARY instead of
9044	MIN_STACK_BOUNDARY.
9045	* config/riscv/riscv.h (STACK_BOUNDARY): Renamed from
9046	MIN_STACK_BOUNDARY.
9047	(BIGGEST_ALIGNMENT): Set to 128.
9048	(PREFERRED_STACK_BOUNDARY): Renamed from STACK_BOUNDARY.
9049	(RISCV_STACK_ALIGN): Use PREFERRED_STACK_BOUNDARY instead of
9050	STACK_BOUNDARY.
9051
90522018-03-19  Richard Biener  <rguenther@suse.de>
9053
9054	PR tree-optimization/84933
9055	* tree-vrp.c (set_and_canonicalize_value_range): Treat out-of-bound
9056	values as -INF/INF when canonicalizing an ANTI_RANGE to a RANGE.
9057
90582018-03-19  Richard Biener  <rguenther@suse.de>
9059
9060	PR tree-optimization/84859
9061	* tree-ssa-phiopt.c (single_trailing_store_in_bb): New function.
9062	(cond_if_else_store_replacement): Perform sinking operation on
9063	single-store BBs regardless of MAX_STORES_TO_SINK setting.
9064	Generalize what a BB with a single eligible store is.
9065
90662018-03-19  Richard Biener  <rguenther@suse.de>
9067
9068	PR tree-optimization/84929
9069	* tree-data-ref.c (analyze_siv_subscript_cst_affine): Guard
9070	chrec_is_positive against non-chrec arg.
9071
90722018-03-19  Tamar Christina  <tamar.christina@arm.com>
9073
9074	PR target/84711
9075	* config/arm/arm.c (arm_can_change_mode_class): revert r258554.
9076
90772018-03-18  Martin Liska  <mliska@suse.cz>
9078
9079	PR rtl-optimization/84635
9080	* regrename.c (build_def_use): Use matches_mode only when
9081	matches >= 0.
9082
90832018-03-18  Richard Sandiford  <richard.sandiford@linaro.org>
9084
9085	PR tree-optimization/84913
9086	* tree-vect-loop.c (vectorizable_reduction): Don't try to
9087	vectorize chains of COND_EXPRs.
9088
90892018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
9090
9091	* config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value.
9092
90932018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
9094
9095	* config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
9096
90972018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
9098
9099	* config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
9100
91012018-03-17  Chung-Ju Wu  <jasonwucj@gmail.com>
9102	    Kito Cheng  <kito.cheng@gmail.com>
9103
9104	* config/nds32/nds32-protos.h (nds32_adjust_reg_alloc_order): Declare.
9105	* config/nds32/nds32.c (nds32_reg_alloc_order_for_speed): New array.
9106	(nds32_adjust_reg_alloc_order): New function.
9107	* config/nds32/nds32.h (ADJUST_REG_ALLOC_ORDER): Define.
9108
91092018-03-17  Kito Cheng  <kito.cheng@gmail.com>
9110
9111	* config/nds32/nds32.c (nds32_asm_output_mi_thunk,
9112	nds32_print_operand, nds32_print_operand_address): Use
9113	HOST_WIDE_INT_PRINT_DEC instead.
9114
91152018-03-17  Chung-Ju Wu  <jasonwucj@gmail.com>
9116
9117	* config/nds32/nds32.c (nds32_register_priority): Modify cost.
9118
91192018-03-17  Jakub Jelinek  <jakub@redhat.com>
9120
9121	PR target/84902
9122	* config/i386/i386.c (initial_ix86_tune_features,
9123	initial_ix86_arch_features): Use unsigned HOST_WIDE_INT rather than
9124	unsigned long long.
9125	(set_ix86_tune_features): Change ix86_tune_mask from unsigned int
9126	to unsigned HOST_WIDE_INT, initialize to HOST_WIDE_INT_1U << ix86_tune
9127	rather than 1u << ix86_tune.  Formatting fix.
9128	(ix86_option_override_internal): Change ix86_arch_mask from
9129	unsigned int to unsigned HOST_WIDE_INT, initialize to
9130	HOST_WIDE_INT_1U << ix86_arch rather than 1u << ix86_arch.
9131	(ix86_function_specific_restore): Likewise.
9132
91332018-03-16  Jakub Jelinek  <jakub@redhat.com>
9134
9135	PR target/84899
9136	* postreload.c (reload_combine_recognize_pattern): Perform
9137	INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and
9138	truncate_int_for_mode the result for the destination's mode.
9139
9140	PR c/84909
9141	* hsa-gen.c (mem_type_for_type): Fix comment typo.
9142	* tree-vect-loop-manip.c (vect_create_cond_for_niters_checks):
9143	Likewise.
9144	* gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
9145	Likewise.
9146
91472018-03-16  Vladimir Makarov  <vmakarov@redhat.com>
9148
9149	PR target/84876
9150	* lra-assigns.c (lra_split_hard_reg_for): Don't use
9151	regno_allocno_class_array and sorted_pseudos.
9152	* lra-constraints.c (spill_hard_reg_in_range): Ignore hard regs in
9153	insns where regno is used.
9154
91552018-03-16  Martin Liska  <mliska@suse.cz>
9156
9157	PR ipa/84833
9158	* multiple_target.c (create_dispatcher_calls): Redirect
9159	reference in the symbol table.
9160
91612018-03-16  Martin Liska  <mliska@suse.cz>
9162
9163	PR ipa/84722
9164	* multiple_target.c (create_dispatcher_calls): Redirect also
9165	an alias.
9166
91672018-03-16  Jakub Jelinek  <jakub@redhat.com>
9168
9169	PR c++/79937
9170	PR c++/82410
9171	* tree.h (TARGET_EXPR_NO_ELIDE): Define.
9172	* gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with
9173	TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR.
9174
91752018-03-16  Julia Koval  <julia.koval@intel.com>
9176
9177	* doc/invoke.texi (Skylake Server): Add CLWB.
9178	Cannonlake): Remove CLWB.
9179
91802018-03-16  Jakub Jelinek  <jakub@redhat.com>
9181
9182	PR tree-optimization/84841
9183	* tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from
9184	1 << 3.
9185	(FLOAT_ONE_CONST_TYPE): Define.
9186	(constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0.
9187	(sort_by_operand_rank): Put entries with higher constant_type last
9188	rather than first to match comments.
9189
91902018-03-15  Sandra Loosemore  <sandra@codesourcery.com>
9191
9192	* config/nios2/nios2.md (movsi_internal): Fix thinko in
9193	split predicate.
9194
91952018-03-15  Jakub Jelinek  <jakub@redhat.com>
9196
9197	PR c++/79085
9198	* calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment
9199	check and use address of target always.
9200
92012018-03-15  H.J. Lu  <hongjiu.lu@intel.com>
9202
9203	PR target/84574
9204	* config/i386/i386.c (indirect_thunk_needed): Update comments.
9205	(indirect_thunk_bnd_needed): Likewise.
9206	(indirect_thunks_used): Likewise.
9207	(indirect_thunks_bnd_used): Likewise.
9208	(indirect_return_needed): New.
9209	(indirect_return_bnd_needed): Likewise.
9210	(output_indirect_thunk_function): Add a bool argument for
9211	function return.
9212	(output_indirect_thunk_function): Don't generate alias for
9213	function return thunk.
9214	(ix86_code_end): Call output_indirect_thunk_function to generate
9215	function return thunks.
9216	(ix86_output_function_return): Set indirect_return_bnd_needed
9217	and indirect_return_needed instead of indirect_thunk_bnd_needed
9218	and indirect_thunk_needed.
9219
92202018-03-15  Olga Makhotina  <olga.makhotina@intel.com>
9221
9222	* config/i386/sgxintrin.h (_enclv_u32): New intrinsic.
9223	(__enclv_bc, __enclv_cd, __enclv_generic): New definitions.
9224	(ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves.
9225
92262018-03-15  David Malcolm  <dmalcolm@redhat.com>
9227	    Paul Hua <paul.hua.gm@gmail.com>
9228
9229	PR c/84852
9230	* gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp.
9231
92322018-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
9233
9234	* config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the
9235	TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode
9236	resp. SFmode cases.
9237
92382018-03-15  Tamar Christina  <tamar.christina@arm.com>
9239
9240	PR target/84711
9241	* config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE
9242	instead of GET_MODE_SIZE when comparing Units.
9243
92442018-03-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
9245
9246	PR target/68256
9247	* varasm.c (hash_section): Return an unchangeble hash value
9248	* config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p):
9249	Return !aarch64_can_use_per_function_literal_pools_p ().
9250
92512018-03-15  Jakub Jelinek  <jakub@redhat.com>
9252
9253	PR target/84860
9254	* optabs.c (emit_conditional_move): Pass address of cmode's copy
9255	rather than address of cmode as last argument to prepare_cmp_insn.
9256
92572018-03-15  Julia Koval  <julia.koval@intel.com>
9258
9259	* config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ,
9260	F_AVX512VNNI, F_AVX512BITALG): New.
9261
92622018-03-14  John David Anglin  <danglin@gcc.gnu.org>
9263
9264	PR target/83451
9265	* config/pa/pa.c (pa_emit_move_sequence):  Always emit secondary reload
9266	insn for floating-point loads and stores.
9267
92682018-03-14  Carl Love  <cel@us.ibm.com>
9269
9270	* config/rs6000/rs6000-c.c: Add macro definitions for
9271	ALTIVEC_BUILTIN_VEC_PERMXOR.
9272	* config/rs6000/rs6000.h: Add #define for vec_permxor builtin.
9273	* config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR.
9274	* config/rs6000/altivec.md (altivec_vpermxor): New define expand.
9275	* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case
9276	UNSPEC_VPERMXOR.
9277	* config/doc/extend.texi: Add prototypes for vec_permxor.
9278
92792018-03-14  David Malcolm  <dmalcolm@redhat.com>
9280
9281	PR c/84852
9282	* diagnostic-show-locus.c (class layout_point): Convert m_line
9283	from int to linenum_type.
9284	(line_span::comparator): Use linenum "compare" function when
9285	comparing line numbers.
9286	(test_line_span): New function.
9287	(layout_range::contains_point): Convert param "row" from int to
9288	linenum_type.
9289	(layout_range::intersects_line_p): Likewise.
9290	(layout::will_show_line_p): Likewise.
9291	(layout::print_source_line): Likewise.
9292	(layout::should_print_annotation_line_p): Likewise.
9293	(layout::print_annotation_line): Likewise.
9294	(layout::print_leading_fixits): Likewise.
9295	(layout::annotation_line_showed_range_p): Likewise.
9296	(struct line_corrections): Likewise for field m_row.
9297	(line_corrections::line_corrections): Likewise for param "row".
9298	(layout::print_trailing_fixits): Likewise.
9299	(layout::get_state_at_point): Likewise.
9300	(layout::get_x_bound_for_row): Likewise.
9301	(layout::print_line): Likewise.
9302	(diagnostic_show_locus): Likewise for locals "last_line" and
9303	"row".
9304	(selftest::diagnostic_show_locus_c_tests): Call test_line_span.
9305	* input.c (selftest::test_linenum_comparisons): New function.
9306	(selftest::input_c_tests): Call it.
9307	* selftest.c (selftest::test_assertions): Test ASSERT_GT,
9308	ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT.
9309	* selftest.h (ASSERT_GT): New macro.
9310	(ASSERT_GT_AT): New macro.
9311	(ASSERT_LT): New macro.
9312	(ASSERT_LT_AT): New macro.
9313
93142018-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
9315
9316	PR rtl-optimization/84780
9317	* combine.c (distribute_links): Don't make a link based on pc_rtx.
9318
93192018-03-14  Martin Liska  <mliska@suse.cz>
9320
9321	* tree.c (record_node_allocation_statistics): Use
9322	get_stats_node_kind.
9323	(get_stats_node_kind): New function extracted from
9324	record_node_allocation_statistics.
9325	(free_node): Use get_stats_node_kind.
9326
93272018-03-14  Richard Biener  <rguenther@suse.de>
9328
9329	* tree-ssa-pre.c (compute_antic_aux): Remove code that asserts
9330	that the value-set of ANTIC_IN doesn't grow.
9331
9332	Revert
9333	* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
9334	member.
9335	(BB_VISITED_WITH_VISITED_SUCCS): New define.
9336	(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
9337
93382018-03-14  Julia Koval  <julia.koval@intel.com>
9339
9340	* config.gcc (icelake-client, icelake-server): New.
9341	(icelake): Remove.
9342	* config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit.
9343	(initial_ix86_arch_features): Ditto.
9344	(PTA_SKYLAKE): Add SGX.
9345	(PTA_ICELAKE): Remove.
9346	(PTA_ICELAKE_CLIENT): New.
9347	(PTA_ICELAKE_SERVER): New.
9348	(ix86_option_override_internal): Split up icelake on icelake client and
9349	icelake server.
9350	(get_builtin_code_for_version): Ditto.
9351	(fold_builtin_cpu): Ditto.
9352	* config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto.
9353	* config/i386/i386-c.c (ix86_target_macros_internal): Ditto
9354	* config/i386/i386.h (processor_type): Ditto.
9355	* doc/invoke.texi: Ditto.
9356
93572018-03-14  Jakub Jelinek  <jakub@redhat.com>
9358
9359	PR sanitizer/83392
9360	* sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also
9361	INTEGER_CST offset, add it together with bitpos / 8 and
9362	sign extend based on POINTER_SIZE.
9363
9364	PR target/84844
9365	Revert
9366	2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
9367
9368	PR target/78090
9369	* config/i386/constraints.md (Yc): New register constraint.
9370	* config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
9371	Use Yc constraint for alternative 2 of operand 0.  Remove
9372	preferred_for_speed attribute.
9373
93742018-03-14  Richard Biener  <rguenther@suse.de>
9375
9376	PR tree-optimization/84830
9377	* tree-ssa-pre.c (compute_antic_aux): Intersect the new ANTIC_IN
9378	with the old one to avoid oscillations.
9379
93802018-03-13  Vladimir Makarov  <vmakarov@redhat.com>
9381
9382	PR target/83712
9383	* lra-assigns.c (find_all_spills_for): Ignore uninteresting
9384	pseudos.
9385	(assign_by_spills): Return a flag of reload assignment failure.
9386	Do not process the reload assignment failures.  Do not spill other
9387	reload pseudos if they has the same reg class.  Update n if
9388	necessary.
9389	(lra_assign): Add a return arg.  Set up from the result of
9390	assign_by_spills call.
9391	(find_reload_regno_insns, lra_split_hard_reg_for): New functions.
9392	* lra-constraints.c (split_reg): Add a new arg.  Use it instead of
9393	usage_insns if it is not NULL.
9394	(spill_hard_reg_in_range): New function.
9395	(split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
9396	* lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
9397	function prototypes.
9398	(lra_assign): Change prototype.
9399	* lra.c (lra): Add code to deal with fails by splitting hard reg
9400	live ranges.
9401
94022018-03-01  Palmer Dabbelt  <palmer@sifive.com>
9403
9404	* config/riscv/riscv.opt (mrelax): New option.
9405	* config/riscv/riscv.c (riscv_file_start): Emit ".option
9406	"norelax" when riscv_mrelax is disabled.
9407	* doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax".
9408
94092018-03-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
9410
9411	PR target/84743
9412	* config/rs6000/rs6000.c (rs6000_reassociation_width): Disable parallel
9413	reassociation for int modes.
9414
94152018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
9416
9417	* tree-vect-loop-manip.c (vect_maybe_permute_loop_masks):
9418	Reverse the choice between VEC_UNPACK_LO_EXPR and VEC_UNPACK_HI_EXPR
9419	for big-endian.
9420	* config/aarch64/iterators.md (hi_lanes_optab): New int attribute.
9421	* config/aarch64/aarch64-sve.md
9422	(*aarch64_sve_<perm_insn><perm_hilo><mode>): Rename to...
9423	(aarch64_sve_<perm_insn><perm_hilo><mode>): ...this.
9424	(*extend<mode><Vwide>2): Rename to...
9425	(aarch64_sve_extend<mode><Vwide>2): ...this.
9426	(vec_unpack<su>_<perm_hilo>_<mode>): Turn into a define_expand,
9427	renaming the old pattern to...
9428	(aarch64_sve_punpk<perm_hilo>_<mode>): ...this.  Only define
9429	unsigned packs.
9430	(vec_unpack<su>_<perm_hilo>_<SVE_BHSI:mode>): Turn into a
9431	define_expand, renaming the old pattern to...
9432	(aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): ...this.
9433	(*vec_unpacku_<perm_hilo>_<mode>_no_convert): Delete.
9434	(vec_unpacks_<perm_hilo>_<mode>): Take BYTES_BIG_ENDIAN into
9435	account when deciding which SVE instruction the optab should use.
9436	(vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Likewise.
9437
94382018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
9439
9440	* config/aarch64/aarch64.md (V4_REGNUM, V8_REGNUM, V12_REGNUM)
9441	(V20_REGNUM, V24_REGNUM, V28_REGNUM, P1_REGNUM, P2_REGNUM, P3_REGNUM)
9442	(P4_REGNUM, P5_REGNUM, P6_REGNUM, P8_REGNUM, P9_REGNUM, P10_REGNUM)
9443	(P11_REGNUM, P12_REGNUM, P13_REGNUM, P14_REGNUM): New define_constants.
9444	(tlsdesc_small_<mode>): Turn a define_expand and use
9445	tlsdesc_small_sve_<mode> for SVE.  Rename original define_insn to...
9446	(tlsdesc_small_advsimd_<mode>): ...this.
9447	(tlsdesc_small_sve_<mode>): New pattern.
9448
94492018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
9450
9451	* config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART)
9452	(UNSPEC_UMUL_HIGHPART): New constants.
9453	(MUL_HIGHPART): New int iteraor.
9454	(su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART.
9455	* config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart): New
9456	define_expand.
9457	(*<su>mul<mode>3_highpart): New define_insn.
9458
94592018-03-13  Eric Botcazou  <ebotcazou@adacore.com>
9460
9461	PR lto/84805
9462	* ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of
9463	incomplete types.
9464
94652018-03-13  Martin Liska  <mliska@suse.cz>
9466
9467	PR ipa/84658.
9468	* (sem_item_optimizer::sem_item_optimizer): Initialize new
9469	vector.
9470	(sem_item_optimizer::~sem_item_optimizer): Release it.
9471	(sem_item_optimizer::merge_classes): Register variable aliases.
9472	(sem_item_optimizer::fixup_pt_set): New function.
9473	(sem_item_optimizer::fixup_points_to_sets): Likewise.
9474	* ipa-icf.h: Declare new variables and functions.
9475
94762018-03-13  Jakub Jelinek  <jakub@redhat.com>
9477
9478	PR middle-end/84834
9479	* match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of
9480	integer_pow2p@2 and test integer_pow2p in condition.
9481	(A < 0 ? C : 0): Similarly for @1.
9482
9483	PR middle-end/84831
9484	* stmt.c (parse_output_constraint): If the CONSTRAINT_LEN (*p, p)
9485	characters starting at p contain '\0' character, don't look beyond
9486	that.
9487
9488	PR target/84827
9489	* config/i386/i386.md (round<mode>2): For 387 fancy math, disable
9490	pattern if -ftrapping-math -fno-fp-int-builtin-inexact.
9491
9492	PR target/84828
9493	* reg-stack.c (change_stack): Change update_end var from int to
9494	rtx_insn *, if non-NULL don't update just BB_END (current_block), but
9495	also call set_block_for_insn on the newly added insns and rescan.
9496
9497	PR target/84786
9498	* config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v
9499	on the last operand.
9500
9501	PR c++/84704
9502	* tree.c (stabilize_reference_1): Return save_expr (e) for
9503	STATEMENT_LIST even if it doesn't have side-effects.
9504
95052018-03-12  Jonathan Wakely  <jwakely@redhat.com>
9506
9507	* doc/invoke.texi (-mclflushopt): Fix spelling of option.
9508
95092018-03-12  Renlin Li  <renlin.li@arm.com>
9510
9511	* config/aarch64/aarch64.md (movhf_aarch64): Fix mode argument to
9512	aarch64_output_scalar_simd_mov_immediate.
9513
95142018-03-12  Martin Sebor  <msebor@redhat.com>
9515
9516	PR tree-optimization/83456
9517	* gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning
9518	for perfectly overlapping calls to memcpy.
9519	(gimple_fold_builtin_memory_chk): Same.
9520	(gimple_fold_builtin_strcpy): Handle no-warning.
9521	(gimple_fold_builtin_stxcpy_chk): Same.
9522	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning.
9523
95242018-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
9525
9526	* config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add bool "named"
9527	parameter.  Use it for SFmode.
9528	(rs6000_function_arg_advance_1): Adjust.
9529	(rs6000_function_arg): Adjust.
9530	(rs6000_gimplify_va_arg): Pass false for that new parameter.
9531
95322018-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
9533
9534	PR rtl-optimization/84169
9535	PR rtl-optimization/84780
9536	* combine.c (can_combine_p): Check for a 2-insn combination whether
9537	the destination register is used between the two insns, too.
9538
95392018-03-12  Richard Biener  <rguenther@suse.de>
9540
9541	PR tree-optimization/84803
9542	* tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything
9543	for refs DR analysis didn't process.
9544
95452018-03-12  Richard Biener  <rguenther@suse.de>
9546
9547	PR tree-optimization/84777
9548	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): For
9549	force-vectorize loops ignore whether we are optimizing for size.
9550
95512018-03-12  Chung-Ju Wu  <jasonwucj@gmail.com>
9552
9553	* config/nds32/nds32.c (nds32_md_asm_adjust): New function.
9554	(TARGET_MD_ASM_ADJUST): Define.
9555
95562018-03-12  Monk Chiang  <sh.chiang04@gmail.com>
9557	    Kito Cheng  <kito.cheng@gmail.com>
9558	    Chung-Ju Wu  <jasonwucj@gmail.com>
9559
9560	* config/nds32/nds32.c (nds32_compute_stack_frame,
9561	nds32_emit_stack_push_multiple, nds32_emit_stack_pop_multiple,
9562	nds32_emit_stack_v3push, nds32_emit_stack_v3pop,
9563	nds32_emit_adjust_frame, nds32_expand_prologue, nds32_expand_epilogue,
9564	nds32_expand_prologue_v3push, nds32_expand_epilogue_v3pop): Refine.
9565	* config/nds32/nds32.h (NDS32_FIRST_CALLEE_SAVE_GPR_REGNUM,
9566	NDS32_LAST_CALLEE_SAVE_GPR_REGNUM, NDS32_V3PUSH_AVAILABLE_P): New.
9567	* config/nds32/nds32.md (prologue, epilogue): Use macro
9568	NDS32_V3PUSH_AVAILABLE_P to do checking.
9569
95702018-03-11  Jakub Jelinek  <jakub@redhat.com>
9571
9572	PR debug/58150
9573	* dwarf2out.c (gen_enumeration_type_die): Don't guard adding
9574	DW_AT_declaration for ENUM_IS_OPAQUE on -gdwarf-4 or -gno-strict-dwarf,
9575	but on TYPE_SIZE.  Don't do anything for ENUM_IS_OPAQUE if not creating
9576	a new die.  Don't set TREE_ASM_WRITTEN if ENUM_IS_OPAQUE.  Guard
9577	addition of most attributes on !orig_type_die or the attribute not
9578	being present already.  Assert TYPE_VALUES is NULL for ENUM_IS_OPAQUE.
9579
95802018-03-11  Kito Cheng  <kito.cheng@gmail.com>
9581	    Chung-Ju Wu  <jasonwucj@gmail.com>
9582
9583	* config/nds32/nds32.c (nds32_cpu_cpp_builtins): Modify to define
9584	__NDS32_VH__ macro.
9585	* config/nds32/nds32.opt (mvh): New option.
9586
95872018-03-11  Kito Cheng  <kito.cheng@gmail.com>
9588	    Chung-Ju Wu  <jasonwucj@gmail.com>
9589
9590	* config/nds32/nds32-protos.h (nds32_cpu_cpp_builtins): Declare
9591	function.
9592	* config/nds32/nds32.c (nds32_cpu_cpp_builtins): New function.
9593	* config/nds32/nds32.h (TARGET_CPU_CPP_BUILTINS): Modify its
9594	definition.
9595
95962018-03-11  Kito Cheng  <kito.cheng@gmail.com>
9597	    Chung-Ju Wu  <jasonwucj@gmail.com>
9598
9599	* config/nds32/nds32-memory-manipulation.c (nds32_expand_strlen): New
9600	function.
9601	* config/nds32/nds32-multiple.md (strlensi): New pattern.
9602	* config/nds32/nds32-protos.h (nds32_expand_strlen): Declare function.
9603
96042018-03-11  Monk Chiang  <sh.chiang04@gmail.com>
9605	    Kito Cheng  <kito.cheng@gmail.com>
9606	    Chung-Ju Wu  <jasonwucj@gmail.com>
9607
9608	* config/nds32/constants.md (unspec_element): Add UNSPEC_FFB,
9609	UNSPEC_FFMISM and UNSPEC_FLMISM.
9610	* config/nds32/nds32-intrinsic.c (bdesc_2arg): Add builtin description
9611	for ffb, ffmism and flmism.
9612	* config/nds32/nds32-intrinsic.md (unspec_ffb): Define new pattern.
9613	(unspec_ffmism): Ditto.
9614	(unspec_flmism): Ditto.
9615	(nds32_expand_builtin_impl): Check if string extension is available.
9616	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FFB,
9617	NDS32_BUILTIN_FFMISM and NDS32_BUILTIN_FLMISM.
9618
96192018-03-10  Vladimir Makarov  <vmakarov@redhat.com>
9620
9621	Reverting patch:
9622	2018-03-09  Vladimir Makarov  <vmakarov@redhat.com>
9623
9624	PR target/83712
9625	* lra-assigns.c (assign_by_spills): Return a flag of reload
9626	assignment failure.  Do not process the reload assignment
9627	failures.  Do not spill other reload pseudos if they has the same
9628	reg class.
9629	(lra_assign): Add a return arg.  Set up from the result of
9630	assign_by_spills call.
9631	(find_reload_regno_insns, lra_split_hard_reg_for): New functions.
9632	* lra-constraints.c (split_reg): Add a new arg.  Use it instead of
9633	usage_insns if it is not NULL.
9634	(spill_hard_reg_in_range): New function.
9635	(split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
9636	* lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
9637	function prototypes.
9638	(lra_assign): Change prototype.
9639	* lra.c (lra): Add code to deal with fails by splitting hard reg
9640	live ranges.
9641
96422018-03-10  H.J. Lu  <hongjiu.lu@intel.com>
9643
9644	PR target/84807
9645	* config/i386/i386.opt: Replace Enforcment with Enforcement.
9646
96472018-03-10  Alexandre Oliva  <aoliva@redhat.com>
9648
9649	PR debug/84620
9650	* dwarf2out.h (dw_val_class): Add dw_val_class_symview.
9651	(dw_val_node): Add val_symbolic_view.
9652	* dwarf2out.c (dw_line_info_table): Add symviews_since_reset.
9653	(symview_upper_bound): New.
9654	(new_line_info_table): Initialize symviews_since_reset.
9655	(dwarf2out_source_line): Count symviews_since_reset and set
9656	symview_upper_bound.
9657	(dw_val_equal_p): Handle symview.
9658	(add_AT_symview): New.
9659	(print_dw_val): Handle symview.
9660	(attr_checksum, attr_checksum_ordered): Likewise.
9661	(same_dw_val_p, size_of_die): Likewise.
9662	(value_format, output_die): Likewise.
9663	(add_high_low_attributes): Use add_AT_symview for entry_view.
9664	(dwarf2out_finish): Reset symview_upper_bound, clear
9665	zero_view_p.
9666
96672018-03-09  Peter Bergner  <bergner@vnet.ibm.com>
9668
9669	PR target/83969
9670	* config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New prototype.
9671	Add strict argument and use it.
9672	(rs6000_split_multireg_move): Update for new strict argument.
9673	(mem_operand_gpr): Disallow all non-offsettable addresses.
9674	* config/rs6000/rs6000.md (*movdi_internal64): Use YZ constraint.
9675
96762018-03-09  Jakub Jelinek  <jakub@redhat.com>
9677
9678	PR target/84772
9679	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp
9680	temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY.
9681	* config/powerpcspe/powerpcspe.c (rs6000_gimplify_va_arg): Likewise.
9682
9683	PR c++/84767
9684	* tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped
9685	decl, use remap_type if we want to use the type.
9686
96872018-03-09  Martin Sebor  <msebor@redhat.com>
9688
9689	PR tree-optimization/84526
9690	* gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
9691	Remove dead code.
9692	(builtin_access::generic_overlap): Be prepared to handle non-array
9693	base objects.
9694
96952018-03-09  Alexandre Oliva  <aoliva@redhat.com>
9696
9697	PR rtl-optimization/84682
9698	* lra-constraints.c (process_address_1): Check is_address flag
9699	for address constraints.
9700	(process_alt_operands): Likewise.
9701	* lra.c (lra_set_insn_recog_data): Pass asm operand locs to
9702	preprocess_constraints.
9703	* recog.h (preprocess_constraints): Add oploc parameter.
9704	Adjust callers.
9705	* recog.c (preprocess_constraints): Test address_operand for
9706	CT_ADDRESS constraints.
9707
97082018-03-09  Vladimir Makarov  <vmakarov@redhat.com>
9709
9710	PR target/83712
9711	* lra-assigns.c (assign_by_spills): Return a flag of reload
9712	assignment failure.  Do not process the reload assignment
9713	failures.  Do not spill other reload pseudos if they has the same
9714	reg class.
9715	(lra_assign): Add a return arg.  Set up from the result of
9716	assign_by_spills call.
9717	(find_reload_regno_insns, lra_split_hard_reg_for): New functions.
9718	* lra-constraints.c (split_reg): Add a new arg.  Use it instead of
9719	usage_insns if it is not NULL.
9720	(spill_hard_reg_in_range): New function.
9721	(split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
9722	* lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
9723	function prototypes.
9724	(lra_assign): Change prototype.
9725	* lra.c (lra): Add code to deal with fails by splitting hard reg
9726	live ranges.
9727
97282018-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9729
9730	PR target/83193
9731	* common/config/arm/arm-common.c (arm_parse_arch_option_name):
9732	Accept complain bool parameter.  Only emit errors if it is true.
9733	(arm_parse_cpu_option_name): Likewise.
9734	(arm_target_thumb_only): Adjust callers of the above.
9735	* config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust
9736	prototype to take a default true bool parameter.
9737	(arm_parse_arch_option_name): Likewise.
9738
97392018-03-09  David Malcolm  <dmalcolm@redhat.com>
9740	    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9741
9742	PR jit/64089
9743	PR jit/84288
9744	* Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New.
9745	* configure: Regenerate.
9746	* configure.ac ("linker --version-script option"): New.
9747	("linker soname option"): New.
9748
97492018-03-09  Richard Biener  <rguenther@suse.de>
9750
9751	PR tree-optimization/84775
9752	* tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink
9753	immediate uses of predicate stmts and mark them modified.
9754
9755	Revert
9756	PR tree-optimization/84178
9757	* tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
9758	to caller.
9759	(version_loop_for_if_conversion): Delay update_ssa call.
9760	(tree_if_conversion): Delay update_ssa until after predicate
9761	insertion.
9762
97632018-03-09  Eric Botcazou  <ebotcazou@adacore.com>
9764
9765	PR target/84763
9766	* config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation
9767	when the function accesses prior frames.
9768
97692018-03-08  Jakub Jelinek  <jakub@redhat.com>
9770
9771	PR debug/84456
9772	* dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call
9773	gen_llsym, otherwise call maybe_gen_llsym.
9774
9775	PR inline-asm/84742
9776	* recog.c (asm_operand_ok): Return 0 if multi-character constraint
9777	has ',' character inside of it.
9778
97792018-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9780
9781	PR target/84748
9782	* config/aarch64/aarch64.md (*compare_cstore<mode>_insn): Mark pattern
9783	as clobbering CC_REGNUM.
9784
97852018-03-08  Richard Biener  <rguenther@suse.de>
9786
9787	PR middle-end/84552
9788	* tree-scalar-evolution.c: Include tree-into-ssa.h.
9789	(follow_copies_to_constant): Do not follow SSA names registered
9790	for update.
9791
97922018-03-08  Richard Biener  <rguenther@suse.de>
9793
9794	PR tree-optimization/84178
9795	* tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
9796	to caller.
9797	(version_loop_for_if_conversion): Delay update_ssa call.
9798	(tree_if_conversion): Delay update_ssa until after predicate
9799	insertion.
9800
98012018-03-08  David Malcolm  <dmalcolm@redhat.com>
9802
9803	PR tree-optimization/84178
9804	* tree-if-conv.c (release_bb_predicate): Remove the
9805	the assertion that the stmts have NULL use_ops.
9806	Discard the statements, asserting that they haven't
9807	yet been added to a BB.
9808
98092018-03-08  Richard Biener  <rguenther@suse.de>
9810
9811	PR tree-optimization/84746
9812	* tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL.
9813	(phi_translate): Pass in destination ANTIC_OUT set.
9814	(phi_translate_1): Likewise.  For a simplified result lookup
9815	a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets.
9816	(phi_translate_set): Adjust.
9817	(do_pre_regular_insertion): Likewise.
9818	(do_pre_partial_partial_insertion): Likewise.
9819
98202018-03-08  Martin Liska  <mliska@suse.cz>
9821
9822	PR gcov-profile/84735
9823	* doc/gcov.texi: Document usage of profile files.
9824	* gcov-io.h: Document changes in the format.
9825
98262018-03-08  Alexandre Oliva  <aoliva@redhat.com>
9827
9828	PR debug/84404
9829	PR debug/84408
9830	* dwarf2out.c (struct dw_line_info_table): Update comments for
9831	view == -1.
9832	(FORCE_RESET_NEXT_VIEW): New.
9833	(FORCE_RESETTING_VIEW_P): New.
9834	(RESETTING_VIEW_P): Check for -1 too.
9835	(ZERO_VIEW_P): Likewise.
9836	(new_line_info_table): Force-reset next view.
9837	(dwarf2out_begin_function): Likewise.
9838	(dwarf2out_source_line): Simplify zero_view_p initialization.
9839	Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of
9840	view directly.  Omit view when omitting .loc at line 0.
9841
98422018-03-08  Jakub Jelinek  <jakub@redhat.com>
9843
9844	PR tree-optimization/84740
9845	* tree-switch-conversion.c (process_switch): Call build_constructors
9846	only if info.phi_count is non-zero.
9847
9848	PR tree-optimization/84739
9849	* tree-tailcall.c (find_tail_calls): Check call arguments against
9850	DECL_ARGUMENTS (current_function_decl) rather than
9851	DECL_ARGUMENTS (func) when checking for tail recursion.
9852
98532018-03-07  Jakub Jelinek  <jakub@redhat.com>
9854
9855	* doc/contrib.texi: Add entries for Martin Liska, David Malcolm,
9856	Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and
9857	Volker Reichelt's entry and add entries for people that perform
9858	GCC fuzzy testing and report numerous bugs.
9859
98602018-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
9861
9862	PR target/82411
9863	* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put
9864	readonly data in sdata, if that is disabled.
9865	* config/rs6000/sysv4.opt (mreadonly-in-sdata): New option.
9866	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
9867	-mreadonly-in-sdata option.
9868
98692018-03-07  Martin Sebor  <msebor@redhat.com>
9870
9871	PR tree-optimization/84468
9872	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor
9873	basic block when looking for nul assignment.
9874
98752018-03-07  Eric Botcazou  <ebotcazou@adacore.com>
9876
9877	PR target/84277
9878	* except.h (output_function_exception_table): Adjust prototype.
9879	* except.c (output_function_exception_table): Remove FNNAME parameter
9880	and add SECTION parameter.  Ouput one part of the table at a time.
9881	* final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output
9882	the first part of the exception table and emit unwind directives.
9883	* config/i386/i386-protos.h (i386_pe_end_cold_function): Declare.
9884	(i386_pe_seh_cold_init): Likewise.
9885	* config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro.
9886	(ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise.
9887	* config/i386/i386.c (x86_expand_epilogue): Fix wording in comment.
9888	(ix86_output_call_insn): Emit a nop in one more case for SEH.
9889	* config/i386/winnt.c: Include except.h.
9890	(struct seh_frame_state): Add reg_offset, after_prologue and
9891	in_cold_section fields.
9892	(i386_pe_seh_end_prologue): Set seh->after_prologue.
9893	(i386_pe_seh_cold_init): New function.
9894	(i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal
9895	to seh->in_cold_section.
9896	(seh_emit_push): Record the offset of the push.
9897	(seh_emit_save): Record the offet of the save.
9898	(i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS.
9899	Test seh->after_prologue to disregard the epilogue.
9900	(i386_pe_end_function): Pass FALSE to i386_pe_seh_fini.
9901	(i386_pe_end_cold_function): New function.
9902
99032018-03-07  Jakub Jelinek  <jakub@redhat.com>
9904
9905	PR fortran/84565
9906	* config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use
9907	aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero.
9908
9909	PR c++/84704
9910	* gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag
9911	on tmp_var.
9912	* tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG,
9913	don't print names of DECL_NAMELESS DECL_IGNORED_P decls.
9914
9915	PR middle-end/84723
9916	* multiple_target.c: Include tree-inline.h and intl.h.
9917	(expand_target_clones): Diagnose and fail if node->definition and
9918	!tree_versionable_function_p (node->decl).
9919
99202018-03-06  John David Anglin  <danglin@gcc.gnu.org>
9921
9922	* config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use
9923	sprint_ul.
9924	(ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change.
9925	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9926	* config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above.
9927
99282018-03-06  Jakub Jelinek  <jakub@redhat.com>
9929
9930	PR target/84710
9931	* combine.c (try_combine): Use reg_or_subregno instead of handling
9932	just paradoxical SUBREGs and REGs.
9933
99342018-03-06  Claudiu Zissulescu  <claziss@synopsys.com>
9935
9936	 * config/arc/arc.c (arc_finalize_pic): Remove function.
9937	 (arc_must_save_register): We use single base PIC register, remove
9938	 checks to save/restore the PIC register.
9939	 (arc_expand_prologue): Likewise.
9940	 * config/arc/arc-protos.h (arc_set_default_type_attributes):
9941	 Remove.
9942	 (arc_verify_short): Likewise.
9943	 (arc_attr_type): Likewise.
9944	 * config/arc/arc.c (arc_set_default_type_attributes): Remove.
9945	 (walk_stores): Likewise.
9946	 (arc_address_cost): Make it static.
9947	 (arc_verify_short): Likewise.
9948	 (branch_dest): Likewise.
9949	 (arc_attr_type): Likewise.
9950	 * config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove.
9951	 (TARGET_INSN_LENGTH_PARAMETERS): Likewise.
9952	 (arc_final_prescan_insn): Remove inserting the nops due to
9953	 hardware hazards.  It is done in reorg step.
9954	 (insn_length_variant_t): Remove.
9955	 (insn_length_parameters_t): Likewise.
9956	 (arc_insn_length_parameters): Likewise.
9957	 (arc_get_insn_variants): Likewise.
9958	 * config/arc/arc.h (TARGET_UPSIZE_DBR): Remove.
9959
99602018-03-06  Jakub Jelinek  <jakub@redhat.com>
9961
9962	PR inline-asm/84683
9963	* reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid
9964	assertion failure.
9965
9966	PR tree-optimization/84687
9967	* omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS
9968	on new_node->decl.
9969	* match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization.
9970
99712018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9972
9973	* config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier):
9974	Rename to ppc_speculation_barrier.
9975	* config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to
9976	__builtin_ppc_speculation_barrier.
9977
99782018-03-05  Jakub Jelinek  <jakub@redhat.com>
9979
9980	PR target/84700
9981	* combine.c (combine_simplify_rtx): Don't try to simplify if
9982	if_then_else_cond returned non-NULL, but either true_rtx or false_rtx
9983	are equal to x.
9984
99852018-03-05  Segher Boessenkool  <segher@kernel.crashing.org>
9986
9987	* config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops
9988	to 32 bytes when compiling for POWER9.
9989
99902018-03-05  Jakub Jelinek  <jakub@redhat.com>
9991
9992	PR target/84564
9993	* config/i386/i386.c (ix86_function_ok_for_sibcall): Check for
9994	regparm >= 3 with no arg reg available also for calls with
9995	flag_force_indirect_call.  Pass decl to ix86_function_regparm.
9996
9997	PR target/84524
9998	* config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with
9999	orig,vex.
10000	(*<plusminus_insn><mode>3): Likewise.  Remove <mask_operand3> uses.
10001
100022018-03-05  Peter Bergner  <bergner@vnet.ibm.com>
10003
10004	PR target/84264
10005	* config/rs6000/vector.md (mov<mode>): Disallow altivec memory operands.
10006
100072018-03-05  Richard Biener  <rguenther@suse.de>
10008
10009	PR tree-optimization/84486
10010	* tree-ssa-pre.c (create_expression_by_pieces): Remove dead code.
10011	When inserting a __builtin_assume_aligned call set the LHS
10012	SSA name alignment info accordingly.
10013
100142018-03-05  Wilco Dijkstra  <wdijkstr@arm.com>
10015
10016	PR tree-optimization/84114
10017	* config/aarch64/aarch64.c (aarch64_reassociation_width)
10018	Avoid reassociation of FLOAT_MODE addition.
10019
100202018-03-05  Olga Makhotina  <olga.makhotina@intel.com>
10021
10022	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET,
10023	OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET,
10024	OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions.
10025	(ix86_handle_option): Handle -mpconfig and -mwbnoinvd.
10026	* config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers.
10027	* config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New.
10028	* config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig
10029	and -mwbnoinvd.
10030	* config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd,
10031	__builtin_ia32_wbinvd): New builtins.
10032	(SPECIAL_ARGS2): New.
10033	* config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New.
10034	(SPECIAL_ARGS2): New.
10035	* config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd.
10036	(ix86_valid_target_attribute_inner_p): Ditto.
10037	(ix86_init_mmx_sse_builtins): Add special_args2.
10038	* config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD,
10039	TARGET_WBNOINVD_P): New.
10040	* config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New.
10041	(define_insn "wbinvd", define_insn "wbnoinvd"): New.
10042	* config/i386/i386.opt: Add -mpconfig and -mwbnoinvd.
10043	* config/i386/immintrin.h (_wbinvd): New intrinsic.
10044	* config/i386/pconfigintrin.h: New file.
10045	* config/i386/wbnoinvdintrin.h: Ditto.
10046	* config/i386/x86intrin.h: Add headers pconfigintrin.h and wbnoinvdintrin.h.
10047	* doc/invoke.texi (-mpconfig, -mwbnoinvd): New.
10048
100492018-03-05  Richard Biener  <rguenther@suse.de>
10050
10051	PR tree-optimization/84670
10052	* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
10053	member.
10054	(BB_VISITED_WITH_VISITED_SUCCS): New define.
10055	(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
10056	(compute_antic_aux): Only assert the number of values in ANTIC_IN
10057	doesn't grow if all successors (recursively) were visited at least
10058	once.
10059
100602018-03-05  Richard Biener  <rguenther@suse.de>
10061
10062	PR tree-optimization/84650
10063	* tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache
10064	if executed in the loop pipeline.
10065
100662018-03-05  Sandra Loosemore  <sandra@codesourcery.com>
10067
10068	* doc/configfiles.texi (Configuration Files): Move info about
10069	conditionalizing $target-protos.h to...
10070	* doc/sourcebuild.texi (Back End): Here.  Explain how $target.h
10071	differs from $target-protos.h.
10072
100732018-03-05  Kito Cheng  <kito.cheng@gmail.com>
10074	    Chung-Ju Wu  <jasonwucj@gmail.com>
10075
10076	* config/nds32/nds32-protos.h (nds32_expand_setmem): Declare.
10077	* config/nds32/nds32-multiple.md (setmemsi): Define.
10078	* config/nds32/nds32-memory-manipulation.c
10079	(nds32_gen_dup_4_byte_to_word_value): New.
10080	(emit_setmem_word_loop): New.
10081	(emit_setmem_byte_loop): New.
10082	(nds32_expand_setmem_loop): New.
10083	(nds32_expand_setmem_loop_v3m): New.
10084	(nds32_expand_setmem_unroll): New.
10085	(nds32_expand_setmem): New.
10086
100872018-03-04  Kito Cheng  <kito.cheng@gmail.com>
10088	    Chung-Ju Wu  <jasonwucj@gmail.com>
10089
10090	* config/nds32/nds32-memory-manipulation.c
10091	(nds32_emit_load_store): New.
10092	(nds32_emit_post_inc_load_store): New.
10093	(nds32_emit_mem_move): New.
10094	(nds32_emit_mem_move_block): New.
10095	(nds32_expand_movmemsi_loop_unknown_size): New.
10096	(nds32_expand_movmemsi_loop_known_size): New.
10097	(nds32_expand_movmemsi_loop): New.
10098	(nds32_expand_movmemsi_unroll): New.
10099	(nds32_expand_movmemqi): Rename ...
10100	(nds32_expand_movmemsi): ... to this.
10101	* config/nds32/nds32-multiple.md (movmemqi): Rename ...
10102	(movmemsi): ... to this.
10103	* config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ...
10104	(nds32_expand_movmemsi): ... to this.
10105
101062018-03-04  Kito Cheng  <kito.cheng@gmail.com>
10107	    Monk Chiang  <sh.chiang04@gmail.com>
10108	    Chung-Ju Wu  <jasonwucj@gmail.com>
10109
10110	* config/nds32/nds32-protos.h
10111	(nds32_expand_load_multiple): New arguments.
10112	(nds32_expand_store_multiple): Ditto.
10113	(nds32_valid_multiple_load_store): Rename ...
10114	(nds32_valid_multiple_load_store_p): ... to this.
10115	* config/nds32/nds32-memory-manipulation.c
10116	(nds32_expand_load_multiple): Refine implementation.
10117	(nds32_expand_store_multiple): Ditto.
10118	* config/nds32/nds32-multiple.md
10119	(load_multiple): Update nds32_expand_load_multiple interface.
10120	(store_multiple): Update nds32_expand_store_multiple interface.
10121	* config/nds32/nds32-predicates.c
10122	(nds32_valid_multiple_load_store): Rename ...
10123	(nds32_valid_multiple_load_store_p): ... to this and refine
10124	implementation.
10125	* config/nds32/predicates.md
10126	(nds32_load_multiple_and_update_address_operation): New predicate.
10127	(nds32_store_multiple_and_update_address_operation): New predicate.
10128
101292018-03-04  Kito Cheng  <kito.cheng@gmail.com>
10130	    Chung-Ju Wu  <jasonwucj@gmail.com>
10131
10132	* config/nds32/nds32.md (type): Add load_multiple and store_multiple.
10133	(combo): New attribute.
10134	* config/nds32/nds32-multiple.md: Refine patterns with new attributes.
10135
101362018-03-03  Chung-Ju Wu  <jasonwucj@gmail.com>
10137
10138	* config/nds32/nds32.opt: Change -mcmodel= default value.
10139
101402018-03-03  Kito Cheng  <kito.cheng@gmail.com>
10141	    Monk Chiang  <sh.chiang04@gmail.com>
10142	    Chung-Ju Wu  <jasonwucj@gmail.com>
10143
10144	* config/nds32/constants.md (unspec_element): New enum.
10145	* config/nds32/constraints.md (Umw): New constraint.
10146	* config/nds32/nds32-intrinsic.c: Add more builtin functions.
10147	* config/nds32/nds32-intrinsic.md: Likewise.
10148	* config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New.
10149	(nds32_valid_smw_lwm_base_p): New.
10150	(nds32_output_smw_single_word): New.
10151	(nds32_output_lmw_single_word): New.
10152	(nds32_expand_unaligned_load): New.
10153	(nds32_expand_unaligned_store): New.
10154	* config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare.
10155	(nds32_output_smw_single_word): Declare.
10156	(nds32_output_lmw_single_word): Declare.
10157	(nds32_expand_unaligned_load): Declare.
10158	(nds32_expand_unaligned_store): Declare.
10159	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW,
10160	NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW,
10161	NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W,
10162	NDS32_BUILTIN_UASTORE_DW.
10163	* config/nds32/predicates.md (nds32_lmw_smw_base_operand): New
10164	predicate.
10165
101662018-03-03  Monk Chiang  <sh.chiang04@gmail.com>
10167	    Kito Cheng  <kito.cheng@gmail.com>
10168	    Chung-Ju Wu  <jasonwucj@gmail.com>
10169
10170	* config/nds32/nds32-intrinsic.c
10171	(nds32_expand_builtin_null_ftype_reg): Delete.
10172	(nds32_expand_builtin_reg_ftype_imm): Ditto.
10173	(nds32_expand_builtin_null_ftype_reg_imm): Ditto.
10174	(nds32_read_argument): New.
10175	(nds32_legitimize_target): Ditto.
10176	(nds32_legitimize_argument): Ditto.
10177	(nds32_check_constant_argument): Ditto.
10178	(nds32_expand_unop_builtin): Ditto.
10179	(nds32_expand_unopimm_builtin): Ditto.
10180	(nds32_expand_binop_builtin): Ditto.
10181	(nds32_builtin_decl_impl): Ditto.
10182	(builtin_description): Ditto.
10183	(nds32_expand_builtin_impl): Rewrite with new infrastructure.
10184	(nds32_init_builtins_impl): Ditto.
10185	* config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define.
10186	(nds32_builtin_decl): New.
10187	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT.
10188	* config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare.
10189
101902018-03-02  Jeff Law  <law@redhat.com>
10191
10192	* reorg.c (stop_search_p): Handle DEBUG_INSN.
10193	(redundant_insn, fill_simple_delay_slots): Likewise.
10194	(fill_slots_from_thread): Likewise.
10195	* resource.c (mark_referenced_resources): Likewise.
10196	(mark_set_resources, find_dead_or_set_registers): Likewise.
10197
101982018-03-02  Jakub Jelinek  <jakub@redhat.com>
10199
10200	* substring-locations.h (format_warning_va): Formatting fix for
10201	ATTRIBUTE_GCC_DIAG.
10202	(format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second
10203	argument.
10204	(format_warning_n_va, format_warning_at_substring_n): New prototypes.
10205	* substring-locations.c: Include intl.h.
10206	(format_warning_va): Turned into small wrapper around
10207	format_warning_n_va, renamed to ...
10208	(format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments,
10209	rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID,
10210	use ngettext.
10211	(format_warning_at_substring_n): New function.
10212	* gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma.
10213	(fmtwarn): Add ATTRIBUTE_GCC_DIAG.  Turn into a copy of
10214	format_warning_at_substring with just a shorter name instead of
10215	const function pointer.
10216	(fmtwarn_n): New function.
10217	(maybe_warn, format_directive, parse_directive): Use fmtwarn_n where
10218	appropriate, get rid of all the fmtstr temporaries, move conditionals
10219	with G_() wrapped string literals directly into fmtwarn arguments,
10220	cast dir.len to (int), formatting fixes.
10221
102222018-03-02  Thomas Schwinge  <thomas@codesourcery.com>
10223
10224	* doc/invoke.texi: Remove "Cilk Plus" references.
10225
102262018-03-02  Jakub Jelinek  <jakub@redhat.com>
10227	    Richard Biener  <rguenther@suse.de>
10228
10229	PR ipa/84628
10230	* expr.c (expand_expr_real_1) <case CALL_EXPR>: Don't emit diagnostics
10231	for error or warning attributes if CALL_FROM_THUNK_P is set.
10232	Formatting fixes.
10233
102342018-03-02  Jakub Jelinek  <jakub@redhat.com>
10235
10236	PR target/56540
10237	* config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine
10238	__SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY.
10239
10240	PR target/56540
10241	* config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine
10242	__SIZEOF_{FPREG,FLOAT{80,128}}__ macros.
10243
10244	* predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED
10245	instead of -1U in last predictors element's probability member.
10246
102472018-03-02  Eric Botcazou  <ebotcazou@adacore.com>
10248
10249	PR ipa/83983
10250	* ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both
10251	arguments if they are comparable.
10252
102532018-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
10254
10255	PR tree-optimization/84634
10256	* tree-vect-stmts.c (vectorizable_store, vectorizable_load): Replace
10257	masks and masked_loop_p with a single loop_masks, making sure it's
10258	null for bb vectorization.
10259
102602018-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
10261
10262	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence)
10263	(vect_analyze_data_ref_access): Use loop->safe_len rather than
10264	loop->force_vectorize to check whether there is no alias.
10265
102662018-03-02  Jakub Jelinek  <jakub@redhat.com>
10267
10268	PR target/84614
10269	* rtl.h (prev_real_nondebug_insn, next_real_nondebug_insn): New
10270	prototypes.
10271	* emit-rtl.c (next_real_insn, prev_real_insn): Fix up function
10272	comments.
10273	(next_real_nondebug_insn, prev_real_nondebug_insn): New functions.
10274	* cfgcleanup.c (try_head_merge_bb): Use prev_real_nondebug_insn
10275	instead of a loop around prev_real_insn.
10276	* combine.c (move_deaths): Use prev_real_nondebug_insn instead of
10277	prev_real_insn.
10278
10279	PR inline-asm/84625
10280	* config/i386/i386.c (ix86_print_operand): Use conditional
10281	output_operand_lossage instead of gcc_assert if CONST_VECTOR is not
10282	zero vector.
10283
102842018-03-02  Richard Biener  <rguenther@suse.de>
10285
10286	PR tree-optimization/84427
10287	* tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove.
10288	(bitmap_set_subtract_values): Rewrite to handle multiple
10289	exprs per value.
10290	(clean): Likewise.
10291	(prune_clobbered_mems): Likewise.
10292	(phi_translate): Take edge instead of pred/phiblock.
10293	(phi_translate_1): Likewise.
10294	(phi_translate_set): Likewise.  Insert all translated
10295	exprs for a value into the set, keeping possibly multiple
10296	expressions per value.
10297	(compute_antic_aux): Adjust for phi_translate changes.
10298	When intersecting union the expressions and prune those
10299	not in the final value set, keeping possibly multiple
10300	expressions per value.  Do not use value-insertion
10301	for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge
10302	all expressions.  Add verification that the value-sets
10303	only shrink during iteration.
10304	(compute_partial_antic_aux): Adjust for the phi_translate changes.
10305	(do_pre_regular_insertion): Likewise.
10306	(do_pre_partial_partial_insertion): Likewise.
10307
103082018-03-02  Richard Biener  <rguenther@suse.de>
10309
10310	PR target/82005
10311	* config/darwin.c (saved_debug_info_level): New static global.
10312	(darwin_asm_lto_start): Disable debug info generation for LTO out.
10313	(darwin_asm_lto_end): Restore debug info generation settings.
10314
103152018-03-01  Martin Liska  <mliska@suse.cz>
10316
10317	PR sanitizer/82484
10318	* sanopt.c (sanitize_rewrite_addressable_params): Do not handle
10319	volatile arguments.
10320
103212018-03-01  Richard Biener  <rguenther@suse.de>
10322
10323	PR debug/84645
10324	* dwarf2out.c (gen_variable_die): Properly handle late VLA
10325	type annotation with LTO when debug was disabled at compile-time.
10326
103272018-03-01  Matthew Fortune  <mfortune@gmail.com>
10328
10329	* config/mips/mips.c (mips_final_prescan_insn): Fix incorrect
10330	XINT with INTVAL.
10331	(mips_final_postscan_insn): Likewise.
10332
103332018-03-01  Richard Sandiford  <richard.sandiford@linaro.org>
10334
10335	PR rtl-optimization/84528
10336	* alias.c (init_alias_target): Add commentary.
10337	(init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM
10338	a unique base value if the frame pointer is not eliminated
10339	to the stack pointer.
10340
103412018-03-01  Tom de Vries  <tom@codesourcery.com>
10342
10343	PR rtl-optimization/83327
10344	* lra-int.h (hard_regs_spilled_into): Declare.
10345	* lra.c (hard_regs_spilled_into): Define.
10346	(init_reg_info): Init hard_regs_spilled_into.
10347	* lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into.
10348	* lra-lives.c (make_hard_regno_born, make_hard_regno_dead)
10349	(process_bb_lives): Handle hard_regs_spilled_into.
10350	(lra_create_live_ranges_1): Before doing liveness propagation, clear
10351	regs in all_hard_regs_bitmap if set in hard_regs_spilled_into.
10352
103532018-02-28  David Edelsohn  <dje.gcc@gmail.com>
10354
10355	* config.gcc (powerpc-ibm-aix7.1.*): New stanza.
10356	(powerpc-ibm-aix[789]*): Default to AIX 7.2.
10357	* config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA.
10358	* config/rs6000/aix72.h: New file.
10359
103602018-02-28  Jakub Jelinek  <jakub@redhat.com>
10361
10362	* gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n
10363	instead of warning_at with conditional singular and plural messages
10364	where possible.
10365
10366	PR target/52991
10367	* stor-layout.c (update_alignment_for_field): For
10368	targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield
10369	&& !DECL_PACKED (field), do the alignment update, just use
10370	only desired_align instead of MAX (type_align, desired_align)
10371	as the alignment.
10372	(place_field): Don't do known_align < desired_align handling
10373	early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field
10374	is non-NULL, instead do it after rli->prev_field handling and
10375	only if not within a bitfield word.  For DECL_PACKED (field)
10376	use type_align of BITS_PER_UNIT.
10377
103782018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
10379
10380	* config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove
10381	superfluous parentheses and trailing spaces.
10382
103832018-02-28  Richard Biener  <rguenther@suse.de>
10384
10385	PR tree-optimization/84584
10386	* graphite-scop-detection.c (scop_detection::add_scop): Discard
10387	SCoPs with fake exit edge.
10388
103892018-02-28  Martin Liska  <mliska@suse.cz>
10390
10391	PR testsuite/84597
10392	* timevar.c (timer::print): Fix format to properly print 100%
10393	values.
10394
103952018-02-28  Richard Biener  <rguenther@suse.de>
10396
10397	PR middle-end/84607
10398	* genmatch.c (capture_info::walk_match): Do not mark
10399	captured expressions without operands as expr_p given
10400	they act more like predicates and should be subject to
10401	"lost tail" side-effect preserving.
10402
104032018-02-28  Alexandre Oliva  <aoliva@redhat.com>
10404
10405	PR rtl-optimization/81611
10406	* auto-inc-dec.c (attempt_change): Move dead note from
10407	mem_insn if it's the next use of regno
10408	(find_address): Take address use of reg holding
10409	non-incremented value.  Add parm to limit search to the named
10410	reg only.
10411	(merge_in_block): Attempt to use a mem insn that is the next
10412	use of the original regno.
10413
104142018-02-27  Martin Sebor  <msebor@redhat.com>
10415
10416	PR c++/83871
10417	* gcc/doc/invoke.texi (-Wmissing-attributes): New option.
10418	* gcc/print-tree.c (print_node): Handle DECL_UNINLINABLE.
10419
104202018-02-27  Martin Sebor  <msebor@redhat.com>
10421
10422	PR translation/84207
10423	* diagnostic-core.h (warning_n, error_n, inform_n): Change
10424	n argument to unsigned HOST_WIDE_INT.
10425	* diagnostic.c (warning_n, error_n, inform_n): Ditto.
10426	(diagnostic_n_impl): Ditto.  Handle arguments in excess of LONG_MAX.
10427	* gimple-ssa-sprintf.c (format_directive): Simplify inform_n call.
10428	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n.
10429
104302018-02-27  Richard Biener  <rguenther@suse.de>
10431
10432	PR tree-optimization/84512
10433	* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
10434	Do not use the estimate returned from record_stmt_cost for
10435	the scalar iteration cost but sum properly using add_stmt_cost.
10436
104372018-02-27  Richard Biener  <rguenther@suse.de>
10438
10439	PR tree-optimization/84466
10440	* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
10441	Adjust last change to less strictly validate use operands.
10442
104432018-02-27  Martin Liska  <mliska@suse.cz>
10444
10445	PR gcov-profile/84548
10446	* gcov.c (process_file): Allow partial overlap and consider it
10447	also as group functions.
10448	(output_lines): Properly calculate range of lines for a group.
10449
104502018-02-27  Martin Liska  <mliska@suse.cz>
10451
10452	* timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and
10453	'ggc' suffixes.  Change first column width.
10454	(timer::print): Fix formatting of the column.
10455
104562018-02-27  Alexandre Oliva  <aoliva@redhat.com>
10457
10458	* tree-ssa-live.c (remove_unused_scope_block_p): Do not
10459	preserve inline entry blocks for the sake of debug inline
10460	entry point markers alone.
10461	(remove_unused_locals): Suggest in comments a better place to
10462	force the preservation of inline entry blocks that are
10463	otherwise unused, but do not preserve them.
10464
104652018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
10466
10467	* config/i386/i386.c (ix86_output_indirect_jmp): Update comments.
10468
104692018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
10470
10471	PR target/84039
10472	* config/i386/constraints.md (Bs): Replace
10473	ix86_indirect_branch_register with
10474	TARGET_INDIRECT_BRANCH_REGISTER.
10475	(Bw): Likewise.
10476	* config/i386/i386.md (indirect_jump): Likewise.
10477	(tablejump): Likewise.
10478	(*sibcall_memory): Likewise.
10479	(*sibcall_value_memory): Likewise.
10480	Peepholes of indirect call and jump via memory: Likewise.
10481	(*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER.
10482	(*sibcall_value_GOT_32): Likewise.
10483	* config/i386/predicates.md (indirect_branch_operand): Likewise.
10484	(GOT_memory_operand): Likewise.
10485	(call_insn_operand): Likewise.
10486	(sibcall_insn_operand): Likewise.
10487	(GOT32_symbol_operand): Likewise.
10488	* config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New.
10489
104902018-02-26  Eric Botcazou  <ebotcazou@adacore.com>
10491
10492	PR rtl-optimization/83496
10493	* reorg.c (steal_delay_list_from_target): Change REDUNDANT array from
10494	booleans to RTXes.  Call fix_reg_dead_note on every non-null element.
10495	(steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a
10496	redundant insn, if any.
10497	(relax_delay_slots): Likewise.
10498	(update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN.
10499
105002018-02-26  Richard Sandiford  <richard.sandiford@linaro.org>
10501
10502	PR tree-optimization/83965
10503	* tree-vect-patterns.c (vect_reassociating_reduction_p): Assume
10504	that grouped statements are part of a reduction chain.  Return
10505	true if the statement is not marked as a reduction itself but
10506	is part of a group.
10507	(vect_recog_dot_prod_pattern): Don't check whether the statement
10508	is part of a group here.
10509	(vect_recog_sad_pattern): Likewise.
10510	(vect_recog_widen_sum_pattern): Likewise.
10511
105122018-02-26  Eric Botcazou  <ebotcazou@adacore.com>
10513
10514	PR debug/84545
10515	* final.c (rest_of_clean_state): Also look for calls inside sequences.
10516
105172018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
10518
10519	PR target/84530
10520	* config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove
10521	the bool argument.
10522	(ix86_output_indirect_function_return): New prototype.
10523	(ix86_split_simple_return_pop_internal): Likewise.
10524	* config/i386/i386.c (indirect_return_via_cx): New.
10525	(indirect_return_via_cx_bnd): Likewise.
10526	(indirect_thunk_name): Handle return va CX_REG.
10527	(output_indirect_thunk_function): Create alias for
10528	__x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd.
10529	(ix86_output_indirect_jmp): Remove the bool argument.
10530	(ix86_output_indirect_function_return): New function.
10531	(ix86_split_simple_return_pop_internal): Likewise.
10532	* config/i386/i386.md (*indirect_jump): Don't pass false
10533	to ix86_output_indirect_jmp.
10534	(*tablejump_1): Likewise.
10535	(simple_return_pop_internal): Change it to define_insn_and_split.
10536	Call ix86_split_simple_return_pop_internal to split it for
10537	-mfunction-return=.
10538	(simple_return_indirect_internal): Call
10539	ix86_output_indirect_function_return instead of
10540	ix86_output_indirect_jmp.
10541
105422018-02-26  Jakub Jelinek  <jakub@redhat.com>
10543
10544	PR bootstrap/84405
10545	* vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use
10546	memset and value initialization afterwards.
10547
105482018-02-26  Christophe Lyon  <christophe.lyon@linaro.org>
10549
10550	* Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS.
10551
105522018-02-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10553
10554	PR target/84521
10555	* common/config/aarch64/aarch64-common.c
10556	(aarch_option_optimization_table[]): Switch
10557	off fomit-frame-pointer
10558
105592018-02-26  Kito Cheng  <kito.cheng@gmail.com>
10560	    Chung-Ju Wu  <jasonwucj@gmail.com>
10561
10562	* config/nds32/nds32-multiple.md (load_multiple): Disallow
10563	volatile memory.
10564	(store_multiple): Ditto.
10565
105662018-02-26  Kito Cheng  <kito.cheng@gmail.com>
10567
10568	* config.gcc: Add --with-cpu support for nds32 target.
10569	* config/nds32/nds32-opts.h (nds32_cpu_type): New.
10570	* config/nds32/nds32.opt: Add -mcpu= option.
10571
105722018-02-25  Segher Boessenkool  <segher@kernel.crashing.org>
10573
10574	* config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no,
10575	isel=yes): Warn for these deprecated options.
10576
105772018-02-23  David Edelsohn  <dje.gcc@gmail.com>
10578
10579	* config/rs6000/aix71.h (TARGET_DEFAULT): Change to
10580	ISA_2_5_MASKS_EMBEDDED.
10581
105822018-02-23  Jakub Jelinek  <jakub@redhat.com>
10583
10584	* ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and
10585	p->max as pointers rather than using iterative_hash_expr.
10586
105872018-02-23  Carl Love  <cel@us.ibm.com>
10588
10589	* config/rs6000/rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2
10590	macro expansions from BU_VSX_2 to BU_P8V_VSX_2 and BU_VSX_OVERLOAD_2 to
10591	BU_P8V_OVERLOAD_2.
10592	* config/rs6000/rs6000-c.c: Change VSX_BUILTIN_VEC_VSIGNED2 to
10593	P8V_BUILTIN_VEC_VSIGNED2.  Change VSX_BUILTIN_VEC_VUNSIGNED2 to
10594	P8V_BUILTIN_VEC_VUNSIGNED2.
10595
105962018-02-22  Vladimir Makarov  <vmakarov@redhat.com>
10597
10598	PR target/81572
10599	* lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros.
10600	* lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use
10601	LRA_UNKNOWN_ALT.
10602	* lra-constraints.c (curr_insn_transform): Set up
10603	LRA_NON_CLOBBERED_ALT for moves processed on the fast path.  Use
10604	LRA_UNKNOWN_ALT.
10605	(remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT.
10606	* lra-eliminations.c (spill_pseudos): Ditto.
10607	(process_insn_for_elimination): Ditto.
10608	* lra-lives.c (reg_early_clobber_p): Use the new macros.
10609	* lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and
10610	LRA_NON_CLOBBERED_ALT.
10611
106122018-02-22  Martin Sebor  <msebor@redhat.com>
10613
10614	PR tree-optimization/84480
10615	* gimple-fold.c (gimple_fold_builtin_strcpy): Move warnings
10616	to maybe_diag_stxncpy_trunc.  Call it.
10617	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Integrate warnings
10618	from gimple_fold_builtin_strcpy.  Print inlining stack.
10619	(handle_builtin_stxncpy): Print inlining stack.
10620	* tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Declare.
10621
106222018-02-22  H.J. Lu  <hongjiu.lu@intel.com>
10623
10624	PR target/84176
10625	* config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
10626	error when -mindirect-branch=thunk-extern, -fcf-protection=branch
10627	and -fcheck-pointer-bounds are used together.
10628	(indirect_thunk_prefix): New enum.
10629	(indirect_thunk_need_prefix): New function.
10630	(indirect_thunk_name): Replace need_bnd_p with need_prefix.  Use
10631	"_nt" instead of "_bnd" for NOTRACK prefix.
10632	(output_indirect_thunk): Replace need_bnd_p with need_prefix.
10633	(output_indirect_thunk_function): Likewise.
10634	(): Likewise.
10635	(ix86_code_end): Update output_indirect_thunk_function calls.
10636	(ix86_output_indirect_branch_via_reg): Replace
10637	ix86_bnd_prefixed_insn_p with indirect_thunk_need_prefix.
10638	(ix86_output_indirect_branch_via_push): Likewise.
10639	(ix86_output_function_return): Likewise.
10640	* doc/invoke.texi: Document -mindirect-branch=thunk-extern is
10641	incompatible with -fcf-protection=branch and
10642	-fcheck-pointer-bounds.
10643
106442018-02-22  Steve Ellcey  <sellcey@cavium.com>
10645
10646	PR target/83335
10647	* config/aarch64/aarch64.c (aarch64_print_address_internal):
10648	Change gcc_assert call to output_operand_lossage.
10649
106502018-02-22  Steve Ellcey  <sellcey@cavium.com>
10651
10652	* doc/extend.texi (__builtin_extend_pointer): Document builtin.
10653
106542018-02-22  DJ Delorie  <dj@redhat.com>
10655	    Sebastian Perta  <sebastian.perta@renesas.com>
10656	    Oleg Endo  <olegendo@gcc.gnu.org>
10657
10658	* config/rx/rx.c (rx_rtx_costs): New function.
10659	(TARGET_RTX_COSTS): Override to use rx_rtx_costs.
10660
106612018-02-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10662
10663	* config/arm/t-multilib: Map Armv8-R to Armv7 multilibs.
10664
106652018-02-22  Martin Liska  <mliska@suse.cz>
10666
10667	PR driver/83193
10668	* common/config/arm/arm-common.c (arm_print_hint_for_cpu_option):
10669	Add "native" as a possible value.
10670
106712018-02-22  Martin Liska  <mliska@suse.cz>
10672
10673	PR driver/83193
10674	* config/i386/i386.c (ix86_option_override_internal):
10675	Add "native" as a possible value for -march and -mtune.
10676
106772018-02-22  Jakub Jelinek  <jakub@redhat.com>
10678
10679	PR target/84502
10680	* stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag
10681	to all type variants.
10682
10683	PR tree-optimization/84503
10684	* gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute
10685	width as info->bitpos + info->bitsize - start.
10686	(merged_store_group::merge_overlapping): Simplify width computation.
10687	(check_no_overlap): New function.
10688	(imm_store_chain_info::try_coalesce_bswap): Compute expected
10689	start + width and last_order of the group, fail if check_no_overlap
10690	fails.
10691	(imm_store_chain_info::coalesce_immediate_stores): Don't merge info
10692	to group if check_no_overlap fails.
10693
106942018-02-21  Segher Boessenkool  <segher@kernel.crashing.org>
10695
10696	* config/rs6000/altivec.md: Delete contraint arguments to
10697	define_expand, define_split, and define_peephole2, and in
10698	define_insn_and_split if always unused.
10699	* config/rs6000/darwin.md: Ditto.
10700	* config/rs6000/dfp.md: Ditto.
10701	* config/rs6000/rs6000.md: Ditto.
10702	* config/rs6000/sync.md: Ditto.
10703	* config/rs6000/vector.md: Ditto.
10704	* config/rs6000/vsx.md: Ditto.
10705
107062018-02-21  Segher Boessenkool  <segher@kernel.crashing.org>
10707
10708	* config/rs6000/altivec.md: Write output control strings as braced
10709	blocks instead of double-quoted strings.
10710	* config/rs6000/darwin.md: Ditto.
10711	* config/rs6000/rs6000.md: Ditto.
10712	* config/rs6000/vector.md: Ditto.
10713	* config/rs6000/vsx.md: Ditto.
10714
107152018-02-21  Jason Merrill  <jason@redhat.com>
10716
10717	PR c++/84314 - ICE with templates and fastcall attribute.
10718	* attribs.c (build_type_attribute_qual_variant): Remove assert.
10719
107202018-02-21  Jan Hubicka  <hubicka@ucw.cz>
10721
10722	* ipa-cp.c (determine_versionability): Fix comment typos.
10723
107242018-02-21  Jan Hubicka  <hubicka@ucw.cz>
10725
10726	PR c/84229
10727	* ipa-cp.c (determine_versionability): Do not version functions caling
10728	va_arg_pack.
10729
107302018-02-21  Martin Liska  <mliska@suse.cz>
10731
10732	PR driver/83193
10733	* config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
10734	Add "native" as a possible value.
10735	* config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT):  Define
10736	the macro when native cpu detection is available.
10737
107382018-02-21  Martin Liska  <mliska@suse.cz>
10739
10740	PR driver/83193
10741	* common/config/arm/arm-common.c (arm_print_hint_for_arch_option):
10742	Add "native" as a possible value.
10743	* config/arm/arm.h (HAVE_LOCAL_CPU_DETECT): Define the macro
10744	when native cpu detection is available.
10745
107462018-02-21  Jakub Jelinek  <jakub@redhat.com>
10747	    Martin Sebor  <msebor@redhat.com>
10748
10749	PR tree-optimization/84478
10750	* gimple-fold.h (get_range_strlen): Add a bool argument defaulted to
10751	false.
10752	* gimple-fold.c (get_range_strlen): Make minlen const and assume it
10753	can't be NULL.  Change FUZZY from bool to int, for 1 add PHI/COND_EXPR
10754	support which is conservatively correct, for 2 only stay conservative
10755	for maxlen.  Formatting and comment capitalization fixes.  Add STRICT
10756	argument to the 2 argument get_range_strlen, adjust 6 arg
10757	get_range_strlen caller and clear minmaxlen[0] and [1] if it returned
10758	false.
10759	(get_maxval_strlen): Adjust 6 arg get_range_strlen caller.
10760	(gimple_fold_builtin_strlen): Pass true as last argument to
10761	get_range_strlen.
10762
107632018-02-20  Martin Sebor  <msebor@redhat.com>
10764
10765	PR middle-end/84095
10766	* gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): New.
10767	(builtin_memref::set_base_and_offset): Same.  Handle inner references.
10768	(builtin_memref::builtin_memref): Factor out parts into
10769	set_base_and_offset and call it.
10770
107712018-02-20  Richard Sandiford  <richard.sandiford@linaro.org>
10772
10773	PR middle-end/84406
10774	* optabs-query.c (find_widening_optab_handler_and_mode): If from_mode
10775	is a scalar_int_mode, assert that to_mode is a scalar_int_mode with
10776	greater precision.  If to_mode is a MODE_PARTIAL_INT, stop the
10777	search at the associated MODE_INT.
10778
107792018-02-20  Jeff Law  <law@redhat.com>
10780
10781	PR middle-end/82123
10782	PR tree-optimization/81592
10783	PR middle-end/79257
10784	* gimple-ssa-sprintf.c (format_integer): Query EVRP range analyzer
10785	for range data rather than using global data.
10786	* gimple-ssa-sprintf.c (get_int_range): Query EVRP range analyzer for
10787	range data rather than using global data.
10788	* gimple-ssa-sprintf.c (get_int_range): Accept vr_values parameter
10789	pass it to children as needed.
10790	(struct directive::fmtresult): Similarly.
10791	(struct directive::set_width): Similarly.
10792	(struct directive::set_precision): Similarly.
10793	(format_integer, format_directive, parse_directive): Similarly.
10794	(format_none): Accept unnamed vr_values parameter.
10795	(format_percent, format_floating, format_character): Similarly.
10796	(format_string, format_plain): Similarly.
10797	* gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Query
10798	the EVRP range analyzer for range data rather than using global data.
10799	* gimple-ssa-sprintf.c: Include alloc-pool.h, vr-values.h and
10800	gimple-ssa-evrp-analyze.h
10801	(class sprintf_dom_walker): Add after_dom_children member function.
10802	Add evrp_range_analyzer member.
10803	(sprintf_dom_walker::before_dom_children): Call into the EVRP
10804	range analyzer as needed.
10805	(sprintf_dom_walker::after_dom_children): New member function.
10806	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing
10807	if not optimizing.
10808	(evrp_range_analyzer::record_ranges_from_stmt): Likewise.
10809	(evrp_range_analyzer::pop_to_marker): Likewise.
10810
108112018-02-20  Richard Sandiford  <richard.sandiford@linaro.org>
10812
10813	PR tree-optimization/84419
10814	* internal-fn.c (expand_call_mem_ref): Create a TARGET_MEM_REF
10815	with the required type if its current type is compatible but
10816	different.
10817
108182018-02-20  Jakub Jelinek  <jakub@redhat.com>
10819
10820	PR middle-end/82004
10821	* match.pd (pow(C,x) -> exp(log(C)*x)): Delay all folding until
10822	after vectorization.
10823
108242018-02-20  Martin Liska  <mliska@suse.cz>
10825
10826	PR driver/83193
10827	* config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): Print
10828	possible values if we don't have a hint.
10829
108302018-02-20  Martin Liska  <mliska@suse.cz>
10831
10832	PR c/84310
10833	PR target/79747
10834	* final.c (shorten_branches): Build align_tab array with one
10835	more element.
10836	* opts.c (finish_options): Add alignment option limit check.
10837	(MAX_CODE_ALIGN): Likewise.
10838	(MAX_CODE_ALIGN_VALUE): Likewise.
10839	* doc/invoke.texi: Document maximum allowed option value for
10840	all -falign-* options.
10841
108422018-02-19  Jakub Jelinek  <jakub@redhat.com>
10843
10844	PR target/84146
10845	* reg-notes.def (REG_CALL_ARG_LOCATION): New reg note.
10846	* insn-notes.def (NOTE_INSN_CALL_ARG_LOCATION): Remove.
10847	* var-tracking.c (emit_note_insn_var_location): Remove all references
10848	to NOTE_INSN_CALL_ARG_LOCATION.
10849	(emit_notes_in_bb): Emit arguments as REG_CALL_ARG_LOCATION note on
10850	the CALL_INSN rather than separate NOTE_INSN_CALL_ARG_LOCATION note.
10851	Use copy_rtx_if_shared.
10852	* dwarf2out.c (gen_subprogram_die): Use XEXP with 0 instead of
10853	NOTE_VAR_LOCATION on ca_loc->call_arg_loc_note.
10854	(dwarf2out_var_location): Remove handling of
10855	NOTE_INSN_CALL_ARG_LOCATION, instead handle REG_CALL_ARG_LOCATION note
10856	on call_insn.
10857	* final.c (final_scan_insn): Remove all references to
10858	NOTE_INSN_CALL_ARG_LOCATION.
10859	(rest_of_clean_state): Likewise.  Remove REG_CALL_ARG_LOCATION notes
10860	before dumping final insns.
10861	* except.c (emit_note_eh_region_end): Remove all references to
10862	NOTE_INSN_CALL_ARG_LOCATION.
10863	* config/alpha/alpha.c (alpha_pad_function_end): Likewise.
10864	* config/c6x/c6x.c (c6x_gen_bundles): Likewise.
10865	* config/arc/arc.c (hwloop_optimize): Likewise.
10866	* config/arm/arm.c (create_fix_barrier): Likewise.
10867	* config/s390/s390.c (s390_chunkify_start): Likewise.
10868	* config/sh/sh.c (find_barrier): Likewise.
10869	* config/i386/i386.c (rest_of_insert_endbranch,
10870	ix86_seh_fixup_eh_fallthru): Likewise.
10871	* config/xtensa/xtensa.c (hwloop_optimize): Likewise.
10872	* config/iq2000/iq2000.c (final_prescan_insn): Likewise.
10873	* config/frv/frv.c (frv_function_prologue): Likewise.
10874	* emit-rtl.c (try_split): Likewise.  Copy over REG_CALL_ARG_LOCATION
10875	reg note.
10876	(note_outside_basic_block_p): Remove all references to
10877	NOTE_INSN_CALL_ARG_LOCATION.
10878	* gengtype.c (adjust_field_rtx_def): Likewise.
10879	* print-rtl.c (rtx_writer::print_rtx_operand_code_0, print_insn):
10880	Likewise.
10881	* jump.c (cleanup_barriers, delete_related_insns): Likewise.
10882	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
10883
10884	PR c++/84444
10885	* builtins.c (builtin_mathfn_code): Don't check if CALL_EXPR_FN (t)
10886	is ADDR_EXPR.
10887
10888	PR tree-optimization/84452
10889	* tree-vect-patterns.c (vect_recog_pow_pattern): Don't call
10890	expand_simd_clones if targetm.simd_clone.compute_vecsize_and_simdlen
10891	is NULL.
10892
108932018-02-19  Martin Liska  <mliska@suse.cz>
10894
10895	PR sanitizer/82183
10896	* passes.def: Put pass_sancov_O0 before pass_lower_switch with -O0.
10897
108982018-02-19  Martin Liska  <mliska@suse.cz>
10899	    Richard Sandiford  <richard.sandiford@linaro.org>
10900
10901	PR tree-optimization/82491
10902	* gimple-fold.c (get_base_constructor): Make earlier bail out
10903	to prevent ubsan.
10904
109052018-02-19  Carl Love  <cel@us.ibm.com>
10906
10907	* config/rs6000/rs6000-builtin.def: Change NEG macro expansions from
10908	BU_ALTIVEC_A to BU_P8V_AV_1 and BU_ALTIVEC_OVERLOAD_1 to
10909	BU_P8V_OVERLOAD_1.
10910	* config/rs6000/rs6000-c.c: Change ALTIVEC_BUILTIN_VEC_NEG to
10911	P8V_BUILTIN_VEC_NEG.
10912
109132018-02-19  Sebastian Perta  <sebastian.perta@renesas.com>
10914
10915	* config/rl78/rl78.md (movdf): New define expand.
10916
109172018-02-19  Martin Liska  <mliska@suse.cz>
10918
10919	PR other/80589
10920	* doc/invoke.texi: Fix typo.
10921	* params.def (PARAM_MAX_LOOP_HEADER_INSNS): Likewise.
10922
109232018-02-18  Segher Boessenkool  <segher@kernel.crashing.org>
10924
10925	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10926	handle rs6000_single_float and rs6000_double_float specially for
10927	e500 family CPUs.
10928
109292018-02-16  Jeff Law  <law@redhat.com>
10930
10931	* config/rx/rx.c (add_pop_cfi_notes): New function.;
10932	(pop_regs): Use it.
10933
109342018-02-16  Jakub Jelinek  <jakub@redhat.com>
10935
10936	PR ipa/84425
10937	* ipa-inline.c (inline_small_functions): Fix a typo.
10938
109392018-02-16  Nathan Sidwell  <nathan@acm.org>
10940
10941	* doc/extend.texi (Backwards Compatibility): Americanize 'behaviour'.
10942
109432018-02-16  Carl Love  <cel@us.ibm.com>
10944
10945	* config/rs6000/rs6000-builtin.def: Add BU_P8V_VSX_2 macro definition.
10946	Change FLOAT2 expansions from BU_VSX_2 to BU_P8V_VSX_2 and
10947	from BU_VSX_OVERLOAD_2 to BU_P8V_OVERLOAD_2.
10948	* config/rs6000/rs6000-c.c: Changed macro VSX_BUILTIN_VEC_FLOAT2
10949	expansion to P8V_BUILTIN_VEC_FLOAT2.
10950
109512018-02-16  Vladimir Makarov  <vmakarov@redhat.com>
10952
10953	PR rtl-optimization/70023
10954	* lra-constraints.c (inherit_in_ebb): Take hard reg mode of
10955	src_regno into account.
10956
109572018-02-16  Carl Love  <cel@us.ibm.com>
10958
10959	* config/rs6000/altivec.h: Remove vec_vextract4b and vec_vinsert4b.
10960	* config/rs6000/rs6000-builtin.def: Remove macro expansion for
10961	VEXTRACT4B, VINSERT4B, VINSERT4B_DI and VEXTRACT4B.
10962	* config/rs6000/rs6000.c: Remove case statements for
10963	P9V_BUILTIN_VEXTRACT4B, P9V_BUILTIN_VEC_VEXTRACT4B,
10964	P9V_BUILTIN_VINSERT4B, P9V_BUILTIN_VINSERT4B_DI,
10965	and P9V_BUILTIN_VEC_VINSERT4B.
10966	* config/rs6000/rs6000-c.c (altivec_expand_builtin): Remove entries for
10967	P9V_BUILTIN_VEC_VEXTRACT4B and P9V_BUILTIN_VEC_VINSERT4B.
10968	* config/rs6000/vsx.md:
10969	* doc/extend.texi: Remove vec_vextract4b, non ABI definitions for
10970	vec_insert4b.
10971
109722018-02-16  Carl Love  <cel@us.ibm.com>
10973
10974	* config/rs6000/altivec.h: Add builtin names vec_extract4b
10975	vec_insert4b.
10976	* config/rs6000/rs6000-builtin.def: Add INSERT4B and EXTRACT4B
10977	definitions.
10978	* config/rs6000/rs6000-c.c: Add the definitions for
10979	P9V_BUILTIN_VEC_EXTRACT4B and P9V_BUILTIN_VEC_INSERT4B.
10980	* config/rs6000/rs6000.c (altivec_expand_builtin): Add
10981	P9V_BUILTIN_EXTRACT4B and P9V_BUILTIN_INSERT4B case statements.
10982	* config/rs6000/vsx.md: Add define_insn extract4b.  Add define_expand
10983	definition for insert4b and define insn *insert3b_internal.
10984	* doc/extend.texi: Add documentation for vec_extract4b.
10985
109862018-02-16  Nathan Sidwell  <nathan@acm.org>
10987
10988	* doc/extend.texi (Backwards Compatibility): Mention friend
10989	injection.  Note for-scope is deprecated.
10990	* doc/invoke.texi (-ffriend-injection): Deprecate.
10991
109922018-02-16  Segher Boessenkool  <segher@kernel.crashing.org>
10993
10994	* combine.c (try_combine): When adjusting LOG_LINKS for the destination
10995	that moved to I2, also allow destinations that are a paradoxical
10996	subreg (instead of a normal reg).
10997
109982018-02-16  Oleg Endo  <olegendo@gcc.gnu.org>
10999
11000	PR target/83831
11001	* config/rx/rx.c (rx_fuse_in_memory_bitop): Convert shift operand
11002	to QImode.
11003
110042018-02-16  Richard Biener  <rguenther@suse.de>
11005
11006	PR tree-optimization/84037
11007	PR tree-optimization/84016
11008	PR target/82862
11009	* config/i386/i386.c (ix86_builtin_vectorization_cost):
11010	Adjust vec_construct for the fact we need additional higher latency
11011	128bit inserts for AVX256 and AVX512 vector builds.
11012	(ix86_add_stmt_cost): Scale vector construction cost for
11013	elementwise loads.
11014
110152018-02-16  Richard Biener  <rguenther@suse.de>
11016
11017	PR tree-optimization/84417
11018	* tree-ssa.c (non_rewritable_mem_ref_base): Properly constrain
11019	the MEM_REF offset when conversion to BIT_FIELD_REF is desired.
11020	(non_rewritable_lvalue_p): Likewise, use poly-ints.
11021
110222018-02-16  Martin Liska  <mliska@suse.cz>
11023
11024	PR sanitizer/84307
11025	* internal-fn.def (ASAN_CHECK): Set proper flags.
11026	(ASAN_MARK): Likewise.
11027
110282018-02-16  Julia Koval  <julia.koval@intel.com>
11029
11030	* config/i386/i386.c (ix86_option_override_internal): Remove PTA_CLWB
11031	from PTA_CANNONLAKE.
11032
110332018-02-16  Jakub Jelinek  <jakub@redhat.com>
11034
11035	PR target/84272
11036	* config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest):
11037	Use ++iter rather than iter++ for std::list iterators.
11038	(func_fma_steering::dfs): Likewise.  Don't delete nodes right away,
11039	defer deleting them until all nodes in the forest are processed.  Do
11040	free even leaf nodes.  Change to_process into auto_vec.
11041
11042	PR bootstrap/84405
11043	* system.h (BROKEN_VALUE_INITIALIZATION): Define for GCC < 4.3.
11044	* vec.h (vec_default_construct): Use memset instead of placement new
11045	if BROKEN_VALUE_INITIALIZATION is defined.
11046	* hash-table.h (hash_table<Descriptor, Allocator>::empty_slow): Use
11047	memset instead of value initialization if BROKEN_VALUE_INITIALIZATION
11048	is defined.
11049
11050	PR rtl-optimization/83723
11051	* lra-int.h (lra_substitute_pseudo): Add DEBUG_P argument.
11052	* lra.c (lra_substitute_pseudo): Likewise.  If true, use
11053	gen_rtx_raw_SUBREG instead of gen_rtx_SUBREG.  Pass DEBUG_P to
11054	recursive calls.
11055	(lra_substitute_pseudo_within_insn): Adjust lra_substitute_pseudo
11056	callers.
11057	* lra-constraints.c (inherit_reload_reg, split_reg): Likewise.
11058
110592018-02-16  Eric Botcazou  <ebotcazou@adacore.com>
11060
11061	PR rtl-optimization/81443
11062	* rtlanal.c (num_sign_bit_copies1) <SUBREG>: Do not propagate results
11063	from inner REGs to paradoxical SUBREGs.
11064
110652018-02-16  Richard Biener  <rguenther@suse.de>
11066
11067	PR tree-optimization/84399
11068	* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
11069	For operands we can analyze at their definition make sure we can
11070	analyze them at each use as well.
11071
110722018-02-16  Richard Biener  <rguenther@suse.de>
11073
11074	PR tree-optimization/84190
11075	* tree-ssa.c (non_rewritable_mem_ref_base): Do not touch
11076	volatile accesses if the decl isn't volatile.
11077
110782018-02-15  Jason Merrill  <jason@redhat.com>
11079
11080	PR c++/84314 - ICE with templates and fastcall attribute.
11081	* attribs.c (build_type_attribute_qual_variant): Don't clobber
11082	TYPE_CANONICAL on an existing type.
11083
110842018-02-15  Jakub Jelinek  <jakub@redhat.com>
11085
11086	PR tree-optimization/84383
11087	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Don't look at
11088	dstoff nor call operand_equal_p if dstbase is NULL.
11089
11090	PR tree-optimization/84334
11091	* match.pd ((A +- CST1) +- CST2 -> A + CST3): If A is
11092	also a CONSTANT_CLASS_P, punt.
11093
110942018-02-14  Jim Wilson  <jimw@sifive.com>
11095
11096	* config/riscv/riscv.c (riscv_first_stack_step): Move locals after
11097	first SMALL_OPERAND check.  New local min_second_step.  Move assert
11098	to where locals are set.  Add TARGET_RVC support.
11099	* config/riscv/riscv.h (C_SxSP_BITS, SWSP_REACH, SDSP_REACH): New.
11100
111012018-02-14  Indu Bhagat  <indu.bhagat@oracle.com>
11102
11103	* doc/invoke.texi: Correct -Wformat-overflow code sample.
11104
111052018-02-14  Martin Sebor  <msebor@redhat.com>
11106
11107	PR tree-optimization/83698
11108	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For
11109	arrays constrain the offset range to their bounds.
11110	(builtin_access::strcat_overlap): Adjust the bounds of overlap offset.
11111	(builtin_access::overlap): Avoid setting the size of overlap if it's
11112	already been set.
11113	(maybe_diag_overlap): Also consider arrays when deciding what values
11114	of offsets to include in diagnostics.
11115
111162018-02-14  Martin Sebor  <msebor@redhat.com>
11117
11118	PR c/84108
11119	* attribs.c (diag_attr_exclusions): Consider the exclusion(s)
11120	that correspond to the kind of a declaration.
11121
111222018-02-14  John David Anglin  <danglin@gcc.gnu.org>
11123
11124	PR target/83984
11125	* config/pa/pa.md: Load address of PIC label using the linkage table
11126	if the label is nonlocal.
11127
111282018-02-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11129
11130	* config/rs6000/rs6000.c (rs6000_option_override_internal): Issue
11131	warning message if user requests -maltivec=be.
11132	* doc/invoke.texi: Document deprecation of -maltivec=be.
11133
111342018-02-14  Will Schmidt  <will_schmidt@vnet.ibm.com>
11135
11136	PR target/84220
11137	* config/rs6000/rs6000-c.c: Update definitions for
11138	ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SLDW,
11139	VEC_XXSLDWI and ALTIVEC_BUILTIN_VEC_XXPERMDI builtins.
11140
111412018-02-14  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
11142
11143	PR target/84239
11144	* config/i386/cetintrin.h: Remove _rdssp[d|q] and
11145	add _get_ssp intrinsics. Remove argument from
11146	__builtin_ia32_rdssp[d|q].
11147	* config/i386/i386-builtin-types.def: Add UINT_FTYPE_VOID.
11148	* config/i386/i386-builtin.def: Remove argument from
11149	__builtin_ia32_rdssp[d|q].
11150	* config/i386/i386.c: Use UINT_FTYPE_VOID. Use
11151	ix86_expand_special_args_builtin for _rdssp[d|q].
11152	* config/i386/i386.md: Remove argument from rdssp[si|di] insn.
11153	Clear register before usage.
11154	* doc/extend.texi: Remove argument from __builtin_ia32_rdssp[d|q].
11155	Add documentation for new _get_ssp and _inc_ssp intrinsics.
11156
111572018-02-14  Richard Sandiford  <richard.sandiford@linaro.org>
11158
11159	PR tree-optimization/84357
11160	* tree-data-ref.c (object_address_invariant_in_loop_p): Check
11161	operand 1 of an ARRAY_REF too.
11162
111632018-02-14  Oleg Endo  <olegendo@gcc.gnu.org>
11164
11165	PR target/83831
11166	* config/rx/rx-protos.h (rx_reg_dead_or_unused_after_insn,
11167	rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New
11168	declarations.
11169	(set_of_reg): New struct.
11170	(rx_find_set_of_reg, rx_find_use_of_reg): New functions.
11171	* config/rx/rx.c (rx_reg_dead_or_unused_after_insn,
11172	rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New
11173	functions.
11174	* config/rx/rx.md (andsi3, iorsi3, xorsi3): Convert to insn_and_split.
11175	Split into bitclr, bitset, bitinvert patterns if appropriate.
11176	(*bitset, *bitinvert, *bitclr): Convert to named insn_and_split and
11177	use rx_fuse_in_memory_bitop.
11178	(*bitset_in_memory, *bitinvert_in_memory, *bitclr_in_memory): Convert
11179	to named insn, correct maximum insn length.
11180
111812018-02-14  Jozef Lawrynowicz  <jozefl.gcc@gmail.com>
11182
11183	PR target/79242
11184	* machmode.def: Define a complex mode for PARTIAL_INT.
11185	* genmodes.c (complex_class): Return MODE_COMPLEX_INT for
11186	MODE_PARTIAL_INT.
11187	* doc/rtl.texi: Document CSPImode.
11188	* config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode
11189	handling.
11190	(msp430_hard_regno_nregs_with_padding): Likewise.
11191
111922018-02-13  Peter Bergner  <bergner@vnet.ibm.com>
11193
11194	PR target/84279
11195	* config/rs6000/rs6000.c (mem_operand_gpr): Disallow altivec addresses.
11196
111972018-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
11198
11199	PR rtl-optimization/84169
11200	* combine.c (try_combine): New variable split_i2i3.  Set it to true if
11201	we generated a parallel as new i3 and we split that to new i2 and i3
11202	instructions.  Handle split_i2i3 similar to swap_i2i3: scan the
11203	LOG_LINKs of i3 to see which of those need to link to i2 now.  Link
11204	those to i2, not i1.  Partially rewrite this scan code.
11205
112062018-02-13  Jakub Jelinek  <jakub@redhat.com>
11207
11208	PR c/82210
11209	* stor-layout.c (place_field): For variable length fields, adjust
11210	offset_align afterwards not just based on the field's alignment,
11211	but also on the size.
11212
11213	PR middle-end/84309
11214	* match.pd (pow(C,x) -> exp(log(C)*x)): Use exp2s and log2s instead
11215	of exps and logs in the use_exp2 case.
11216
112172018-02-13  Jeff Law  <law@redhat.com>
11218
11219	* config/rl/rl78.c (rl78_attribute_table): Fix terminator and
11220	entry for "vector".
11221
11222	* config/rl78/rl78.c (rl78_handle_func_attribute): Mark
11223	ARGS as unused.
11224
112252018-02-13  Alexandre Oliva  <aoliva@redhat.com>
11226
11227	PR debug/84342
11228	PR debug/84319
11229	* common.opt (gas-loc-support, gas-locview-support): New.
11230	(ginline-points, ginternal-reset-location-views): New.
11231	* doc/invoke.texi: Document them.  Use @itemx where intended.
11232	(gvariable-location-views): Adjust.
11233	* target.def (reset_location_view): New.
11234	* doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New.
11235	(TARGET_RESET_LOCATION_VIEW): New.
11236	* doc/tm.texi: Rebuilt.
11237	* dwarf2out.c (dwarf2out_default_as_loc_support): New.
11238	(dwarf2out_default_as_locview_support): New.
11239	(output_asm_line_debug_info): Use option variables.
11240	(dwarf2out_maybe_output_loclist_view_pair): Likewise.
11241	(output_loc_list): Likewise.
11242	(add_high_low_attributes): Check option variables.
11243	Don't output entry view attribute in strict mode.
11244	(gen_inlined_subroutine_die): Check option variables.
11245	(dwarf2out_inline_entry): Likewise.
11246	(init_sections_and_labels): Likewise.
11247	(dwarf2out_early_finish): Likewise.
11248	(maybe_reset_location_view): New, from...
11249	(dwarf2out_var_location): ... here.  Call it.
11250	* debug.h (dwarf2out_default_as_loc_support): Declare.
11251	(dwarf2out_default_as_locview_support): Declare.
11252	* hooks.c (hook_int_rtx_insn_0): New.
11253	* hooks.h (hook_int_rtx_insn_0): Declare.
11254	* toplev.c (process_options): Take -gas-loc-support and
11255	-gas-locview-support from dwarf2out.  Enable
11256	-gvariable-location-views by default only with locview
11257	assembler support.  Enable -ginternal-reset-location-views by
11258	default only if the target defines the corresponding hook.
11259	Enable -ginline-points by default if location views are
11260	enabled; force it disabled if statement frontiers are
11261	disabled.
11262	* tree-inline.c (expand_call_inline): Check option variables.
11263	* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
11264
112652018-02-13  Richard Sandiford  <richard.sandiford@linaro.org>
11266
11267	PR tree-optimization/84321
11268	* tree-vrp.c (intersect_range_with_nonzero_bits): Fix VR_ANTI_RANGE
11269	handling.  Also check whether the anti-range contains any values
11270	that satisfy the mask; switch to a VR_RANGE if not.
11271
112722018-02-13  Paolo Bonzini  <bonzini@gnu.org>
11273
11274	PR sanitizer/84340
11275	* internal-fn.def (ASAN_CHECK, ASAN_MARK): Revert changes to fnspec.
11276
112772018-02-13  Martin Jambor  <mjambor@suse.cz>
11278
11279	PR c++/83990
11280	* ipa-param-manipulation.c (ipa_modify_call_arguments): Use location
11281	of call statements, also set location of a load to a temporary.
11282
112832018-02-13  Sebastian Perta  <sebastian.perta@renesas.com>
11284
11285	* config/rl78/rl78.c (add_vector_labels): New function.
11286	* config/rl78/rl78.c (rl78_handle_vector_attribute): New function.
11287	* config/rl78/rl78.c (rl78_start_function): Call add_vector_labels.
11288	* config/rl78/rl78.c (rl78_handle_func_attribute): Removed the assert
11289	which checks that no arguments are passed.
11290	* config/rl78/rl78.c (rl78_attribute_table): Add "vector" attribute.
11291	* doc/extend.texi: Documentation for the new attribute.
11292
112932018-02-13  Andreas Schwab  <schwab@suse.de>
11294
11295	* config/riscv/linux.h (CPP_SPEC): Define.
11296
112972018-02-13  Jakub Jelinek  <jakub@redhat.com>
11298
11299	PR target/84335
11300	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Pass
11301	OPTION_MASK_ISA_AES | OPTION_MASK_ISA_SSE2 instead of
11302	OPTION_MASK_ISA_AES as first argument to def_builtin_const
11303	for AES builtins.  Pass OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2
11304	instead of OPTION_MASK_ISA_PCLMUL as first argument to
11305	def_builtin_const for __builtin_ia32_pclmulqdq128 builtin.
11306	* config/i386/wmmintrin.h: If __SSE2__ is not defined, enable it
11307	temporarily for AES and PCLMUL builtins.
11308
11309	PR tree-optimization/84339
11310	* gimple-fold.c (get_range_strlen): Set *FLEXP to true when handling
11311	ARRAY_REF where first operand is array_at_struct_end_p COMPONENT_REF.
11312	Formatting fixes.
11313
11314	PR middle-end/84309
11315	* match.pd (pow(C,x) -> exp(log(C)*x)): Optimize instead into
11316	exp2(log2(C)*x) if C is a power of 2 and c99 runtime is available.
11317	* generic-match-head.c (canonicalize_math_after_vectorization_p): New
11318	inline function.
11319	* gimple-match-head.c (canonicalize_math_after_vectorization_p): New
11320	inline function.
11321	* omp-simd-clone.h: New file.
11322	* omp-simd-clone.c: Include omp-simd-clone.h.
11323	(expand_simd_clones): No longer static.
11324	* tree-vect-patterns.c: Include fold-const-call.h, attribs.h,
11325	cgraph.h and omp-simd-clone.h.
11326	(vect_recog_pow_pattern): Optimize pow(C,x) to exp(log(C)*x).
11327	(vect_recog_widen_shift_pattern): Formatting fix.
11328	(vect_pattern_recog_1): Don't check optab for calls.
11329
11330	PR target/84336
11331	* config/i386/sse.md (<avx512>_vpermi2var<mode>3_mask): Force
11332	operands[2] into a REG before using gen_lowpart on it.
11333
113342018-02-12  Jeff Law  <law@redhat.com>
11335
11336	PR target/83760
11337	* config/sh/sh.c (find_barrier): Consider a sibling call
11338	a barrier as well.
11339
11340	* cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when
11341	successfully back substituting a reg.
11342
113432018-02-12  Richard Biener  <rguenther@suse.de>
11344
11345	PR tree-optimization/84037
11346	* tree-vect-slp.c (vect_analyze_slp_cost): Add visited
11347	parameter, move visited init to caller.
11348	(vect_slp_analyze_operations): Separate cost from validity
11349	check, initialize visited once for all instances.
11350	(vect_schedule_slp): Analyze map to CSE vectorized nodes once
11351	for all instances.
11352	* tree-vect-stmts.c (vect_model_simple_cost): Make early
11353	out an assert.
11354	(vect_model_promotion_demotion_cost): Likewise.
11355	(vectorizable_bswap): Guard cost modeling with !slp_node
11356	instead of !PURE_SLP_STMT to avoid double-counting on hybrid
11357	SLP stmts.
11358	(vectorizable_call): Likewise.
11359	(vectorizable_conversion): Likewise.
11360	(vectorizable_assignment): Likewise.
11361	(vectorizable_shift): Likewise.
11362	(vectorizable_operation): Likewise.
11363	(vectorizable_store): Likewise.
11364	(vectorizable_load): Likewise.
11365	(vectorizable_condition): Likewise.
11366	(vectorizable_comparison): Likewise.
11367
113682018-02-12  Paolo Bonzini  <bonzini@gnu.org>
11369
11370	PR sanitizer/84307
11371	* internal-fn.def (ASAN_CHECK): Fix fnspec to account for return value.
11372	(ASAN_MARK): Fix fnspec to account for return value, change pointer
11373	argument from 'R' to 'W' so that the pointed-to datum is clobbered.
11374
113752018-02-08  Jan Hubicka  <hubicka@ucw.cz>
11376
11377	PR middle-end/83665
11378	* params.def (inline-min-speedup): Increase from 8 to 15.
11379	(max-inline-insns-auto): Decrease from 40 to 30.
11380	* ipa-split.c (consider_split): Add some buffer for function to
11381	be considered inlining candidate.
11382	* invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate
11383	default values.
11384
113852018-02-12  Richard Biener  <rguenther@suse.de>
11386
11387	PR tree-optimization/84037
11388	* tree-vect-slp.c (vect_build_slp_tree_2): Try swapping the
11389	matched stmts if we cannot swap the non-matched ones.
11390
113912018-02-12  Olga Makhotina  <olga.makhotina@intel.com>
11392
11393	* config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd,
11394	_mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss,
11395	_mm_maskz_scalef_round_ss): New intrinsics.
11396	(__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix.
11397	* config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round,
11398	__builtin_ia32_scalefss_round): Remove.
11399	(__builtin_ia32_scalefsd_mask_round,
11400	__builtin_ia32_scalefss_mask_round): New intrinsics.
11401	* config/i386/sse.md (vmscalef<mode><round_name>): Renamed to ...
11402	(vmscalef<mode><mask_scalar_name><round_scalar_name>): ... this.
11403	((match_operand:VF_128 2 "<round_nimm_predicate>"
11404	"<round_constraint>")): Changed to ...
11405	((match_operand:VF_128 2 "<round_scalar_nimm_predicate>"
11406	"<round_scalar_constraint>")): ... this.
11407	("vscalef<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|
11408	%0, %1, %2<round_op3>}"): Changed to ...
11409	("vscalef<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%2, %1,
11410	%0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1,
11411	%2<round_scalar_mask_op3>}"): ... this.
11412	* config/i386/subst.md (round_scalar_nimm_predicate): New.
11413
114142018-02-12  Olga Makhotina  <olga.makhotina@intel.com>
11415
11416	* config/i386/avx512fintrin.h (_mm_mask_sqrt_round_sd)
11417	(_mm_maskz_sqrt_round_sd, _mm_mask_sqrt_round_ss)
11418	(_mm_maskz_sqrt_round_ss): New intrinsics.
11419	(__builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round): Remove.
11420	(__builtin_ia32_sqrtsd_mask_round)
11421	(__builtin_ia32_sqrtss_mask_round): New builtins.
11422	* config/i386/i386-builtin.def (__builtin_ia32_sqrtsd_round)
11423	(__builtin_ia32_sqrtss_round): Remove.
11424	(__builtin_ia32_sqrtsd_mask_round)
11425	(__builtin_ia32_sqrtss_mask_round): New builtins.
11426	* config/i386/sse.md (vmsqrt<mode>2<round_name>): Renamed to ...
11427	(vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): ... this.
11428	((match_operand:VF_128 1 "vector_operand"
11429	"xBm,<round_constraint>")): Changed to ...
11430	((match_operand:VF_128 1 "vector_operand"
11431	"xBm,<round_scalar_constraint>")): ... this.
11432	(vsqrt<ssescalarmodesuffix>\t{<round_op3>%1, %2, %0|
11433	%0, %2, %<iptr>1<round_op3>}): Changed to ...
11434	(vsqrt<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%1, %2,
11435	%0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %2,
11436	%<iptr>1<round_scalar_mask_op3>}): ... this.
11437	((set_attr "prefix" "<round_prefix>")): Changed to ...
11438	((set_attr "prefix" "<round_scalar_prefix>")): ... this.
11439
114402018-02-11  Steven Munroe  <munroesj@gcc.gnu.org>
11441
11442	PR target/84266
11443	* config/rs6000/mmintrin.h (_mm_cmpeq_pi32 [_ARCH_PWR9]):
11444	Cast vec_cmpeq result to correct type.
11445	* config/rs6000/mmintrin.h (_mm_cmpgt_pi32 [_ARCH_PWR9]):
11446	Cast vec_cmpgt result to correct type.
11447
114482018-02-11  Alexandre Oliva  <aoliva@redhat.com>
11449
11450	* final.c (final_scan_insn_1): Renamed from...
11451	(final_scan_insn): ... this.  New wrapper, to recover
11452	seen from the outermost call in recursive ones.
11453	* config/sparc/sparc.c (output_return): Drop seen from call.
11454	(output_sibcall): Likewise.
11455	* config/visium/visium.c (output_branch): Likewise.
11456
114572018-02-10  John David Anglin  <danglin@gcc.gnu.org>
11458
11459	* config/pa/pa.c (hppa_profile_hook): Mark SYMBOL_REF for _mcount as
11460	function label.
11461
114622018-02-10  Alan Modra  <amodra@gmail.com>
11463
11464	PR target/84300
11465	* config/rs6000/rs6000.md (split_stack_return): Remove (use ..).
11466	Specify LR as an input.
11467
114682018-02-10  Jakub Jelinek  <jakub@redhat.com>
11469
11470	PR sanitizer/83987
11471	* omp-low.c (maybe_remove_omp_member_access_dummy_vars,
11472	remove_member_access_dummy_vars): New functions.
11473	(lower_omp_for, lower_omp_taskreg, lower_omp_target,
11474	lower_omp_1, execute_lower_omp): Use them.
11475
11476	PR rtl-optimization/84308
11477	* shrink-wrap.c (spread_components): Release todo vector.
11478
114792018-02-09  Vladimir Makarov  <vmakarov@redhat.com>
11480
11481	PR rtl-optimization/57193
11482	* ira-color.c (struct allocno_color_data): Add member
11483	conflict_allocno_hard_prefs.
11484	(update_conflict_allocno_hard_prefs): New.
11485	(bucket_allocno_compare_func): Add a preference based on
11486	conflict_allocno_hard_prefs.
11487	(push_allocno_to_stack): Update conflict_allocno_hard_prefs.
11488	(color_allocnos): Remove a dead code.  Initiate
11489	conflict_allocno_hard_prefs.  Call update_costs_from_prefs.
11490
114912018-02-09  Jakub Jelinek  <jakub@redhat.com>
11492
11493	PR target/84226
11494	* config/rs6000/vsx.md (p9_xxbrq_v16qi): Change input operand
11495	constraint from =wa to wa.  Avoid a subreg on the output operand,
11496	instead use a pseudo and subreg it in a move.
11497	(p9_xxbrd_<mode>): Changed to ...
11498	(p9_xxbrd_v2di): ... this insn, without VSX_D iterator.
11499	(p9_xxbrd_v2df): New expander.
11500	(p9_xxbrw_<mode>): Changed to ...
11501	(p9_xxbrw_v4si): ... this insn, without VSX_W iterator.
11502	(p9_xxbrw_v4sf): New expander.
11503
115042018-02-09  Sebastian Perta  <sebastian.perta@renesas.com>
11505
11506	* config/rx/rx.md (movsicc): Update expander to be matched by GCC.
11507
115082018-02-09  Peter Bergner  <bergner@vnet.ibm.com>
11509
11510	PR target/83926
11511	* config/rs6000/vsx.md (vsx_mul_v2di): Handle generating a 64-bit
11512	multiply in 32-bit mode.
11513	(vsx_div_v2di): Handle generating a 64-bit signed divide in 32-bit mode.
11514	(vsx_udiv_v2di): Handle generating a 64-bit unsigned divide in 32-bit
11515	mode.
11516
115172018-02-09  Sebastian Perta  <sebastian.perta@renesas.com>
11518
11519	* config/rx/constraints.md (CALL_OP_SYMBOL_REF): Added new constraint
11520	to allow or block "symbol_ref" depending on the value of TARGET_JSR.
11521	* config/rx/rx.md (call_internal): Use CALL_OP_SYMBOL_REF.
11522	* config/rx/rx.md (call_value_internal): Use CALL_OP_SYMBOL_REF.
11523
115242018-02-09  Pierre-Marie de Rodat  <derodat@adacore.com>
11525
11526	PR lto/84213
11527	* dwarf2out.c (is_trivial_indirect_ref): New function.
11528	(dwarf2out_late_global_decl): Do not generate a location
11529	attribute for variables that have a non-trivial DECL_VALUE_EXPR
11530	and that are not defined in the current unit.
11531
115322018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
11533
11534	* optabs.c (prepare_cmp_insn): Try harder to emit a direct comparison
11535	instead of a libcall for UNORDERED.
11536
115372018-02-09  Tamar Christina  <tamar.christina@arm.com>
11538
11539	PR target/82641
11540	* config/arm/arm-c.c (arm_cpu_builtins): Un-define __ARM_FEATURE_LDREX,
11541	__ARM_ARCH_PROFILE, __ARM_ARCH_ISA_THUMB, __ARM_FP and __ARM_NEON_FP.
11542
115432018-02-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11544
11545	PR target/PR84295
11546	* config/s390/s390.c (s390_set_current_function): Invoke
11547	s390_indirect_branch_settings also if fndecl didn't change.
11548
115492018-02-09  Alexandre Oliva  <aoliva@redhat.com>
11550
11551	* config/rs6000/rs6000.md (blockage): Set length to zero.
11552
115532018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
11554
11555	* expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion.
11556
115572018-02-09  Jakub Jelinek  <jakub@redhat.com>
11558
11559	PR sanitizer/84285
11560	* gcc.c (STATIC_LIBASAN_LIBS, STATIC_LIBTSAN_LIBS,
11561	STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): Handle -static like
11562	-static-lib*san.
11563
11564	PR debug/84252
11565	* var-tracking.c (vt_add_function_parameter): Punt for non-onepart
11566	PARALLEL incoming that failed vt_get_decl_and_offset check.
11567
11568	PR middle-end/84237
11569	* output.h (bss_initializer_p): Add NAMED argument, defaulted to false.
11570	* varasm.c (bss_initializer_p): Add NAMED argument, if true, ignore
11571	TREE_READONLY bit.
11572	(get_variable_section): For decls in named .bss* sections pass true as
11573	second argument to bss_initializer_p.
11574
115752018-02-09  Marek Polacek  <polacek@redhat.com>
11576	    Jakub Jelinek  <jakub@redhat.com>
11577
11578	PR c++/83659
11579	* fold-const.c (fold_indirect_ref_1): Use VECTOR_TYPE_P macro.
11580	Formatting fixes.  Verify first that tree_fits_poly_int64_p (op01).
11581	Sync some changes from cxx_fold_indirect_ref.
11582
115832018-02-09  Alexandre Oliva  <aoliva@redhat.com>
11584
11585	* cfgexpand.c (expand_gimple_basic_block): Handle inline entry
11586	markers.
11587	* dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook.
11588	(BLOCK_INLINE_ENTRY_LABEL): New.
11589	(dwarf2out_var_location): Disregard inline entry markers.
11590	(inline_entry_data): New struct.
11591	(inline_entry_data_hasher): New hashtable type.
11592	(inline_entry_data_hasher::hash): New.
11593	(inline_entry_data_hasher::equal): New.
11594	(inline_entry_data_table): New variable.
11595	(add_high_low_attributes): Add DW_AT_entry_pc and
11596	DW_AT_GNU_entry_view attributes if a pending entry is found
11597	in inline_entry_data_table.  Add old entry_pc attribute only
11598	if debug nonbinding markers are disabled.
11599	(gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding
11600	markers are enabled.
11601	(block_within_block_p, dwarf2out_inline_entry): New.
11602	(dwarf2out_finish): Check that no entries remained in
11603	inline_entry_data_table.
11604	* final.c (reemit_insn_block_notes): Handle inline entry notes.
11605	(final_scan_insn, notice_source_line): Likewise.
11606	(rest_of_clean_state): Skip inline entry markers.
11607	* gimple-pretty-print.c (dump_gimple_debug): Handle inline entry
11608	markers.
11609	* gimple.c (gimple_build_debug_inline_entry): New.
11610	* gimple.h (enum gimple_debug_subcode): Add
11611	GIMPLE_DEBUG_INLINE_ENTRY.
11612	(gimple_build_debug_inline_entry): Declare.
11613	(gimple_debug_inline_entry_p): New.
11614	(gimple_debug_nonbind_marker_p): Adjust.
11615	* insn-notes.def (INLINE_ENTRY): New.
11616	* print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
11617	inline entry marker notes.
11618	(print_insn): Likewise.
11619	* rtl.h	(NOTE_MARKER_P): Add INLINE_ENTRY support.
11620	(INSN_DEBUG_MARKER_KIND): Likewise.
11621	(GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New.
11622	* tree-inline.c	(expand_call_inline): Build and insert
11623	debug_inline_entry stmt.
11624	* tree-ssa-live.c (remove_unused_scope_block_p): Preserve
11625	inline entry blocks early, if nonbind markers are enabled.
11626	(dump_scope_block): Dump fragment info.
11627	* var-tracking.c (reemit_marker_as_note): Handle inline entry note.
11628	* doc/gimple.texi (gimple_debug_inline_entry_p): New.
11629	(gimple_build_debug_inline_entry): New.
11630	* doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers):
11631	Enable/disable inline entry points too.
11632	* doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New.
11633	(DEBUG_INSN): Describe inline entry markers.
11634
11635	* common.opt (gvariable-location-views): New.
11636	(gvariable-location-views=incompat5): New.
11637	* config.in: Rebuilt.
11638	* configure: Rebuilt.
11639	* configure.ac: Test assembler for view support.
11640	* dwarf2asm.c (dw2_asm_output_symname_uleb128): New.
11641	* dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare.
11642	* dwarf2out.c (var_loc_view): New typedef.
11643	(struct dw_loc_list_struct): Add vl_symbol, vbegin, vend.
11644	(dwarf2out_locviews_in_attribute): New.
11645	(dwarf2out_locviews_in_loclist): New.
11646	(dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists.
11647	(enum dw_line_info_opcode): Add LI_adv_address.
11648	(struct dw_line_info_table): Add view.
11649	(RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros.
11650	(DWARF2_ASM_VIEW_DEBUG_INFO): Define default.
11651	(zero_view_p): New variable.
11652	(ZERO_VIEW_P): New macro.
11653	(output_asm_line_debug_info): New.
11654	(struct var_loc_node): Add view.
11655	(add_AT_view_list, AT_loc_list): New.
11656	(add_var_loc_to_decl): Add view param.  Test it against last.
11657	(new_loc_list): Add view params.  Record them.
11658	(AT_loc_list_ptr): Handle loc and view lists.
11659	(view_list_to_loc_list_val_node): New.
11660	(print_dw_val): Handle dw_val_class_view_list.
11661	(size_of_die): Likewise.
11662	(value_format): Likewise.
11663	(loc_list_has_views): New.
11664	(gen_llsym): Set vl_symbol too.
11665	(maybe_gen_llsym, skip_loc_list_entry): New.
11666	(dwarf2out_maybe_output_loclist_view_pair): New.
11667	(output_loc_list): Output view list or entries too.
11668	(output_view_list_offset): New.
11669	(output_die): Handle dw_val_class_view_list.
11670	(output_dwarf_version): New.
11671	(output_compilation_unit_header): Use it.
11672	(output_skeleton_debug_sections): Likewise.
11673	(output_rnglists, output_line_info): Likewise.
11674	(output_pubnames, output_aranges): Update version comments.
11675	(output_one_line_info_table): Output view numbers in asm comments.
11676	(dw_loc_list): Determine current endview, pass it to new_loc_list.
11677	Call maybe_gen_llsym.
11678	(loc_list_from_tree_1): Adjust.
11679	(add_AT_location_description): Create view list attribute if
11680	needed, check it's absent otherwise.
11681	(convert_cfa_to_fb_loc_list): Adjust.
11682	(maybe_emit_file): Call output_asm_line_debug_info for test.
11683	(dwarf2out_var_location): Reset views as needed.  Precompute
11684	add_var_loc_to_decl args.  Call get_attr_min_length only if we have the
11685	attribute.  Set view.
11686	(new_line_info_table): Reset next view.
11687	(set_cur_line_info_table): Call output_asm_line_debug_info for test.
11688	(dwarf2out_source_line): Likewise.  Output view resets and labels to
11689	the assembler, or select appropriate line info opcodes.
11690	(prune_unused_types_walk_attribs): Handle dw_val_class_view_list.
11691	(optimize_string_length): Catch it.  Adjust.
11692	(resolve_addr): Copy vl_symbol along with ll_symbol.  Handle
11693	dw_val_class_view_list, and remove it if no longer needed.
11694	(hash_loc_list): Hash view numbers.
11695	(loc_list_hasher::equal): Compare them.
11696	(optimize_location_lists): Check whether a view list symbol is
11697	needed, and whether the locview attribute is present, and
11698	whether they match.  Remove the locview attribute if no longer
11699	needed.
11700	(index_location_lists): Call skip_loc_list_entry for test.
11701	(dwarf2out_finish): Call output_asm_line_debug_info for test.
11702	Use output_dwarf_version.
11703	* dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list.
11704	(struct dw_val_node): Add val_view_list.
11705	* final.c (SEEN_NEXT_VIEW): New.
11706	(set_next_view_needed): New.
11707	(clear_next_view_needed): New.
11708	(maybe_output_next_view): New.
11709	(final_start_function): Rename to...
11710	(final_start_function_1): ... this.  Take pointer to FIRST,
11711	add SEEN parameter.  Emit param bindings in the initial view.
11712	(final_start_function): Reintroduce SEEN-less interface.
11713	(final): Rename to...
11714	(final_1): ... this.  Take SEEN parameter.  Output final pending
11715	next view at the end.
11716	(final): Reintroduce seen-less interface.
11717	(final_scan_insn): Output pending next view before switching
11718	sections or ending a block.  Mark the next view as needed when
11719	outputting variable locations.  Notify debug backend of section
11720	changes, and of location view changes.
11721	(rest_of_handle_final): Adjust.
11722	* toplev.c (process_options): Autodetect value for debug variable
11723	location views option.  Warn on incompat5 without -gdwarf-5.
11724	* doc/invoke.texi (gvariable-location-views): New.
11725	(gvariable-location-views=incompat5): New.
11726	(gno-variable-location-views): New.
11727
117282018-02-08  David Malcolm  <dmalcolm@redhat.com>
11729
11730	PR tree-optimization/84136
11731	* tree-cfg.c (find_taken_edge_computed_goto): Remove assertion
11732	that the result of find_edge is non-NULL.
11733
117342018-02-08  Sergey Shalnov  <sergey.shalnov@intel.com>
11735
11736	PR target/83008
11737	* config/i386/x86-tune-costs.h (skylake_cost): Fix cost of
11738	storing integer register in SImode.  Fix cost of 256 and 512
11739	byte aligned SSE register store.
11740
117412018-02-08  Sergey Shalnov  <sergey.shalnov@intel.com>
11742
11743	* config/i386/i386.c (ix86_multiplication_cost): Fix
11744	multiplication cost for TARGET_AVX512DQ.
11745
117462018-02-08  Marek Polacek  <polacek@redhat.com>
11747
11748	PR tree-optimization/84238
11749	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Verify the result of
11750	get_range_strlen.
11751
117522018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
11753
11754	PR tree-optimization/84265
11755	* tree-vect-stmts.c (vectorizable_store): Don't treat
11756	VMAT_CONTIGUOUS accesses as grouped.
11757	(vectorizable_load): Likewise.
11758
117592018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
11760
11761	PR tree-optimization/81635
11762	* wide-int.h (wi::round_down_for_mask, wi::round_up_for_mask): Declare.
11763	* wide-int.cc (wi::round_down_for_mask, wi::round_up_for_mask)
11764	(test_round_for_mask): New functions.
11765	(wide_int_cc_tests): Call test_round_for_mask.
11766	* tree-vrp.h (intersect_range_with_nonzero_bits): Declare.
11767	* tree-vrp.c (intersect_range_with_nonzero_bits): New function.
11768	* tree-data-ref.c (split_constant_offset_1): Use it to refine the
11769	range returned by get_range_info.
11770
117712018-02-08  Jan Hubicka  <hubicka@ucw.cz>
11772
11773	PR ipa/81360
11774	* cgraph.h (symtab_node::output_to_lto_symbol_table_p): Declare
11775	* symtab.c: Include builtins.h
11776	(symtab_node::output_to_lto_symbol_table_p): Move here
11777	from lto-streamer-out.c:output_symbol_p.
11778	* lto-streamer-out.c (write_symbol): Turn early exit to assert.
11779	(output_symbol_p): Move all logic to symtab.c
11780	(produce_symtab): Update.
11781
117822018-02-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11783
11784	* config/s390/s390-opts.h (enum indirect_branch): Define.
11785	* config/s390/s390-protos.h (s390_return_addr_from_memory)
11786	(s390_indirect_branch_via_thunk)
11787	(s390_indirect_branch_via_inline_thunk): Add function prototypes.
11788	(enum s390_indirect_branch_type): Define.
11789	* config/s390/s390.c (struct s390_frame_layout, struct
11790	machine_function): Remove.
11791	(indirect_branch_prez10thunk_mask, indirect_branch_z10thunk_mask)
11792	(indirect_branch_table_label_no, indirect_branch_table_name):
11793	Define variables.
11794	(INDIRECT_BRANCH_NUM_OPTIONS): Define macro.
11795	(enum s390_indirect_branch_option): Define.
11796	(s390_return_addr_from_memory): New function.
11797	(s390_handle_string_attribute): New function.
11798	(s390_attribute_table): Add new attribute handler.
11799	(s390_execute_label): Handle UNSPEC_EXECUTE_JUMP patterns.
11800	(s390_indirect_branch_via_thunk): New function.
11801	(s390_indirect_branch_via_inline_thunk): New function.
11802	(s390_function_ok_for_sibcall): When jumping via thunk disallow
11803	sibling call optimization for non z10 compiles.
11804	(s390_emit_call): Force indirect branch target to be a single
11805	register.  Add r1 clobber for non-z10 compiles.
11806	(s390_emit_epilogue): Emit return jump via return_use expander.
11807	(s390_reorg): Handle JUMP_INSNs as execute targets.
11808	(s390_option_override_internal): Perform validity checks for the
11809	new command line options.
11810	(s390_indirect_branch_attrvalue): New function.
11811	(s390_indirect_branch_settings): New function.
11812	(s390_set_current_function): Invoke s390_indirect_branch_settings.
11813	(s390_output_indirect_thunk_function):  New function.
11814	(s390_code_end): Implement target hook.
11815	(s390_case_values_threshold): Implement target hook.
11816	(TARGET_ASM_CODE_END, TARGET_CASE_VALUES_THRESHOLD): Define target
11817	macros.
11818	* config/s390/s390.h (struct s390_frame_layout)
11819	(struct	machine_function): Move here from s390.c.
11820	(TARGET_INDIRECT_BRANCH_NOBP_RET)
11821	(TARGET_INDIRECT_BRANCH_NOBP_JUMP)
11822	(TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK)
11823	(TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK)
11824	(TARGET_INDIRECT_BRANCH_NOBP_CALL)
11825	(TARGET_DEFAULT_INDIRECT_BRANCH_TABLE)
11826	(TARGET_INDIRECT_BRANCH_THUNK_NAME_EXRL)
11827	(TARGET_INDIRECT_BRANCH_THUNK_NAME_EX)
11828	(TARGET_INDIRECT_BRANCH_TABLE): Define macros.
11829	* config/s390/s390.md (UNSPEC_EXECUTE_JUMP)
11830	(INDIRECT_BRANCH_THUNK_REGNUM): Define constants.
11831	(mnemonic attribute): Add values which aren't recognized
11832	automatically.
11833	("*cjump_long", "*icjump_long", "*basr", "*basr_r"): Disable
11834	pattern for branch conversion.  Fix mnemonic attribute.
11835	("*c<code>", "*sibcall_br", "*sibcall_value_br", "*return"): Emit
11836	indirect branch via thunk if requested.
11837	("indirect_jump", "<code>"): Expand patterns for branch conversion.
11838	("*indirect_jump"): Disable for branch conversion using out of
11839	line thunks.
11840	("indirect_jump_via_thunk<mode>_z10")
11841	("indirect_jump_via_thunk<mode>")
11842	("indirect_jump_via_inlinethunk<mode>_z10")
11843	("indirect_jump_via_inlinethunk<mode>", "*casesi_jump")
11844	("casesi_jump_via_thunk<mode>_z10", "casesi_jump_via_thunk<mode>")
11845	("casesi_jump_via_inlinethunk<mode>_z10")
11846	("casesi_jump_via_inlinethunk<mode>", "*basr_via_thunk<mode>_z10")
11847	("*basr_via_thunk<mode>", "*basr_r_via_thunk_z10")
11848	("*basr_r_via_thunk", "return<mode>_prez10"): New pattern.
11849	("*indirect2_jump"): Disable for branch conversion.
11850	("casesi_jump"): Turn into expander and expand patterns for branch
11851	conversion.
11852	("return_use"): New expander.
11853	("*return"): Emit return via thunk and rename it to ...
11854	("*return<mode>"): ... this one.
11855	* config/s390/s390.opt: Add new options and and enum for the
11856	option values.
11857
118582018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
11859
11860	* lra-constraints.c (match_reload): Unconditionally use
11861	gen_lowpart_SUBREG, rather than selecting between that
11862	and equivalent gen_rtx_SUBREG code.
11863
118642018-02-08  Richard Biener  <rguenther@suse.de>
11865
11866	PR tree-optimization/84233
11867	* tree-ssa-phiprop.c (propagate_with_phi): Use separate
11868	changed flag instead of boguously re-using phi_inserted.
11869
118702018-02-08  Martin Jambor  <mjambor@suse.cz>
11871
11872	* hsa-gen.c (get_symbol_for_decl): Set program allocation for
11873	static local variables.
11874
118752018-02-08  Richard Biener  <rguenther@suse.de>
11876
11877	PR tree-optimization/84278
11878	* tree-vect-stmts.c (vectorizable_store): When looking for
11879	smaller vector types to perform grouped strided loads/stores
11880	make sure the mode is supported by the target.
11881	(vectorizable_load): Likewise.
11882
118832018-02-08  Wilco Dijkstra  <wdijkstr@arm.com>
11884
11885	* config/aarch64/aarch64.c (aarch64_components_for_bb):
11886	Increase LDP/STP opportunities by adding adjacent callee-saves.
11887
118882018-02-08  Wilco Dijkstra  <wdijkstr@arm.com>
11889
11890	PR rtl-optimization/84068
11891	PR rtl-optimization/83459
11892	* haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting.
11893
118942018-02-08  Aldy Hernandez  <aldyh@redhat.com>
11895
11896	PR tree-optimization/84224
11897	* gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert.
11898	* calls.c (gimple_alloca_call_p): Only return TRUE when we have
11899	non-zero arguments.
11900
119012018-02-07  Iain Sandoe  <iain@codesourcery.com>
11902
11903	PR target/84113
11904	* config/rs6000/altivec.md (*restore_world): Remove LR use.
11905	* config/rs6000/predicates.md (restore_world_operation): Adjust op
11906	count, remove one USE.
11907
119082018-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
11909
11910	* doc/install.texi (Configuration): Document the
11911	--with-long-double-format={ibm,ieee} PowerPC configuration
11912	options.
11913
11914	PR target/84154
11915	* config/rs6000/rs6000.md (fix_trunc<SFDF:mode><QHI:mode>2):
11916	Convert from define_expand to be define_insn_and_split.  Rework
11917	float/double/_Float128 conversions to QI/HI/SImode to work with
11918	both ISA 2.07 (power8) or ISA 3.0 (power9).  Fix regression where
11919	conversions to QI/HImode types did a store and then a load to
11920	truncate the value.  For conversions to VSX registers, don't split
11921	the insn, instead emit the code directly.  Use the code iterator
11922	any_fix to combine signed and unsigned conversions.
11923	(fix<uns>_trunc<SFDF:mode>si2_p8): Likewise.
11924	(fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
11925	(fix_trunc<IEEE128:mode><QHI:mode>2): Likewise.
11926	(fix<uns>_trunc<SFDF:mode><QHI:mode>2): Likewise.
11927	(fix_<mode>di2_hw): Likewise.
11928	(fixuns_<mode>di2_hw): Likewise.
11929	(fix_<mode>si2_hw): Likewise.
11930	(fixuns_<mode>si2_hw): Likewise.
11931	(fix<uns>_<IEEE128:mode><SDI:mode>2_hw): Likewise.
11932	(fix<uns>_trunc<IEEE128:mode><QHI:mode>2): Likewise.
11933	(fctiw<u>z_<mode>_smallint): Rename fctiw<u>z_<mode>_smallint to
11934	fix<uns>_trunc<SFDF:mode>si2_p8.
11935	(fix_trunc<SFDF:mode><QHI:mode>2_internal): Delete, no longer
11936	used.
11937	(fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
11938	(fix<uns>_<mode>_mem): Likewise.
11939	(fctiw<u>z_<mode>_mem): Likewise.
11940	(fix<uns>_<mode>_mem): Likewise.
11941	(fix<uns>_trunc<SFDF:mode><QHSI:mode>2_mem): On ISA 3.0, prevent
11942	the register allocator from doing a direct move to the GPRs to do
11943	a store, and instead use the ISA 3.0 store byte/half-word from
11944	vector register instruction.  For IEEE 128-bit floating point,
11945	also optimize stores of 32-bit ints.
11946	(fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Likewise.
11947
119482018-02-07  Alan Hayward  <alan.hayward@arm.com>
11949
11950	* genextract.c (push_pathstr_operand): New function to support
11951	[a-zA-Z].
11952	(walk_rtx): Call push_pathstr_operand.
11953	(print_path): Support [a-zA-Z].
11954
119552018-02-07  Richard Biener  <rguenther@suse.de>
11956
11957	PR tree-optimization/84037
11958	* tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member.
11959	(cse_and_gimplify_to_preheader): Declare.
11960	(vect_get_place_in_interleaving_chain): Likewise.
11961	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
11962	ivexpr_map.
11963	(_loop_vec_info::~_loop_vec_info): Delete it.
11964	(cse_and_gimplify_to_preheader): New function.
11965	* tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export.
11966	* tree-vect-stmts.c (vectorizable_store): CSE base and steps.
11967	(vectorizable_load): Likewise.  For grouped stores always base
11968	the IV on the first element.
11969	* tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning
11970	condition before gimplifying.
11971
119722018-02-07  Jakub Jelinek  <jakub@redhat.com>
11973
11974	* tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for
11975	*DIV_EXPR and *MOD_EXPR.
11976
119772018-02-07  H.J. Lu  <hongjiu.lu@intel.com>
11978
11979	PR target/84248
11980	* config/i386/i386.c (ix86_option_override_internal): Mask out
11981	the CF_SET bit when checking -fcf-protection.
11982
119832018-02-07  Tom de Vries  <tom@codesourcery.com>
11984
11985	PR libgomp/84217
11986	* omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large
11987	enough.
11988
119892018-02-07  Richard Biener  <rguenther@suse.de>
11990
11991	PR tree-optimization/84204
11992	* tree-chrec.c (chrec_fold_plus_1): Remove size limiting in
11993	this place.
11994
11995	PR tree-optimization/84205
11996	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also
11997	special-case isl_ast_op_zdiv_r.
11998
11999	PR tree-optimization/84223
12000	* graphite-scop-detection.c (gather_bbs::before_dom_children):
12001	Only add conditions from within the region.
12002	(gather_bbs::after_dom_children): Adjust.
12003
120042018-02-07  Georg-Johann Lay  <avr@gjlay.de>
12005
12006	PR target/84209
12007	* config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros.
12008	* config/avr/avr.md: Only post-reload split REG-REG moves if
12009	either register is GENERAL_REG_P.
12010
120112018-02-07  Jakub Jelinek  <jakub@redhat.com>
12012
12013	PR tree-optimization/84235
12014	* tree-ssa-scopedtables.c
12015	(avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt
12016	if the subtraction is performed in floating point type where NaNs are
12017	honored.  For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't
12018	build 1.  Formatting fix.
12019
120202018-02-06  Jakub Jelinek  <jakub@redhat.com>
12021
12022	PR target/84146
12023	* config/i386/i386.c (rest_of_insert_endbranch): Only skip
12024	NOTE_INSN_CALL_ARG_LOCATION after a call, not anything else,
12025	and skip it regardless of bb boundaries.  Use CALL_P macro,
12026	don't test INSN_P (insn) together with CALL_P or JUMP_P check
12027	unnecessarily, formatting fix.
12028
120292018-02-06  Michael Collison  <michael.collison@arm.com>
12030
12031	* config/arm/thumb2.md:
12032	(*thumb2_mov_negscc): Split only if TARGET_THUMB2 && !arm_restrict_it.
12033	(*thumb_mov_notscc): Ditto.
12034
120352018-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
12036
12037	PR target/84154
12038	* config/rs6000/rs6000.md (su code attribute): Use "u" for
12039	unsigned_fix, not "s".
12040
120412018-02-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12042
12043	* configure.ac (gcc_fn_eh_frame_ro): New function.
12044	(gcc_cv_as_cfi_directive): Check both 32 and 64-bit assembler for
12045	correct .eh_frame permissions.
12046	* configure: Regenerate.
12047
120482018-02-06  Andrew Jenner  <andrew@codeourcery.com>
12049
12050	* doc/invoke.texi: Add section for the PowerPC SPE backend. Remove
12051	irrelevant options.
12052
120532018-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12054
12055	* config/rs6000/rs6000.c (rs6000_option_override_internal):
12056	Display warning message for -mno-speculate-indirect-jumps.
12057
120582018-02-06  Andrew Jenner  <andrew@codesourcery.com>
12059
12060	* config/powerpcspe/powerpcspe.opt: (msimple-fpu, mfpu) Add
12061	Undocumented.
12062	* config/powerpcspe/sysv4.opt (mbit-align): Likewise.
12063
120642018-02-06  Aldy Hernandez  <aldyh@redhat.com>
12065
12066	PR tree-optimization/84225
12067	* tree-eh.c (find_trapping_overflow): Only call
12068	operation_no_trapping_overflow when ANY_INTEGRAL_TYPE_P.
12069
120702018-02-06  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
12071
12072	PR target/84145
12073	* config/i386/i386.c: Reimplement the check of possible options
12074	-mibt/-mshstk conbination. Change error messages.
12075	* doc/invoke.texi: Fix a typo: remove extra '='.
12076
120772018-02-06  Marek Polacek  <polacek@redhat.com>
12078
12079	PR tree-optimization/84228
12080	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Skip debug statements.
12081
120822018-02-06  Tamar Christina  <tamar.christina@arm.com>
12083
12084	PR target/82641
12085	* config/arm/arm.c (arm_print_asm_arch_directives): Record already
12086	emitted arch directives.
12087	* config/arm/arm-c.c (arm_cpu_builtins): Undefine __ARM_ARCH and
12088	__ARM_FEATURE_COPROC before changing architectures.
12089
120902018-02-06  Richard Biener  <rguenther@suse.de>
12091
12092	* config/i386/i386.c (print_reg): Fix typo.
12093	(ix86_loop_unroll_adjust): Do not unroll beyond the original nunroll.
12094
120952018-02-06  Eric Botcazou  <ebotcazou@adacore.com>
12096
12097	* configure: Regenerate.
12098
120992018-02-05  Martin Sebor  <msebor@redhat.com>
12100
12101	PR tree-optimization/83369
12102	* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Use %G to print
12103	inlining context.
12104
121052018-02-05  Martin Liska  <mliska@suse.cz>
12106
12107	* doc/invoke.texi: Cherry-pick upstream r323995.
12108
121092018-02-05  Richard Sandiford  <richard.sandiford@linaro.org>
12110
12111	* ira.c (ira_init_register_move_cost): Adjust comment.
12112
121132018-02-05  Martin Liska  <mliska@suse.cz>
12114
12115	PR gcov-profile/84137
12116	* doc/gcov.texi: Fix typo in documentation.
12117
121182018-02-05  Martin Liska  <mliska@suse.cz>
12119
12120	PR gcov-profile/83879
12121	* doc/gcov.texi: Document necessity of --dynamic-list-data when
12122	using dlopen functionality.
12123
121242018-02-05  Olga Makhotina  <olga.makhotina@intel.com>
12125
12126	* config/i386/avx512dqintrin.h (_mm_mask_range_sd, _mm_maskz_range_sd,
12127	_mm_mask_range_round_sd, _mm_maskz_range_round_sd, _mm_mask_range_ss,
12128	_mm_maskz_range_ss, _mm_mask_range_round_ss,
12129	_mm_maskz_range_round_ss): New intrinsics.
12130	(__builtin_ia32_rangesd128_round)
12131	(__builtin_ia32_rangess128_round): Remove.
12132	(__builtin_ia32_rangesd128_mask_round,
12133	__builtin_ia32_rangess128_mask_round): New builtins.
12134	* config/i386/i386-builtin.def (__builtin_ia32_rangesd128_round,
12135	__builtin_ia32_rangess128_round): Remove.
12136	(__builtin_ia32_rangesd128_mask_round,
12137	__builtin_ia32_rangess128_mask_round): New builtins.
12138	* config/i386/sse.md (ranges<mode><round_saeonly_name>): Renamed to ...
12139	(ranges<mode><mask_scalar_name><round_saeonly_scalar_name>): ... this.
12140	((match_operand:VF_128 2 "<round_saeonly_nimm_predicate>"
12141	"<round_saeonly_constraint>")): Changed to ...
12142	((match_operand:VF_128 2 "<round_saeonly_scalar_nimm_predicate>"
12143	"<round_saeonly_scalar_constraint>")): ... this.
12144	("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
12145	%0, %1, %2<round_saeonly_op4>, %3}"): Changed to ...
12146	("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_scalar_mask_op4>%2,
12147	%1, %0<mask_scalar_operand4>|%0<mask_scalar_operand4>, %1,
12148	%2<round_saeonly_scalar_mask_op4>, %3}"): ... this.
12149
121502018-02-02  Andrew Jenner  <andrew@codesourcery.com>
12151
12152	* config/powerpcspe/powerpcspe.opt: Add Undocumented to irrelevant
12153	options.
12154	* config/powerpcspe/powerpcspe-tables.opt (rs6000_cpu_opt_value):
12155	Remove all values except native, 8540 and 8548.
12156
121572018-02-02  H.J. Lu  <hongjiu.lu@intel.com>
12158
12159	* config/i386/i386.c (ix86_output_function_return): Pass
12160	INVALID_REGNUM, instead of -1, as invalid register number to
12161	indirect_thunk_name and output_indirect_thunk.
12162
121632018-02-02  Julia Koval  <julia.koval@intel.com>
12164
12165	* config.gcc: Add -march=icelake.
12166	* config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake.
12167	* config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake.
12168	* config/i386/i386.c (processor_costs): Add m_ICELAKE.
12169	(PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2,
12170	PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New.
12171	(processor_target_table): Add icelake.
12172	(ix86_option_override_internal): Handle new PTAs.
12173	(get_builtin_code_for_version): Handle icelake.
12174	(M_INTEL_COREI7_ICELAKE): New.
12175	(fold_builtin_cpu): Handle icelake.
12176	* config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New.
12177	* doc/invoke.texi: Add -march=icelake.
12178
121792018-02-02  Julia Koval  <julia.koval@intel.com>
12180
12181	* config/i386/i386.c (ix86_option_override_internal): Change flags type
12182	to wide_int_bitmask.
12183	* wide-int-bitmask.h: New.
12184
121852018-02-02  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
12186
12187	PR target/84066
12188	* config/i386/i386.md: Replace Pmode with word_mode in
12189	builtin_setjmp_setup and builtin_longjmp to support x32.
12190
121912018-02-01  Peter Bergner  <bergner@vnet.ibm.com>
12192
12193	PR target/56010
12194	PR target/83743
12195	* config/rs6000/driver-rs6000.c: #include "diagnostic.h".
12196	#include "opts.h".
12197	(rs6000_supported_cpu_names): New static variable.
12198	(linux_cpu_translation_table): Likewise.
12199	(elf_platform) <cpu>: Define new static variable and use it.
12200	Translate kernel AT_PLATFORM name to canonical name if needed.
12201	Error if platform name is unknown.
12202
122032018-02-01  Aldy Hernandez  <aldyh@redhat.com>
12204
12205	PR target/84089
12206	* config/pa/predicates.md (base14_operand): Handle E_VOIDmode.
12207
122082018-02-01  Jeff Law  <law@redhat.com>
12209
12210	PR target/84128
12211	* config/i386/i386.c (release_scratch_register_on_entry): Add new
12212	OFFSET and RELEASE_VIA_POP arguments.  Use SP+OFFSET to restore
12213	the scratch if RELEASE_VIA_POP is false.
12214	(ix86_adjust_stack_and_probe_stack_clash): Un-constify SIZE.
12215	If we have to save a temporary register, decrement SIZE appropriately.
12216	Pass new arguments to release_scratch_register_on_entry.
12217	(ix86_adjust_stack_and_probe): Likewise.
12218	(ix86_emit_probe_stack_range): Pass new arguments to
12219	release_scratch_register_on_entry.
12220
122212018-02-01  Uros Bizjak  <ubizjak@gmail.com>
12222
12223	PR rtl-optimization/84157
12224	* combine.c (change_zero_ext): Use REG_P predicate in
12225	front of HARD_REGISTER_P predicate.
12226
122272018-02-01  Georg-Johann Lay  <avr@gjlay.de>
12228
12229	* config/avr/avr.c (avr_option_override): Move disabling of
12230	-fdelete-null-pointer-checks to...
12231	* common/config/avr/avr-common.c (avr_option_optimization_table):
12232	...here.
12233
122342018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
12235
12236	PR tree-optimization/81635
12237	* tree-data-ref.c (split_constant_offset_1): For types that
12238	wrap on overflow, try to use range info to prove that wrapping
12239	cannot occur.
12240
122412018-02-01  Renlin Li  <renlin.li@arm.com>
12242
12243	PR target/83370
12244	* config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
12245	TAILCALL_ADDR_REGS.
12246	(aarch64_register_move_cost): Likewise.
12247	* config/aarch64/aarch64.h (reg_class): Rename CALLER_SAVE_REGS to
12248	TAILCALL_ADDR_REGS.
12249	(REG_CLASS_NAMES): Likewise.
12250	(REG_CLASS_CONTENTS): Rename CALLER_SAVE_REGS to
12251	TAILCALL_ADDR_REGS. Remove IP registers.
12252	* config/aarch64/aarch64.md (Ucs): Update register constraint.
12253
122542018-02-01  Richard Biener  <rguenther@suse.de>
12255
12256	* domwalk.h (dom_walker::dom_walker): Add additional constructor
12257	for specifying RPO order and allow NULL for that.
12258	* domwalk.c (dom_walker::dom_walker): Likewise.
12259	(dom_walker::walk): Handle NULL RPO order.
12260	* tree-into-ssa.c (rewrite_dom_walker): Do not walk dom children
12261	in RPO order.
12262	(rewrite_update_dom_walker): Likewise.
12263	(mark_def_dom_walker): Likewise.
12264
122652018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
12266
12267	* config/aarch64/aarch64-protos.h (aarch64_split_sve_subreg_move)
12268	(aarch64_maybe_expand_sve_subreg_move): Declare.
12269	* config/aarch64/aarch64.md (UNSPEC_REV_SUBREG): New unspec.
12270	* config/aarch64/predicates.md (aarch64_any_register_operand): New
12271	predicate.
12272	* config/aarch64/aarch64-sve.md (mov<mode>): Optimize subreg moves
12273	that are semantically a reverse operation.
12274	(*aarch64_sve_mov<mode>_subreg_be): New pattern.
12275	* config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move):
12276	(aarch64_replace_reg_mode, aarch64_split_sve_subreg_move): New
12277	functions.
12278	(aarch64_can_change_mode_class): For big-endian, forbid changes
12279	between two SVE modes if they have different element sizes.
12280
122812018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
12282
12283	* config/aarch64/aarch64.c (aarch64_expand_sve_const_vector): Prefer
12284	the TImode handling for big-endian targets.
12285
122862018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
12287
12288	* config/aarch64/aarch64-sve.md (sve_ld1rq): Replace with...
12289	(*sve_ld1rq<Vesize>): ... this new pattern.  Handle all element sizes,
12290	not just bytes.
12291	* config/aarch64/aarch64.c (aarch64_expand_sve_widened_duplicate):
12292	Remove BSWAP handing for big-endian targets and use the form of
12293	LD1RQ appropariate for the mode.
12294
122952018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
12296
12297	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Handle
12298	all CONST_VECTOR_DUPLICATE_P vectors, not just those with a single
12299	duplicated element.
12300
123012018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
12302
12303	PR tearget/83845
12304	* config/aarch64/aarch64.c (aarch64_secondary_reload): Tighten
12305	check for operands that need to go through aarch64_sve_reload_be.
12306
123072018-02-01  Jakub Jelinek  <jakub@redhat.com>
12308
12309	PR tree-optimization/81661
12310	PR tree-optimization/84117
12311	* tree-eh.h (rewrite_to_non_trapping_overflow): Declare.
12312	* tree-eh.c: Include gimplify.h.
12313	(find_trapping_overflow, replace_trapping_overflow,
12314	rewrite_to_non_trapping_overflow): New functions.
12315	* tree-vect-loop.c: Include tree-eh.h.
12316	(vect_get_loop_niters): Use rewrite_to_non_trapping_overflow.
12317	* tree-data-ref.c: Include tree-eh.h.
12318	(get_segment_min_max): Use rewrite_to_non_trapping_overflow.
12319
123202018-01-31  Uros Bizjak  <ubizjak@gmail.com>
12321
12322	PR rtl-optimization/84123
12323	* combine.c (change_zero_ext): Check if hard register satisfies
12324	can_change_dest_mode before calling gen_lowpart_SUBREG.
12325
123262018-01-31  Vladimir Makarov  <vmakarov@redhat.com>
12327
12328	PR target/82444
12329	* ira.c (ira_init_register_move_cost): Remove assert.
12330
123312018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
12332
12333	PR rtl-optimization/84071
12334	* doc/tm.texi.in (WORD_REGISTER_OPERATIONS): Add explicit case.
12335	* doc/tm.texi: Regenerate.
12336
123372018-01-31  Richard Biener  <rguenther@suse.de>
12338
12339	PR tree-optimization/84132
12340	* tree-data-ref.c (analyze_miv_subscript): Properly
12341	check whether evolution_function_is_affine_multivariate_p
12342	before calling gcd_of_steps_may_divide_p.
12343
123442018-01-31  Julia Koval  <julia.koval@intel.com>
12345
12346	PR target/83618
12347	* config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
12348	* config/i386/i386.md (rdpid_rex64) New.
12349	(rdpid): Make 32bit only.
12350
123512018-01-29  Aldy Hernandez  <aldyh@redhat.com>
12352
12353	PR lto/84105
12354	* tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with
12355	an IDENTIFIER_NODE for FUNCTION_TYPE's.
12356
123572018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
12358
12359	Revert
12360	2018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
12361
12362	* config/sparc/sparc.md (vxworks_load_got): Set the GOT register.
12363
123642018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
12365
12366	PR rtl-optimization/84071
12367	* combine.c (record_dead_and_set_regs_1): Record the source unmodified
12368	for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target.
12369
123702018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
12371
12372	* config/arc/arc.c (arc_handle_aux_attribute): New function.
12373	(arc_attribute_table): Add 'aux' attribute.
12374	(arc_in_small_data_p): Consider aux like variables.
12375	(arc_is_aux_reg_p): New function.
12376	(arc_asm_output_aligned_decl_local): Ignore 'aux' like variables.
12377	(arc_get_aux_arg): New function.
12378	(prepare_move_operands): Handle aux-register access.
12379	(arc_handle_aux_attribute): New function.
12380	* doc/extend.texi (ARC Variable attributes): Add subsection.
12381
123822018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
12383
12384	* config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto.
12385	* config/arc/arc.c (arc_handle_uncached_attribute): New function.
12386	(arc_attribute_table): Add 'uncached' attribute.
12387	(arc_print_operand): Print '.di' flag for uncached memory
12388	accesses.
12389	(arc_in_small_data_p): Do not consider for small data the uncached
12390	types.
12391	(arc_is_uncached_mem_p): New function.
12392	* config/arc/predicates.md (compact_store_memory_operand): Check
12393	for uncached memory accesses.
12394	(nonvol_nonimm_operand): Likewise.
12395	* gcc/doc/extend.texi (ARC Type Attribute): New subsection.
12396
123972018-01-31  Jakub Jelinek  <jakub@redhat.com>
12398
12399	PR c/84100
12400	* common.opt (falign-functions=, falign-jumps=, falign-labels=,
12401	falign-loops=): Add Optimization flag.
12402
124032018-01-30  Jeff Law  <law@redhat.com>
12404
12405	PR target/84064
12406	* i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument
12407	INT_REGISTERS_SAVED.  Check it prior to calling
12408	get_scratch_register_on_entry.
12409	(ix86_adjust_stack_and_probe): Similarly.
12410	(ix86_emit_probe_stack_range): Similarly.
12411	(ix86_expand_prologue): Corresponding changes.
12412
124132018-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12414
12415	PR target/40411
12416	* config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*,
12417	-std=iso9899:199409 instead of -pedantic to select values-Xc.o.
12418
124192018-01-30  Vladimir Makarov  <vmakarov@redhat.com>
12420
12421	PR target/84112
12422	* lra-constraints.c (curr_insn_transform): Process AND in the
12423	address.
12424
124252018-01-30  Jakub Jelinek  <jakub@redhat.com>
12426
12427	PR rtl-optimization/83986
12428	* sched-deps.c (sched_analyze_insn): For frame related insns, add anti
12429	dependence against last_pending_memory_flush in addition to
12430	pending_jump_insns.
12431
124322018-01-30  Alexandre Oliva  <aoliva@redhat.com>
12433
12434	PR tree-optimization/81611
12435	* tree-ssa-dom.c (simple_iv_increment_p): Skip intervening
12436	copies.
12437
124382018-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
12439
12440	PR target/83758
12441	* config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return
12442	a reg rtx.
12443
124442018-01-30  Richard Biener  <rguenther@suse.de>
12445	    Jakub Jelinek  <jakub@redhat.com>
12446
12447	PR tree-optimization/84111
12448	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Skip
12449	inner loops added during recursion, as they don't have up-to-date
12450	SSA form.
12451
124522018-01-30  Jan Hubicka  <hubicka@ucw.cz>
12453
12454	PR ipa/81360
12455	* ipa-inline.c (can_inline_edge_p): Break out late tests to...
12456	(can_inline_edge_by_limits_p): ... here.
12457	(can_early_inline_edge_p, check_callers,
12458	update_caller_keys, update_callee_keys, recursive_inlining,
12459	add_new_edges_to_heap, speculation_useful_p,
12460	inline_small_functions,
12461	inline_small_functions, flatten_function,
12462	inline_to_all_callers_1): Update.
12463
124642018-01-30  Jan Hubicka  <hubicka@ucw.cz>
12465
12466	* profile-count.c (profile_count::combine_with_ipa_count): Handle
12467	zeros correctly.
12468
124692018-01-30  Richard Biener  <rguenther@suse.de>
12470
12471	PR tree-optimization/83008
12472	* tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost
12473	invariant and constant vector uses in stmts when they need
12474	more than one stmt.
12475
124762018-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12477
12478	PR bootstrap/84017
12479	* configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86.
12480	* configure: Regenerate.
12481
124822018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
12483
12484	* config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_0): New
12485	pattern.
12486	(*vec_extract<mode><Vel>_v128): Require a nonzero lane number.
12487	Use gen_rtx_REG rather than gen_lowpart.
12488
124892018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
12490
12491	* lra-constraints.c (match_reload): Use subreg_lowpart_offset
12492	rather than 0 when creating partial subregs.
12493
124942018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
12495
12496	* vec-perm-indices.c (vec_perm_indices::series_p): Give examples
12497	of usage.
12498
124992018-01-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
12500
12501	PR target/81550
12502	* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): If DFmode
12503	and SFmode can go in Altivec registers (-mcpu=power7 for DFmode,
12504	-mcpu=power8 for SFmode) don't set the PRE_INCDEC or PRE_MODIFY
12505	flags.  This restores the settings used before the 2017-07-24.
12506	Turning off pre increment/decrement/modify allows IVOPTS to
12507	optimize DF/SF loops where the index is an int.
12508
125092018-01-29  Richard Biener  <rguenther@suse.de>
12510	    Kelvin Nilsen  <kelvin@gcc.gnu.org>
12511
12512	PR bootstrap/80867
12513	* tree-vect-stmts.c (vectorizable_call): Don't call
12514	targetm.vectorize_builtin_md_vectorized_function if callee is
12515	NULL.
12516
125172018-01-22  Carl Love  <cel@us.ibm.com>
12518
12519	* doc/extend.tex: Fix typo in second arg in
12520	__builtin_bcdadd_{lt|eq|gt|ov} and __builtin_bcdsub_{lt|eq|gt|ov}.
12521
125222018-01-29  Richard Biener  <rguenther@suse.de>
12523
12524	PR tree-optimization/84086
12525	* tree-ssanames.c: Include cfgloop.h and tree-scalar-evolution.h.
12526	(flush_ssaname_freelist): When SSA names were released reset
12527	the SCEV hash table.
12528
125292018-01-29  Richard Biener  <rguenther@suse.de>
12530
12531	PR tree-optimization/84057
12532	* tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already
12533	removed paths when removing edges.
12534
125352018-01-27  H.J. Lu  <hongjiu.lu@intel.com>
12536
12537	* doc/invoke.texi: Replace -mfunction-return==@var{choice} with
12538	-mfunction-return=@var{choice}.
12539
125402018-01-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12541
12542	PR diagnostic/84034
12543	* diagnostic-show-locus.c (get_line_width_without_trailing_whitespace):
12544	Handle CR like TAB.
12545	(layout::print_source_line): Likewise.
12546	(test_get_line_width_without_trailing_whitespace): Add test cases.
12547
125482018-01-27  Jakub Jelinek  <jakub@redhat.com>
12549
12550	PR middle-end/84040
12551	* sched-deps.c (sched_macro_fuse_insns): Return immediately for
12552	debug insns.
12553
125542018-01-26  Jim Wilson  <jimw@sifive.com>
12555
12556	* config/riscv/riscv.h (MAX_FIXED_MODE_SIZE): New.
12557
12558	* config/riscv/elf.h (LIB_SPEC): Don't include -lgloss when nosys.specs
12559	specified.
12560
125612018-01-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12562
12563	* config/aarch64/aarch64.md: Add peepholes for CMP + SUB -> SUBS
12564	and CMP + SUB-immediate -> SUBS.
12565
125662018-01-26  Martin Sebor  <msebor@redhat.com>
12567
12568	PR tree-optimization/83896
12569	* tree-ssa-strlen.c (get_string_len): Rename...
12570	(get_string_cst_length): ...to this.  Return HOST_WIDE_INT.
12571	Avoid assuming length is constant.
12572	(handle_char_store): Use HOST_WIDE_INT for string length.
12573
125742018-01-26  Uros Bizjak  <ubizjak@gmail.com>
12575
12576	PR target/81763
12577	* config/i386/i386.md (*andndi3_doubleword): Add earlyclobber
12578	to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives.
12579
125802018-01-26  Richard Biener  <rguenther@suse.de>
12581
12582	PR rtl-optimization/84003
12583	* dse.c (record_store): Only record redundant stores when
12584	the earlier store aliases at least all accesses the later one does.
12585
125862018-01-26  Jakub Jelinek  <jakub@redhat.com>
12587
12588	PR rtl-optimization/83985
12589	* dce.c (deletable_insn_p): Return false for separate shrink wrapping
12590	REG_CFA_RESTORE insns.
12591	(delete_unmarked_insns): Don't ignore separate shrink wrapping
12592	REG_CFA_RESTORE insns here.
12593
12594	PR c/83989
12595	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Don't
12596	use SSA_NAME_VAR as base for SSA_NAMEs with non-NULL SSA_NAME_VAR.
12597
125982018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
12599
12600	* config/arc/arc-arch.h (arc_tune_attr): Add ARC_TUNE_CORE_3.
12601	* config/arc/arc.c (arc_sched_issue_rate): Use ARC_TUNE_... .
12602	(arc_init): Likewise.
12603	(arc_override_options): Likewise.
12604	(arc_file_start): Choose Tag_ARC_CPU_variation based on arc_tune
12605	value.
12606	(hwloop_fail): Use TARGET_DBNZ when we want to check for dbnz insn
12607	support.
12608	* config/arc/arc.h (TARGET_DBNZ): Define.
12609	* config/arc/arc.md (attr tune): Add core_3, use ARC_TUNE_... to
12610	properly set the tune attribute.
12611	(dbnz): Use TARGET_DBNZ guard.
12612	* config/arc/arc.opt (mtune): Add core3 option.
12613
126142018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
12615
12616	* config/arc/arc.c (arc_delegitimize_address_0): Refactored to
12617	recognize new pic like addresses.
12618	(arc_delegitimize_address): Clean up.
12619
126202018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
12621
12622	* config/arc/arc-arches.def: Option mrf16 valid for all
12623	architectures.
12624	* config/arc/arc-c.def (__ARC_RF16__): New predefined macro.
12625	* config/arc/arc-cpus.def (em_mini): New cpu with rf16 on.
12626	* config/arc/arc-options.def (FL_RF16): Add mrf16 option.
12627	* config/arc/arc-tables.opt: Regenerate.
12628	* config/arc/arc.c (arc_conditional_register_usage): Handle
12629	reduced register file case.
12630	(arc_file_start): Set must have build attributes.
12631	* config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using
12632	mrf16 option value.
12633	* config/arc/arc.opt (mrf16): Add new option.
12634	* config/arc/elf.h (ATTRIBUTE_PCS): Define.
12635	* config/arc/genmultilib.awk: Handle new mrf16 option.
12636	* config/arc/linux.h (ATTRIBUTE_PCS): Define.
12637	* config/arc/t-multilib: Regenerate.
12638	* doc/invoke.texi (ARC Options): Document mrf16 option.
12639
126402018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
12641
12642	* config/arc/arc-protos.h: Add arc_is_secure_call_p proto.
12643	* config/arc/arc.c (arc_handle_secure_attribute): New function.
12644	(arc_attribute_table): Add 'secure_call' attribute.
12645	(arc_print_operand): Print secure call operand.
12646	(arc_function_ok_for_sibcall): Don't optimize tail calls when
12647	secure.
12648	(arc_is_secure_call_p): New function.  * config/arc/arc.md
12649	(call_i): Add support for sjli instruction.
12650	(call_value_i): Likewise.
12651	* config/arc/constraints.md (Csc): New constraint.
12652
126532018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
12654	    John Eric Martin  <John.Martin@emmicro-us.com>
12655
12656	* config/arc/arc-protos.h: Add arc_is_jli_call_p proto.
12657	* config/arc/arc.c (_arc_jli_section): New struct.
12658	(arc_jli_section): New type.
12659	(rc_jli_sections): New static variable.
12660	(arc_handle_jli_attribute): New function.
12661	(arc_attribute_table): Add jli_always and jli_fixed attribute.
12662	(arc_file_end): New function.
12663	(TARGET_ASM_FILE_END): Define.
12664	(arc_print_operand): Reuse 'S' letter for JLI output instruction.
12665	(arc_add_jli_section): New function.
12666	(jli_call_scan): Likewise.
12667	(arc_reorg): Call jli_call_scan.
12668	(arc_output_addsi): Remove 'S' from printing asm operand.
12669	(arc_is_jli_call_p): New function.
12670	* config/arc/arc.md (movqi_insn): Remove 'S' from printing asm
12671	operand.
12672	(movhi_insn): Likewise.
12673	(movsi_insn): Likewise.
12674	(movsi_set_cc_insn): Likewise.
12675	(loadqi_update): Likewise.
12676	(load_zeroextendqisi_update): Likewise.
12677	(load_signextendqisi_update): Likewise.
12678	(loadhi_update): Likewise.
12679	(load_zeroextendhisi_update): Likewise.
12680	(load_signextendhisi_update): Likewise.
12681	(loadsi_update): Likewise.
12682	(loadsf_update): Likewise.
12683	(movsicc_insn): Likewise.
12684	(bset_insn): Likewise.
12685	(bxor_insn): Likewise.
12686	(bclr_insn): Likewise.
12687	(bmsk_insn): Likewise.
12688	(bicsi3_insn): Likewise.
12689	(cmpsi_cc_c_insn): Likewise.
12690	(movsi_ne): Likewise.
12691	(movsi_cond_exec): Likewise.
12692	(clrsbsi2): Likewise.
12693	(norm_f): Likewise.
12694	(normw): Likewise.
12695	(swap): Likewise.
12696	(divaw): Likewise.
12697	(flag): Likewise.
12698	(sr): Likewise.
12699	(kflag): Likewise.
12700	(ffs): Likewise.
12701	(ffs_f): Likewise.
12702	(fls): Likewise.
12703	(call_i): Remove 'S' asm letter, add jli instruction.
12704	(call_value_i): Likewise.
12705	* config/arc/arc.op (mjli-always): New option.
12706	* config/arc/constraints.md (Cji): New constraint.
12707	* config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm
12708	operand.
12709	(subsf3_fpx): Likewise.
12710	(mulsf3_fpx): Likewise.
12711	* config/arc/simdext.md (vendrec_insn): Remove 'S' from printing
12712	asm operand.
12713	* doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed'
12714	function attrbutes.
12715	* doc/invoke.texi (ARC): Document mjli-always option.
12716
127172018-01-26  Sebastian Perta  <sebastian.perta@renesas.com>
12718
12719	* config/rl78/rl78.c (rl78_addsi3_internal): If operand 2 is const
12720	avoid addition with 0 and use incw and decw where possible.
12721
127222018-01-26  Richard Biener  <rguenther@suse.de>
12723
12724	PR tree-optimization/81082
12725	* fold-const.c (fold_plusminus_mult_expr): Do not perform the
12726	association if it requires casting to unsigned.
12727	* match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived
12728	from fold_plusminus_mult_expr to catch important cases late when
12729	range info is available.
12730
127312018-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12732
12733	* config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove.
12734	* configure.ac (hidden_linkonce): New test.
12735	* configure: Regenerate.
12736	* config.in: Regenerate.
12737
127382018-01-26  Julia Koval  <julia.koval@intel.com>
12739
12740	* config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask,
12741	_mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask,
12742	_mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask,
12743	_mm_mask_bitshuffle_epi64_mask): Fix type.
12744	* config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI,
12745	USI_FTYPE_V4DI_V4DI_USI): Remove.
12746	* config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask,
12747	__builtin_ia32_vpshufbitqmb256_mask,
12748	__builtin_ia32_vpshufbitqmb128_mask): Fix types.
12749	* config/i386/i386.c (ix86_expand_args_builtin): Remove old types.
12750	* config/i386/sse.md (VI1_AVX512VLBW): Change types.
12751
127522018-01-26  Alan Modra  <amodra@gmail.com>
12753
12754	PR target/84033
12755	* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude
12756	UNSPEC_VBPERMQ.  Sort other unspecs.
12757
127582018-01-25  David Edelsohn  <dje.gcc@gmail.com>
12759
12760	* doc/invoke.texi (PowerPC Options): Document 'native' cpu type.
12761
127622018-01-25  Jan Hubicka  <hubicka@ucw.cz>
12763
12764	PR middle-end/83055
12765	* predict.c (drop_profile): Do not push/pop cfun; update also
12766	node->count.
12767	(handle_missing_profiles): Fix logic looking for zero profiles.
12768
127692018-01-25  Jakub Jelinek  <jakub@redhat.com>
12770
12771	PR middle-end/83977
12772	* ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature
12773	on functions with #pragma omp declare simd or functions with simd
12774	attribute.
12775	* omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change.
12776	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
12777	Remove trailing \n from warning_at calls.
12778
127792018-01-25  Tom de Vries  <tom@codesourcery.com>
12780
12781	PR target/84028
12782	* config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call
12783	for neutered workers.
12784
127852018-01-24  Joseph Myers  <joseph@codesourcery.com>
12786
12787	PR target/68467
12788	* config/m68k/m68k.c (m68k_promote_function_mode): New function.
12789	(TARGET_PROMOTE_FUNCTION_MODE): New macro.
12790
127912018-01-24  Jeff Law  <law@redhat.com>
12792
12793	PR target/83994
12794	* i386.c (get_probe_interval): Move to earlier point.
12795	(ix86_compute_frame_layout): If -fstack-clash-protection and
12796	the frame is larger than the probe interval, then use pushes
12797	to save registers rather than reg->mem moves.
12798	(ix86_expand_prologue): Remove conditional for int_registers_saved
12799	assertion.
12800
128012018-01-24  Vladimir Makarov  <vmakarov@redhat.com>
12802
12803	PR target/84014
12804	* ira-build.c (setup_min_max_allocno_live_range_point): Set up
12805	min/max for never referenced object.
12806
128072018-01-24  Jakub Jelinek  <jakub@redhat.com>
12808
12809	PR middle-end/83977
12810	* tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN
12811	here.
12812	* omp-low.c (create_omp_child_function): Remove "omp declare simd"
12813	attributes from DECL_ATTRIBUTES (decl) without affecting
12814	DECL_ATTRIBUTES (current_function_decl).
12815	* omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL
12816	functions with non-NULL DECL_ABSTRACT_ORIGIN.
12817
128182018-01-24  Richard Sandiford  <richard.sandiford@linaro.org>
12819
12820	PR tree-optimization/83979
12821	* fold-const.c (fold_comparison): Use constant_boolean_node
12822	instead of boolean_{true,false}_node.
12823
128242018-01-24  Jan Hubicka  <hubicka@ucw.cz>
12825
12826	* ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls
12827	with zero counts.
12828
128292018-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12830
12831	* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
12832	Simplify the clause that sets the length attribute.
12833	(*call_value_indirect_nonlocal_sysv<mode>): Likewise.
12834	(*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the
12835	clause that sets the length attribute.
12836	(*sibcall_value_nonlocal_sysv<mode>): Likewise.
12837
128382018-01-24  Tom de Vries  <tom@codesourcery.com>
12839
12840	PR target/83589
12841	* config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1.
12842	(nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c.
12843	Add strict parameter.
12844	(prevent_branch_around_nothing): Insert dummy insn between branch to
12845	label and label with no ptx insn inbetween.
12846	* config/nvptx/nvptx.md (define_insn "fake_nop"): New insn.
12847
128482018-01-24  Tom de Vries  <tom@codesourcery.com>
12849
12850	PR target/81352
12851	* config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call
12852	for neutered threads in warp.
12853	* config/nvptx/nvptx.md (define_insn "exit"): New insn.
12854
128552018-01-24  Richard Biener  <rguenther@suse.de>
12856
12857	PR tree-optimization/83176
12858	* tree-chrec.c (chrec_fold_plus_1): Handle (signed T){(T) .. }
12859	operands.
12860
128612018-01-24  Richard Biener  <rguenther@suse.de>
12862
12863	PR tree-optimization/82819
12864	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Avoid
12865	code generating pluses that are no-ops in the target precision.
12866
128672018-01-24  Richard Biener  <rguenther@suse.de>
12868
12869	PR middle-end/84000
12870	* tree-cfg.c (replace_loop_annotate): Handle annot_expr_parallel_kind.
12871
128722018-01-23  Jan Hubicka  <hubicka@ucw.cz>
12873
12874	* cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count
12875	to merge probabilities.
12876	* predict.c (probably_never_executed): Also mark as cold functions
12877	with global 0 profile and guessed local profile.
12878	* profile-count.c (profile_probability::combine_with_count): New
12879	member function.
12880	* profile-count.h (profile_probability::operator*,
12881	profile_probability::operator*=, profile_probability::operator/,
12882	profile_probability::operator/=): Reduce precision to adjusted
12883	and set value to guessed on contradictory divisions.
12884	(profile_probability::combine_with_freq): Remove.
12885	(profile_probability::combine_wiht_count): Declare.
12886	(profile_count::force_nonzero):: Set to adjusted.
12887	(profile_count::probability_in):: Set quality to adjusted.
12888	* tree-ssa-tail-merge.c (replace_block_by): Use
12889	combine_with_count.
12890
128912018-01-23  Andrew Waterman  <andrew@sifive.com>
12892	    Jim Wilson  <jimw@sifive.com>
12893
12894	* config/riscv/riscv.c (riscv_stack_boundary): New.
12895	(riscv_option_override): Set riscv_stack_boundary.  Handle
12896	riscv_preferred_stack_boundary_arg.
12897	* config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New.
12898	(BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY.
12899	(STACK_BOUNDARY): Set to riscv_stack_boundary.
12900	(RISCV_STACK_ALIGN): Use STACK_BOUNDARY.
12901	* config/riscv/riscv.opt (mpreferred-stack-boundary): New.
12902	* doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary.
12903
129042018-01-23  H.J. Lu  <hongjiu.lu@intel.com>
12905
12906	PR target/83905
12907	* config/i386/i386.c (ix86_expand_prologue): Use cost reference
12908	of struct ix86_frame.
12909	(ix86_expand_epilogue): Likewise.  Add a local variable for
12910	the reg_save_offset field in struct ix86_frame.
12911
129122018-01-23  Bin Cheng  <bin.cheng@arm.com>
12913
12914	PR tree-optimization/82604
12915	* tree-loop-distribution.c (enum partition_kind): New enum item
12916	PKIND_PARTIAL_MEMSET.
12917	(partition_builtin_p): Support above new enum item.
12918	(generate_code_for_partition): Ditto.
12919	(compute_access_range): Differentiate cases that equality can be
12920	proven at all loops, the innermost loops or no loops.
12921	(classify_builtin_st, classify_builtin_ldst): Adjust call to above
12922	function.  Set PKIND_PARTIAL_MEMSET for partition appropriately.
12923	(finalize_partitions, distribute_loop): Don't fuse partition of
12924	PKIND_PARTIAL_MEMSET kind when distributing 3-level loop nest.
12925	(prepare_perfect_loop_nest): Distribute 3-level loop nest only if
12926	parloop is enabled.
12927
129282018-01-23  Martin Liska  <mliska@suse.cz>
12929
12930	* predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in
12931	order to ignore the predictor.
12932	(PRED_POLYMORPHIC_CALL): Likewise.
12933	(PRED_RECURSIVE_CALL): Likewise.
12934
129352018-01-23  Martin Liska  <mliska@suse.cz>
12936
12937	* tree-profile.c (tree_profiling): Print function header to
12938	aware reader which function we are working on.
12939	* value-prof.c (gimple_find_values_to_profile): Do not print
12940	not interesting value histograms.
12941
129422018-01-23  Martin Liska  <mliska@suse.cz>
12943
12944	* profile-count.h (enum profile_quality): Add
12945	profile_uninitialized as the first value. Do not number values
12946	as they are zero based.
12947	(profile_count::verify): Update sanity check.
12948	(profile_probability::verify): Likewise.
12949
129502018-01-23  Nathan Sidwell  <nathan@acm.org>
12951
12952	* doc/invoke.texi (ffor-scope): Deprecate.
12953
129542018-01-23  David Malcolm  <dmalcolm@redhat.com>
12955
12956	PR tree-optimization/83510
12957	* domwalk.c (set_all_edges_as_executable): New function.
12958	(dom_walker::dom_walker): Convert bool param
12959	"skip_unreachable_blocks" to enum reachability.  Move setup of
12960	edge flags to set_all_edges_as_executable and only do it when
12961	reachability is REACHABLE_BLOCKS.
12962	* domwalk.h (enum dom_walker::reachability): New enum.
12963	(dom_walker::dom_walker): Convert bool param
12964	"skip_unreachable_blocks" to enum reachability.
12965	(set_all_edges_as_executable): New decl.
12966	* graphite-scop-detection.c  (gather_bbs::gather_bbs): Convert
12967	from false for "skip_unreachable_blocks" to ALL_BLOCKS for
12968	"reachability".
12969	* tree-ssa-dom.c (dom_opt_dom_walker::dom_opt_dom_walker): Likewise,
12970	but converting true to REACHABLE_BLOCKS.
12971	* tree-ssa-sccvn.c (sccvn_dom_walker::sccvn_dom_walker): Likewise.
12972	* tree-vrp.c
12973	(check_array_bounds_dom_walker::check_array_bounds_dom_walker):
12974	Likewise, but converting it to REACHABLE_BLOCKS_PRESERVING_FLAGS.
12975	(vrp_dom_walker::vrp_dom_walker): Likewise, but converting it to
12976	REACHABLE_BLOCKS.
12977	(vrp_prop::vrp_finalize): Call set_all_edges_as_executable
12978	if check_all_array_refs will be called.
12979
129802018-01-23  David Malcolm  <dmalcolm@redhat.com>
12981
12982	* tree.c (selftest::test_location_wrappers): Add more test
12983	coverage.
12984
129852018-01-23  David Malcolm  <dmalcolm@redhat.com>
12986
12987	* sbitmap.c (selftest::test_set_range): Fix memory leaks.
12988	(selftest::test_bit_in_range): Likewise.
12989
129902018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
12991
12992	PR testsuite/83888
12993	* doc/sourcebuild.texi (vect_float): Say that the selector
12994	only describes the situation when -funsafe-math-optimizations is on.
12995	(vect_float_strict): Document.
12996
129972018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
12998
12999	PR tree-optimization/83965
13000	* tree-vect-patterns.c (vect_reassociating_reduction_p): New function.
13001	(vect_recog_dot_prod_pattern, vect_recog_sad_pattern): Use it
13002	instead of checking only for a reduction.
13003	(vect_recog_widen_sum_pattern): Likewise.
13004
130052018-01-23  Jan Hubicka  <hubicka@ucw.cz>
13006
13007	* predict.c (probably_never_executed): Only use precise profile info.
13008	(compute_function_frequency): Skip after inlining hack since we now
13009	have quality checking.
13010
130112018-01-23  Jan Hubicka  <hubicka@ucw.cz>
13012
13013	* profile-count.h (profile_probability::very_unlikely,
13014	profile_probability::unlikely, profile_probability::even): Set
13015	precision to guessed.
13016
130172018-01-23  Richard Biener  <rguenther@suse.de>
13018
13019	PR tree-optimization/83963
13020	* graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
13021	Properly terminate dominator walk when crossing the exit edge not
13022	when visiting its source block.
13023
130242018-01-23  Jakub Jelinek  <jakub@redhat.com>
13025
13026	PR c++/83918
13027	* tree.c (maybe_wrap_with_location): Use NON_LVALUE_EXPR rather than
13028	VIEW_CONVERT_EXPR to wrap CONST_DECLs.
13029
130302018-01-22  Jakub Jelinek  <jakub@redhat.com>
13031
13032	PR tree-optimization/83957
13033	* omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs.  Remove
13034	semicolon after for body surrounded by braces.
13035
13036	PR tree-optimization/83081
13037	* profile-count.h (profile_probability::split): New method.
13038	* dojump.c (do_jump_1) <case TRUTH_ANDIF_EXPR, case TRUTH_ORIF_EXPR>:
13039	Use profile_probability::split.
13040	(do_compare_rtx_and_jump): Fix adjustment of probabilities
13041	when splitting a single conditional jump into 2.
13042
130432018-01-22  David Malcolm  <dmalcolm@redhat.com>
13044
13045	PR tree-optimization/69452
13046	* tree-ssa-loop-im.c (class move_computations_dom_walker): Remove
13047	decl.
13048
130492018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
13050
13051	* config/rl78/rl78-expand.md (bswaphi2): New define_expand.
13052	* config/rl78/rl78-virt.md (*bswaphi2_virt): New define_insn.
13053	* config/rl78/rl78-real.md (*bswaphi2_real): New define_insn.
13054
130552018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
13056
13057	* config/rl78/rl78-protos.h (rl78_split_movdi): New function declaration.
13058	* config/rl78/rl78.md (movdi): New define_expand.
13059	* config/rl78/rl78.c (rl78_split_movdi): New function.
13060
130612018-01-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
13062
13063	PR target/83862
13064	* config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete,
13065	no longer used.
13066	* config/rs6000/rs6000.c (rs6000_split_signbit): Likewise.
13067	* config/rs6000/rs6000.md (signbit<mode>2): Change code for IEEE
13068	128-bit to produce an UNSPEC move to get the double word with the
13069	signbit and then a shift directly to do signbit.
13070	(signbit<mode>2_dm): Replace old IEEE 128-bit signbit
13071	implementation with a new version that just does either a direct
13072	move or a regular move.  Move memory interface to separate insns.
13073	Move insns so they are next to the expander.
13074	(signbit<mode>2_dm_mem_be): New combiner insns to combine load
13075	with signbit move.  Split big and little endian case.
13076	(signbit<mode>2_dm_mem_le): Likewise.
13077	(signbit<mode>2_dm_<su>ext): Delete, no longer used.
13078	(signbit<mode>2_dm2): Likewise.
13079
130802018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
13081
13082	* config/rl78/rl78.md (anddi3): New define_expand.
13083
130842018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
13085
13086	* config/rl78/rl78.md (umindi3): New define_expand.
13087
130882018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
13089
13090	* config/rl78/rl78.md (smindi3): New define_expand.
13091
130922018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
13093
13094	* config/rl78/rl78.md (smaxdi3): New define_expand.
13095
130962018-01-22  Carl Love  <cel@us.ibm.com>
13097
13098	* config/rs6000/rs6000-builtin.def (ST_ELEMREV_V1TI, LD_ELEMREV_V1TI,
13099	LVX_V1TI): Add macro expansion.
13100	* config/rs6000/rs6000-c.c (altivec_builtin_types): Add argument
13101	definitions for VSX_BUILTIN_VEC_XST_BE, VSX_BUILTIN_VEC_ST,
13102	VSX_BUILTIN_VEC_XL, LD_ELEMREV_V1TI builtins.
13103	* config/rs6000/rs6000-p8swap.c (insn_is_swappable_p);
13104	Change check to determine if the instruction is a byte reversing
13105	entry.  Fix typo in comment.
13106	* config/rs6000/rs6000.c (altivec_expand_builtin): Add case entry
13107	for VSX_BUILTIN_ST_ELEMREV_V1TI and VSX_BUILTIN_LD_ELEMREV_V1TI.
13108	Add def_builtin calls for new builtins.
13109	* config/rs6000/vsx.md (vsx_st_elemrev_v1ti, vsx_ld_elemrev_v1ti):
13110	Add define_insn expansion.
13111
131122018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
13113
13114	* config/rl78/rl78.md (umaxdi3): New define_expand.
13115
131162018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
13117
13118	* config/rl78/rl78.c (rl78_note_reg_set): Fixed dead reg check
13119	for non-QImode registers.
13120
131212018-01-22  Richard Biener  <rguenther@suse.de>
13122
13123	PR tree-optimization/83963
13124	* graphite-scop-detection.c (scop_detection::get_sese): Delay
13125	including the loop exit block.
13126	(scop_detection::merge_sese): Likewise.
13127	(scop_detection::add_scop): Do it here instead.
13128
131292018-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13130
13131	* doc/sourcebuild.texi (arm_softfloat): Document.
13132
131332018-01-21  John David Anglin  <danglin@gcc.gnu.org>
13134
13135	PR gcc/77734
13136	* config/pa/pa.c (pa_function_ok_for_sibcall): Use
13137	targetm.binds_local_p instead of TREE_PUBLIC to check local binding.
13138	Move TARGET_PORTABLE_RUNTIME check after TARGET_64BIT check.
13139
131402018-01-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13141	    David Edelsohn  <dje.gcc@gmail.com>
13142
13143	PR target/83946
13144	* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
13145	Change "crset eq" to "crset 2".
13146	(*call_value_indirect_nonlocal_sysv<mode>): Likewise.
13147	(*call_indirect_aix<mode>_nospec): Likewise.
13148	(*call_value_indirect_aix<mode>_nospec): Likewise.
13149	(*call_indirect_elfv2<mode>_nospec): Likewise.
13150	(*call_value_indirect_elfv2<mode>_nospec): Likewise.
13151	(*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2";
13152	change assembly output from . to $.
13153	(*sibcall_value_nonlocal_sysv<mode>): Likewise.
13154	(indirect_jump<mode>_nospec): Change assembly output from . to $.
13155	(*tablejump<mode>_internal1_nospec): Likewise.
13156
131572018-01-21  Oleg Endo  <olegendo@gcc.gnu.org>
13158
13159	PR target/80870
13160	* config/sh/sh_optimize_sett_clrt.cc:
13161	Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes.
13162
131632018-01-20  Richard Sandiford  <richard.sandiford@linaro.org>
13164
13165	PR tree-optimization/83940
13166	* tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Set
13167	offset_dt to vect_constant_def rather than vect_unknown_def_type.
13168	(vect_check_load_store_mask): Add a mask_dt_out parameter and
13169	use it to pass back the definition type.
13170	(vect_check_store_rhs): Likewise rhs_dt_out.
13171	(vect_build_gather_load_calls): Add a mask_dt argument and use
13172	it instead of a call to vect_is_simple_use.
13173	(vectorizable_store): Update calls to vect_check_load_store_mask
13174	and vect_check_store_rhs.  Use the dt returned by the latter instead
13175	of scatter_src_dt.  Use the cached mask_dt and gs_info.offset_dt
13176	instead of calls to vect_is_simple_use.  Pass the scalar rather
13177	than the vector operand to vect_is_simple_use when handling
13178	second and subsequent copies of an rhs value.
13179	(vectorizable_load): Update calls to vect_check_load_store_mask
13180	and vect_build_gather_load_calls.  Use the cached mask_dt and
13181	gs_info.offset_dt instead of calls to vect_is_simple_use.
13182
131832018-01-20  Jakub Jelinek  <jakub@redhat.com>
13184
13185	PR middle-end/83945
13186	* tree-emutls.c: Include gimplify.h.
13187	(lower_emutls_2): New function.
13188	(lower_emutls_1): If ADDR_EXPR is a gimple invariant and walk_tree
13189	with lower_emutls_2 callback finds some TLS decl in it, unshare_expr
13190	it before further processing.
13191
13192	PR target/83930
13193	* simplify-rtx.c (simplify_binary_operation_1) <case UMOD>: Use
13194	UINTVAL (trueop1) instead of INTVAL (op1).
13195
131962018-01-19  Jakub Jelinek  <jakub@redhat.com>
13197
13198	PR debug/81570
13199	PR debug/83728
13200	* dwarf2cfi.c (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define to
13201	INCOMING_FRAME_SP_OFFSET if not defined.
13202	(scan_trace): Add ENTRY argument.  If true and
13203	DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET,
13204	emit a note to adjust the CFA offset.
13205	(create_cfi_notes): Adjust scan_trace callers.
13206	(create_cie_data): Use DEFAULT_INCOMING_FRAME_SP_OFFSET rather than
13207	INCOMING_FRAME_SP_OFFSET in the CIE.
13208	* config/i386/i386.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define.
13209	* config/stormy16/stormy16.h (DEFAULT_INCOMING_FRAME_SP_OFFSET):
13210	Likewise.
13211	* doc/tm.texi.in (DEFAULT_INCOMING_FRAME_SP_OFFSET): Document.
13212	* doc/tm.texi: Regenerated.
13213
132142018-01-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13215
13216	PR rtl-optimization/83147
13217	* lra-constraints.c (remove_inheritance_pseudos): Use
13218	lra_substitute_pseudo_within_insn.
13219
132202018-01-19  Tom de Vries  <tom@codesourcery.com>
13221	    Cesar Philippidis  <cesar@codesourcery.com>
13222
13223	PR target/83920
13224	* config/nvptx/nvptx.c (nvptx_single): Fix jit workaround.
13225
132262018-01-19  Cesar Philippidis  <cesar@codesourcery.com>
13227
13228	PR target/83790
13229	* config/nvptx/nvptx.c (output_init_frag): Don't use generic address
13230	spaces for function labels.
13231
132322018-01-19  Martin Liska  <mliska@suse.cz>
13233
13234	* predict.def (PRED_LOOP_EXIT): Change from 85 to 89.
13235	(PRED_LOOP_EXIT_WITH_RECURSION): Change from 72 to 78.
13236	(PRED_LOOP_EXTRA_EXIT): Change from 83 to 67.
13237	(PRED_OPCODE_POSITIVE): Change from 64 to 59.
13238	(PRED_TREE_OPCODE_POSITIVE): Change from 64 to 59.
13239	(PRED_CONST_RETURN): Change from 69 to 65.
13240	(PRED_NULL_RETURN): Change from 91 to 71.
13241	(PRED_LOOP_IV_COMPARE_GUESS): Change from 98 to 64.
13242	(PRED_LOOP_GUARD): Change from 66 to 73.
13243
132442018-01-19  Martin Liska  <mliska@suse.cz>
13245
13246	* predict.c (predict_insn_def): Add new assert.
13247	(struct branch_predictor): Change type to signed integer.
13248	(test_prediction_value_range): Amend test to cover
13249	PROB_UNINITIALIZED.
13250	* predict.def (PRED_LOOP_ITERATIONS): Use the new constant.
13251	(PRED_LOOP_ITERATIONS_GUESSED): Likewise.
13252	(PRED_LOOP_ITERATIONS_MAX): Likewise.
13253	(PRED_LOOP_IV_COMPARE): Likewise.
13254	* predict.h (PROB_UNINITIALIZED): Define new constant.
13255
132562018-01-19  Martin Liska  <mliska@suse.cz>
13257
13258	* predict.c (dump_prediction): Add new format for
13259	analyze_brprob.py script which is enabled with -details
13260	suboption.
13261	* profile-count.h (precise_p): New function.
13262
132632018-01-19  Richard Sandiford  <richard.sandiford@linaro.org>
13264
13265	PR tree-optimization/83922
13266	* tree-vect-loop.c (vect_verify_full_masking): Return false if
13267	there are no statements that need masking.
13268	(vect_active_double_reduction_p): New function.
13269	(vect_analyze_loop_operations): Use it when handling phis that
13270	are not in the loop header.
13271
132722018-01-19  Richard Sandiford  <richard.sandiford@linaro.org>
13273
13274	PR tree-optimization/83914
13275	* tree-vect-loop.c (vectorizable_induction): Don't convert
13276	init_expr or apply the peeling adjustment for inductions
13277	that are nested within the vectorized loop.
13278
132792018-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13280
13281	* config/arm/thumb2.md (*thumb2_negsi2_short): Use RSB mnemonic
13282	instead of NEG.
13283
132842018-01-18  Jakub Jelinek  <jakub@redhat.com>
13285
13286	PR sanitizer/81715
13287	PR testsuite/83882
13288	* function.h (gimplify_parameters): Add gimple_seq * argument.
13289	* function.c: Include gimple.h and options.h.
13290	(gimplify_parameters): Add cleanup argument, add CLOBBER stmts
13291	for the added local temporaries if needed.
13292	* gimplify.c (gimplify_body): Adjust gimplify_parameters caller,
13293	if there are any parameter cleanups, wrap whole body into a
13294	try/finally with the cleanups.
13295
132962018-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
13297
13298	PR target/82964
13299	* config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
13300	Use GET_MODE_CLASS for scalar floating point.
13301
133022018-01-18  Jan Hubicka  <hubicka@ucw.cz>
13303
13304	PR ipa/82256
13305	patch by PaX Team
13306	* cgraphclones.c (cgraph_node::create_version_clone_with_body):
13307	Fix call of call_cgraph_insertion_hooks.
13308
133092018-01-18  Martin Sebor  <msebor@redhat.com>
13310
13311	* doc/invoke.texi (-Wclass-memaccess): Tweak text.
13312
133132018-01-18  Jan Hubicka  <hubicka@ucw.cz>
13314
13315	PR ipa/83619
13316	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge
13317	frequencies.
13318
133192018-01-18  Boris Kolpackov  <boris@codesynthesis.com>
13320
13321	PR other/70268
13322	* common.opt: (-ffile-prefix-map): New option.
13323	* opts.c (common_handle_option): Defer it.
13324	* opts-global.c (handle_common_deferred_options): Handle it.
13325	* debug.h (remap_debug_filename, add_debug_prefix_map): Move to...
13326	* file-prefix-map.h: New file.
13327	(remap_debug_filename, add_debug_prefix_map): ...here.
13328	(add_macro_prefix_map, add_file_prefix_map, remap_macro_filename): New.
13329	* final.c (debug_prefix_map, add_debug_prefix_map
13330	remap_debug_filename): Move to...
13331	* file-prefix-map.c: New file.
13332	(file_prefix_map, add_prefix_map, remap_filename) ...here and rename,
13333	generalize, get rid of alloca(), use strrchr() instead of strchr().
13334	(add_macro_prefix_map, add_debug_prefix_map, add_file_prefix_map):
13335	Implement in terms of add_prefix_map().
13336	(remap_macro_filename, remap_debug_filename): Implement in term of
13337	remap_filename().
13338	* Makefile.in (OBJS, PLUGIN_HEADERS): Add new files.
13339	* builtins.c (fold_builtin_FILE): Call remap_macro_filename().
13340	* dbxout.c: Include file-prefix-map.h.
13341	* varasm.c: Likewise.
13342	* vmsdbgout.c: Likewise.
13343	* xcoffout.c: Likewise.
13344	* dwarf2out.c: Likewise plus omit new options from DW_AT_producer.
13345	* doc/cppopts.texi (-fmacro-prefix-map): Document.
13346	* doc/invoke.texi (-ffile-prefix-map): Document.
13347	(-fdebug-prefix-map): Update description.
13348
133492018-01-18  Martin Liska  <mliska@suse.cz>
13350
13351	* config/i386/i386.c (indirect_thunk_name): Document that also
13352	lfence is emitted.
13353	(output_indirect_thunk): Document why both instructions
13354	(pause and lfence) are generated.
13355
133562018-01-18  Richard Biener  <rguenther@suse.de>
13357
13358	PR tree-optimization/83887
13359	* graphite-scop-detection.c
13360	(scop_detection::get_nearest_dom_with_single_entry): Remove.
13361	(scop_detection::get_nearest_pdom_with_single_exit): Likewise.
13362	(scop_detection::merge_sese): Re-implement with a flood-fill
13363	algorithm that properly finds a SESE region if it exists.
13364
133652018-01-18  Jakub Jelinek  <jakub@redhat.com>
13366
13367	PR c/61240
13368	* match.pd ((P + A) - P, P - (P + A), (P + A) - (P + B)): For
13369	pointer_diff optimizations use view_convert instead of convert.
13370
133712018-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13372
13373	* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
13374	Generate different code for -mno-speculate-indirect-jumps.
13375	(*call_value_indirect_nonlocal_sysv<mode>): Likewise.
13376	(*call_indirect_aix<mode>): Disable for
13377	-mno-speculate-indirect-jumps.
13378	(*call_indirect_aix<mode>_nospec): New define_insn.
13379	(*call_value_indirect_aix<mode>): Disable for
13380	-mno-speculate-indirect-jumps.
13381	(*call_value_indirect_aix<mode>_nospec): New define_insn.
13382	(*sibcall_nonlocal_sysv<mode>): Generate different code for
13383	-mno-speculate-indirect-jumps.
13384	(*sibcall_value_nonlocal_sysv<mode>): Likewise.
13385
133862018-01-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
13387
13388	* config/rs6000/rs6000.c (rs6000_emit_move): If we load or store a
13389	long double type, set the flags for noting the default long double
13390	type, even if we don't pass or return a long double type.
13391
133922018-01-17  Jan Hubicka  <hubicka@ucw.cz>
13393
13394	PR ipa/83051
13395	* ipa-inline.c (flatten_function): Do not overwrite final inlining
13396	failure.
13397
133982018-01-17  Will Schmidt  <will_schmidt@vnet.ibm.com>
13399
13400	* config/rs6000/rs6000.c (rs6000_gimple_builtin): Add gimple folding
13401	support for merge[hl].
13402	(fold_mergehl_helper): New helper function.
13403	(tree-vector-builder.h): New #include for tree_vector_builder usage.
13404	* config/rs6000/altivec.md (altivec_vmrghw_direct): Add xxmrghw insn.
13405	(altivec_vmrglw_direct): Add xxmrglw insn.
13406
134072018-01-17  Andrew Waterman  <andrew@sifive.com>
13408
13409	* config/riscv/riscv.c (riscv_conditional_register_usage): If
13410	UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs.
13411
134122018-01-17  David Malcolm  <dmalcolm@redhat.com>
13413
13414	PR lto/83121
13415	* ipa-devirt.c (add_type_duplicate): When comparing memory layout,
13416	call the lto_location_cache before reading the
13417	DECL_SOURCE_LOCATION of the types.
13418
134192018-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
13420	    Richard Sandiford  <richard.sandiford@linaro.org>
13421
13422	* config/aarch64/aarch64.md (movti_aarch64): Use Uti constraint.
13423	* config/aarch64/aarch64.c (aarch64_mov128_immediate): New function.
13424	(aarch64_legitimate_constant_p): Just support CONST_DOUBLE
13425	SF/DF/TF mode to avoid creating illegal CONST_WIDE_INT immediates.
13426	* config/aarch64/aarch64-protos.h (aarch64_mov128_immediate):
13427	Add declaration.
13428	* config/aarch64/constraints.md (aarch64_movti_operand):
13429	Limit immediates.
13430	* config/aarch64/predicates.md (Uti): Add new constraint.
13431
134322018-01-17 Carl Love  <cel@us.ibm.com>
13433
13434	* config/rs6000/vsx.md (define_expand xl_len_r,
13435	define_expand stxvl, define_expand *stxvl): Add match_dup argument.
13436	(define_insn): Add, match_dup 1 argument to define_insn stxvll and
13437	lxvll.
13438	(define_expand, define_insn): Move the shift left from	the
13439	define_insn to the define_expand for lxvl and stxvl instructions.
13440	* config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_2): Change LXVL
13441	and XL_LEN_R definitions to PURE.
13442
134432018-01-17  Uros Bizjak  <ubizjak@gmail.com>
13444
13445	* config/i386/i386.c (indirect_thunk_name): Declare regno
13446	as unsigned int.  Compare regno with INVALID_REGNUM.
13447	(output_indirect_thunk): Ditto.
13448	(output_indirect_thunk_function): Ditto.
13449	(ix86_code_end): Declare regno as unsigned int.  Use INVALID_REGNUM
13450	in the call to output_indirect_thunk_function.
13451
134522018-01-17  Richard Sandiford  <richard.sandiford@linaro.org>
13453
13454	PR middle-end/83884
13455	* expr.c (expand_expr_real_1): Use the size of GET_MODE (op0)
13456	rather than the size of inner_type to determine the stack slot size
13457	when handling VIEW_CONVERT_EXPRs on strict-alignment targets.
13458
134592018-01-16  Sebastian Peryt  <sebastian.peryt@intel.com>
13460
13461	PR target/83546
13462	* config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND
13463	to PTA_SILVERMONT.
13464
134652018-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
13466
13467	* config.gcc (powerpc*-linux*-*): Add support for 64-bit little
13468	endian Linux systems to optionally enable multilibs for selecting
13469	the long double type if the user configured an explicit type.
13470	* config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Indicate we
13471	have no long double multilibs if not defined.
13472	* config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
13473	warn if the user used -mabi={ieee,ibm}longdouble and we built
13474	multilibs for long double.
13475	* config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Define as the
13476	appropriate multilib option.
13477	(MULTILIB_DEFAULTS): Add MULTILIB_DEFAULTS_IEEE to the default
13478	multilib options.
13479	* config/rs6000/t-ldouble-linux64le-ibm: New configuration files
13480	for building long double multilibs.
13481	* config/rs6000/t-ldouble-linux64le-ieee: Likewise.
13482
134832018-01-16  John David Anglin  <danglin@gcc.gnu.org>
13484
13485	* config.gcc (hppa*-*-linux*): Change callee copies ABI to caller
13486	copies.
13487
13488	* config/pa.h (MALLOC_ABI_ALIGNMENT): Set 32-bit alignment default to
13489	64 bits.
13490	* config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Set alignment to
13491	128 bits.
13492
13493	* config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Cleanup type and mode
13494	variables.
13495
13496	* config/pa/pa.c (pa_function_arg_size): Apply CEIL to GET_MODE_SIZE
13497	return value.
13498
134992018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
13500
13501	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For an
13502	ADDR_EXPR, do not count the offset of a COMPONENT_REF twice.
13503
135042018-01-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13505
13506	* config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Generate
13507	different rtl trees depending on TARGET_64BIT.
13508	(rs6000_gen_lvx): Likewise.
13509
135102018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
13511
13512	* config/visium/visium.md (nop): Tweak comment.
13513	(hazard_nop): Likewise.
13514
135152018-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13516
13517	* config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for
13518	-mspeculate-indirect-jumps.
13519	* config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable
13520	for -mno-speculate-indirect-jumps.
13521	(*call_indirect_elfv2<mode>_nospec): New define_insn.
13522	(*call_value_indirect_elfv2<mode>): Disable for
13523	-mno-speculate-indirect-jumps.
13524	(*call_value_indirect_elfv2<mode>_nospec): New define_insn.
13525	(indirect_jump): Emit different RTL for
13526	-mno-speculate-indirect-jumps.
13527	(*indirect_jump<mode>): Disable for
13528	-mno-speculate-indirect-jumps.
13529	(*indirect_jump<mode>_nospec): New define_insn.
13530	(tablejump): Emit different RTL for
13531	-mno-speculate-indirect-jumps.
13532	(tablejumpsi): Disable for -mno-speculate-indirect-jumps.
13533	(tablejumpsi_nospec): New define_expand.
13534	(tablejumpdi): Disable for -mno-speculate-indirect-jumps.
13535	(tablejumpdi_nospec): New define_expand.
13536	(*tablejump<mode>_internal1): Disable for
13537	-mno-speculate-indirect-jumps.
13538	(*tablejump<mode>_internal1_nospec): New define_insn.
13539	* config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New
13540	option.
13541
135422018-01-16  Artyom Skrobov tyomitch@gmail.com
13543
13544	* caller-save.c (insert_save): Drop unnecessary parameter.  All
13545	callers updated.
13546
135472018-01-16  Jakub Jelinek  <jakub@redhat.com>
13548	    Richard Biener  <rguenth@suse.de>
13549
13550	PR libgomp/83590
13551	* gimplify.c (gimplify_one_sizepos): For is_gimple_constant (expr)
13552	return early, inline manually is_gimple_sizepos.  Make sure if we
13553	call gimplify_expr we don't end up with a gimple constant.
13554	* tree.c (variably_modified_type_p): Don't return true for
13555	is_gimple_constant (_t).  Inline manually is_gimple_sizepos.
13556	* gimplify.h (is_gimple_sizepos): Remove.
13557
135582018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
13559
13560	PR tree-optimization/83857
13561	* tree-vect-loop.c (vect_analyze_loop_operations): Don't call
13562	vectorizable_live_operation for pure SLP statements.
13563	(vectorizable_live_operation): Handle PHIs.
13564
135652018-01-16  Richard Biener  <rguenther@suse.de>
13566
13567	PR tree-optimization/83867
13568	* tree-vect-stmts.c (vect_transform_stmt): Precompute
13569	nested_in_vect_loop_p since the scalar stmt may get invalidated.
13570
135712018-01-16  Jakub Jelinek  <jakub@redhat.com>
13572
13573	PR c/83844
13574	* stor-layout.c (handle_warn_if_not_align): Use byte_position and
13575	multiple_of_p instead of unchecked tree_to_uhwi and UHWI check.
13576	If off is not INTEGER_CST, issue a may not be aligned warning
13577	rather than isn't aligned.  Use isn%'t rather than isn't.
13578	* fold-const.c (multiple_of_p) <case BIT_AND_EXPR>: Don't fall through
13579	into MULT_EXPR.
13580	<case MULT_EXPR>: Improve the case when bottom and one of the
13581	MULT_EXPR operands are INTEGER_CSTs and bottom is multiple of that
13582	operand, in that case check if the other operand is multiple of
13583	bottom divided by the INTEGER_CST operand.
13584
135852018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
13586
13587	PR target/83858
13588	* config/pa/pa.h (FUNCTION_ARG_SIZE): Delete.
13589	* config/pa/pa-protos.h (pa_function_arg_size): Declare.
13590	* config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Use
13591	pa_function_arg_size instead of FUNCTION_ARG_SIZE.
13592	* config/pa/pa.c (pa_function_arg_advance): Likewise.
13593	(pa_function_arg, pa_arg_partial_bytes): Likewise.
13594	(pa_function_arg_size): New function.
13595
135962018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
13597
13598	* fold-const.c (fold_ternary_loc): Construct the vec_perm_indices
13599	in a separate statement.
13600
136012018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
13602
13603	PR tree-optimization/83847
13604	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Don't
13605	group gathers and scatters.
13606
136072018-01-16  Jakub Jelinek  <jakub@redhat.com>
13608
13609	PR rtl-optimization/86620
13610	* params.def (max-sched-ready-insns): Bump minimum value to 1.
13611
13612	PR rtl-optimization/83213
13613	* recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn
13614	to last if both are JUMP_INSNs.
13615
13616	PR tree-optimization/83843
13617	* gimple-ssa-store-merging.c
13618	(imm_store_chain_info::output_merged_store): Handle bit_not_p on
13619	store_immediate_info for bswap/nop orig_stores.
13620
136212018-01-15  Andrew Waterman  <andrew@sifive.com>
13622
13623	* config/riscv/riscv.c (riscv_rtx_costs) <MULT>: Increase cost if
13624	!TARGET_MUL.
13625	<UDIV>: Increase cost if !TARGET_DIV.
13626
136272018-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
13628
13629	* config/rs6000/rs6000.md (define_attr "type"): Remove delayed_cr.
13630	(define_attr "cr_logical_3op"): New.
13631	(cceq_ior_compare): Adjust.
13632	(cceq_ior_compare_complement): Adjust.
13633	(*cceq_rev_compare): Adjust.
13634	* config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
13635	(is_cracked_insn): Adjust.
13636	(insn_must_be_first_in_group): Adjust.
13637	* config/rs6000/40x.md: Adjust.
13638	* config/rs6000/440.md: Adjust.
13639	* config/rs6000/476.md: Adjust.
13640	* config/rs6000/601.md: Adjust.
13641	* config/rs6000/603.md: Adjust.
13642	* config/rs6000/6xx.md: Adjust.
13643	* config/rs6000/7450.md: Adjust.
13644	* config/rs6000/7xx.md: Adjust.
13645	* config/rs6000/8540.md: Adjust.
13646	* config/rs6000/cell.md: Adjust.
13647	* config/rs6000/e300c2c3.md: Adjust.
13648	* config/rs6000/e500mc.md: Adjust.
13649	* config/rs6000/e500mc64.md: Adjust.
13650	* config/rs6000/e5500.md: Adjust.
13651	* config/rs6000/e6500.md: Adjust.
13652	* config/rs6000/mpc.md: Adjust.
13653	* config/rs6000/power4.md: Adjust.
13654	* config/rs6000/power5.md: Adjust.
13655	* config/rs6000/power6.md: Adjust.
13656	* config/rs6000/power7.md: Adjust.
13657	* config/rs6000/power8.md: Adjust.
13658	* config/rs6000/power9.md: Adjust.
13659	* config/rs6000/rs64.md: Adjust.
13660	* config/rs6000/titan.md: Adjust.
13661
136622018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
13663
13664	* config/i386/predicates.md (indirect_branch_operand): Rewrite
13665	ix86_indirect_branch_register logic.
13666
136672018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
13668
13669	* config/i386/constraints.md (Bs): Update
13670	ix86_indirect_branch_register check.  Don't check
13671	ix86_indirect_branch_register with GOT_memory_operand.
13672	(Bw): Likewise.
13673	* config/i386/predicates.md (GOT_memory_operand): Don't check
13674	ix86_indirect_branch_register here.
13675	(GOT32_symbol_operand): Likewise.
13676
136772018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
13678
13679	* config/i386/predicates.md (constant_call_address_operand):
13680	Rewrite ix86_indirect_branch_register logic.
13681	(sibcall_insn_operand): Likewise.
13682
136832018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
13684
13685	* config/i386/constraints.md (Bs): Replace
13686	ix86_indirect_branch_thunk_register with
13687	ix86_indirect_branch_register.
13688	(Bw): Likewise.
13689	* config/i386/i386.md (indirect_jump): Likewise.
13690	(tablejump): Likewise.
13691	(*sibcall_memory): Likewise.
13692	(*sibcall_value_memory): Likewise.
13693	Peepholes of indirect call and jump via memory: Likewise.
13694	* config/i386/i386.opt: Likewise.
13695	* config/i386/predicates.md (indirect_branch_operand): Likewise.
13696	(GOT_memory_operand): Likewise.
13697	(call_insn_operand): Likewise.
13698	(sibcall_insn_operand): Likewise.
13699	(GOT32_symbol_operand): Likewise.
13700
137012018-01-15  Jakub Jelinek  <jakub@redhat.com>
13702
13703	PR middle-end/83837
13704	* omp-expand.c (expand_omp_atomic_pipeline): Use loaded_val
13705	type rather than type addr's type points to.
13706	(expand_omp_atomic_mutex): Likewise.
13707	(expand_omp_atomic): Likewise.
13708
137092018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
13710
13711	PR target/83839
13712	* config/i386/i386.c (output_indirect_thunk_function): Use
13713	ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO
13714	for  __x86_return_thunk.
13715
137162018-01-15  Richard Biener  <rguenther@suse.de>
13717
13718	PR middle-end/83850
13719	* expmed.c (extract_bit_field_1): Fix typo.
13720
137212018-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13722
13723	PR target/83687
13724	* config/arm/iterators.md (VF): New mode iterator.
13725	* config/arm/neon.md (neon_vabd<mode>_2): Use the above.
13726	Remove integer-related logic from pattern.
13727	(neon_vabd<mode>_3): Likewise.
13728
137292018-01-15  Jakub Jelinek  <jakub@redhat.com>
13730
13731	PR middle-end/82694
13732	* common.opt (fstrict-overflow): No longer an alias.
13733	(fwrapv-pointer): New option.
13734	* tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define
13735	also for pointer types based on flag_wrapv_pointer.
13736	* opts.c (common_handle_option) <case OPT_fstrict_overflow>: Set
13737	opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if
13738	opts->x_flag_wrapv got set.
13739	* fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01
13740	changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of
13741	POINTER_TYPE_OVERFLOW_UNDEFINED.
13742	* match.pd: Likewise in address comparison pattern.
13743	* doc/invoke.texi: Document -fwrapv and -fstrict-overflow.
13744
137452018-01-15  Richard Biener  <rguenther@suse.de>
13746
13747	PR lto/83804
13748	* tree.c (free_lang_data_in_type): Always unlink TYPE_DECLs
13749	from TYPE_FIELDS.  Free TYPE_BINFO if not used by devirtualization.
13750	Reset type names to their identifier if their TYPE_DECL doesn't
13751	have linkage (and thus is used for ODR and devirt).
13752	(save_debug_info_for_decl): Remove.
13753	(save_debug_info_for_type): Likewise.
13754	(add_tree_to_fld_list): Adjust.
13755	* tree-pretty-print.c (dump_generic_node): Make dumping of
13756	type names more robust.
13757
137582018-01-15  Richard Biener  <rguenther@suse.de>
13759
13760	* BASE-VER: Bump to 8.0.1.
13761
137622018-01-14  Martin Sebor  <msebor@redhat.com>
13763
13764	PR other/83508
13765	* builtins.c (check_access): Avoid warning when the no-warning bit
13766	is set.
13767
137682018-01-14  Cory Fields  <cory-nospam-@coryfields.com>
13769
13770	* tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort.
13771	* ira-color (allocno_hard_regs_compare): Likewise.
13772
137732018-01-14  Nathan Rossi  <nathan@nathanrossi.com>
13774
13775	PR target/83013
13776	* config/microblaze/microblaze.c (microblaze_asm_output_ident):
13777	Use .pushsection/.popsection.
13778
137792018-01-14  Martin Sebor  <msebor@redhat.com>
13780
13781	PR c++/81327
13782	* doc/invoke.texi (-Wlass-memaccess): Document suppression by casting.
13783
137842018-01-14  Jakub Jelinek  <jakub@redhat.com>
13785
13786	* config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h
13787	entry from extra_headers.
13788	(x86_64-*-*): Remove two duplicate gfniintrin.h entries from
13789	extra_headers, make the list bitwise identical to the i?86-*-* one.
13790
137912018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
13792
13793	* config/i386/i386.c (ix86_set_indirect_branch_type): Disallow
13794	-mcmodel=large with -mindirect-branch=thunk,
13795	-mindirect-branch=thunk-extern, -mfunction-return=thunk and
13796	-mfunction-return=thunk-extern.
13797	* doc/invoke.texi: Document -mcmodel=large is incompatible with
13798	-mindirect-branch=thunk, -mindirect-branch=thunk-extern,
13799	-mfunction-return=thunk and -mfunction-return=thunk-extern.
13800
138012018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
13802
13803	* config/i386/i386.c (print_reg): Print the name of the full
13804	integer register without '%'.
13805	(ix86_print_operand): Handle 'V'.
13806	 * doc/extend.texi: Document 'V' modifier.
13807
138082018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
13809
13810	* config/i386/constraints.md (Bs): Disallow memory operand for
13811	-mindirect-branch-register.
13812	(Bw): Likewise.
13813	* config/i386/predicates.md (indirect_branch_operand): Likewise.
13814	(GOT_memory_operand): Likewise.
13815	(call_insn_operand): Likewise.
13816	(sibcall_insn_operand): Likewise.
13817	(GOT32_symbol_operand): Likewise.
13818	* config/i386/i386.md (indirect_jump): Call convert_memory_address
13819	for -mindirect-branch-register.
13820	(tablejump): Likewise.
13821	(*sibcall_memory): Likewise.
13822	(*sibcall_value_memory): Likewise.
13823	Disallow peepholes of indirect call and jump via memory for
13824	-mindirect-branch-register.
13825	(*call_pop): Replace m with Bw.
13826	(*call_value_pop): Likewise.
13827	(*sibcall_pop_memory): Replace m with Bs.
13828	* config/i386/i386.opt (mindirect-branch-register): New option.
13829	* doc/invoke.texi: Document -mindirect-branch-register option.
13830
138312018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
13832
13833	* config/i386/i386-protos.h (ix86_output_function_return): New.
13834	* config/i386/i386.c (ix86_set_indirect_branch_type): Also
13835	set function_return_type.
13836	(indirect_thunk_name): Add ret_p to indicate thunk for function
13837	return.
13838	(output_indirect_thunk_function): Pass false to
13839	indirect_thunk_name.
13840	(ix86_output_indirect_branch_via_reg): Likewise.
13841	(ix86_output_indirect_branch_via_push): Likewise.
13842	(output_indirect_thunk_function): Create alias for function
13843	return thunk if regno < 0.
13844	(ix86_output_function_return): New function.
13845	(ix86_handle_fndecl_attribute): Handle function_return.
13846	(ix86_attribute_table): Add function_return.
13847	* config/i386/i386.h (machine_function): Add
13848	function_return_type.
13849	* config/i386/i386.md (simple_return_internal): Use
13850	ix86_output_function_return.
13851	(simple_return_internal_long): Likewise.
13852	* config/i386/i386.opt (mfunction-return=): New option.
13853	(indirect_branch): Mention -mfunction-return=.
13854	* doc/extend.texi: Document function_return function attribute.
13855	* doc/invoke.texi: Document -mfunction-return= option.
13856
138572018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
13858
13859	* config/i386/i386-opts.h (indirect_branch): New.
13860	* config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise.
13861	* config/i386/i386.c (ix86_using_red_zone): Disallow red-zone
13862	with local indirect jump when converting indirect call and jump.
13863	(ix86_set_indirect_branch_type): New.
13864	(ix86_set_current_function): Call ix86_set_indirect_branch_type.
13865	(indirectlabelno): New.
13866	(indirect_thunk_needed): Likewise.
13867	(indirect_thunk_bnd_needed): Likewise.
13868	(indirect_thunks_used): Likewise.
13869	(indirect_thunks_bnd_used): Likewise.
13870	(INDIRECT_LABEL): Likewise.
13871	(indirect_thunk_name): Likewise.
13872	(output_indirect_thunk): Likewise.
13873	(output_indirect_thunk_function): Likewise.
13874	(ix86_output_indirect_branch_via_reg): Likewise.
13875	(ix86_output_indirect_branch_via_push): Likewise.
13876	(ix86_output_indirect_branch): Likewise.
13877	(ix86_output_indirect_jmp): Likewise.
13878	(ix86_code_end): Call output_indirect_thunk_function if needed.
13879	(ix86_output_call_insn): Call ix86_output_indirect_branch if
13880	needed.
13881	(ix86_handle_fndecl_attribute): Handle indirect_branch.
13882	(ix86_attribute_table): Add indirect_branch.
13883	* config/i386/i386.h (machine_function): Add indirect_branch_type
13884	and has_local_indirect_jump.
13885	* config/i386/i386.md (indirect_jump): Set has_local_indirect_jump
13886	to true.
13887	(tablejump): Likewise.
13888	(*indirect_jump): Use ix86_output_indirect_jmp.
13889	(*tablejump_1): Likewise.
13890	(simple_return_indirect_internal): Likewise.
13891	* config/i386/i386.opt (mindirect-branch=): New option.
13892	(indirect_branch): New.
13893	(keep): Likewise.
13894	(thunk): Likewise.
13895	(thunk-inline): Likewise.
13896	(thunk-extern): Likewise.
13897	* doc/extend.texi: Document indirect_branch function attribute.
13898	* doc/invoke.texi: Document -mindirect-branch= option.
13899
139002018-01-14  Jan Hubicka  <hubicka@ucw.cz>
13901
13902	PR ipa/83051
13903	* ipa-inline.c (edge_badness): Tolerate roundoff errors.
13904
139052018-01-14  Richard Sandiford  <richard.sandiford@linaro.org>
13906
13907	* ipa-inline.c (want_inline_small_function_p): Return false if
13908	inlining has already failed with CIF_FINAL_ERROR.
13909	(update_caller_keys): Call want_inline_small_function_p before
13910	can_inline_edge_p.
13911	(update_callee_keys): Likewise.
13912
139132018-01-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13914
13915	* config/rs6000/rs6000-p8swap.c (rs6000_sum_of_two_registers_p):
13916	New function.
13917	(rs6000_quadword_masked_address_p): Likewise.
13918	(quad_aligned_load_p): Likewise.
13919	(quad_aligned_store_p): Likewise.
13920	(const_load_sequence_p): Add comment to describe the outer-most loop.
13921	(mimic_memory_attributes_and_flags): New function.
13922	(rs6000_gen_stvx): Likewise.
13923	(replace_swapped_aligned_store): Likewise.
13924	(rs6000_gen_lvx): Likewise.
13925	(replace_swapped_aligned_load): Likewise.
13926	(replace_swapped_load_constant): Capitalize argument name in
13927	comment describing this function.
13928	(rs6000_analyze_swaps): Add a third pass to search for vector loads
13929	and stores that access quad-word aligned addresses and replace
13930	with stvx or lvx instructions when appropriate.
13931	* config/rs6000/rs6000-protos.h (rs6000_sum_of_two_registers_p):
13932	New function prototype.
13933	(rs6000_quadword_masked_address_p): Likewise.
13934	(rs6000_gen_lvx): Likewise.
13935	(rs6000_gen_stvx): Likewise.
13936	* config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): For modes
13937	VSX_D (V2DF, V2DI), modify this split to select lvx instruction
13938	when memory address is aligned.
13939	(*vsx_le_perm_load_<mode>): For modes VSX_W (V4SF, V4SI), modify
13940	this split to select lvx instruction when memory address is aligned.
13941	(*vsx_le_perm_load_v8hi): Modify this split to select lvx
13942	instruction when memory address is aligned.
13943	(*vsx_le_perm_load_v16qi): Likewise.
13944	(four unnamed splitters): Modify to select the stvx instruction
13945	when memory is aligned.
13946
139472018-01-13  Jan Hubicka  <hubicka@ucw.cz>
13948
13949	* predict.c (determine_unlikely_bbs): Handle correctly BBs
13950	which appears in the queue multiple times.
13951
139522018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
13953	    Alan Hayward  <alan.hayward@arm.com>
13954	    David Sherwood  <david.sherwood@arm.com>
13955
13956	* tree-vectorizer.h (vec_lower_bound): New structure.
13957	(_loop_vec_info): Add check_nonzero and lower_bounds.
13958	(LOOP_VINFO_CHECK_NONZERO): New macro.
13959	(LOOP_VINFO_LOWER_BOUNDS): Likewise.
13960	(LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Check lower_bounds too.
13961	* tree-data-ref.h (dr_with_seg_len): Add access_size and align
13962	fields.  Make seg_len the distance travelled, not including the
13963	access size.
13964	(dr_direction_indicator): Declare.
13965	(dr_zero_step_indicator): Likewise.
13966	(dr_known_forward_stride_p): Likewise.
13967	* tree-data-ref.c: Include stringpool.h, tree-vrp.h and
13968	tree-ssanames.h.
13969	(runtime_alias_check_p): Allow runtime alias checks with
13970	variable strides.
13971	(operator ==): Compare access_size and align.
13972	(prune_runtime_alias_test_list): Rework for new distinction between
13973	the access_size and seg_len.
13974	(create_intersect_range_checks_index): Likewise.  Cope with polynomial
13975	segment lengths.
13976	(get_segment_min_max): New function.
13977	(create_intersect_range_checks): Use it.
13978	(dr_step_indicator): New function.
13979	(dr_direction_indicator): Likewise.
13980	(dr_zero_step_indicator): Likewise.
13981	(dr_known_forward_stride_p): Likewise.
13982	* tree-loop-distribution.c (data_ref_segment_size): Return
13983	DR_STEP * (niters - 1).
13984	(compute_alias_check_pairs): Update call to the dr_with_seg_len
13985	constructor.
13986	* tree-vect-data-refs.c (vect_check_nonzero_value): New function.
13987	(vect_preserves_scalar_order_p): New function, split out from...
13988	(vect_analyze_data_ref_dependence): ...here.  Check for zero steps.
13989	(vect_vfa_segment_size): Return DR_STEP * (length_factor - 1).
13990	(vect_vfa_access_size): New function.
13991	(vect_vfa_align): Likewise.
13992	(vect_compile_time_alias): Take access_size_a and access_b arguments.
13993	(dump_lower_bound): New function.
13994	(vect_check_lower_bound): Likewise.
13995	(vect_small_gap_p): Likewise.
13996	(vectorizable_with_step_bound_p): Likewise.
13997	(vect_prune_runtime_alias_test_list): Ignore cross-iteration
13998	depencies if the vectorization factor is 1.  Convert the checks
13999	for nonzero steps into checks on the bounds of DR_STEP.  Try using
14000	a bunds check for variable steps if the minimum required step is
14001	relatively small. Update calls to the dr_with_seg_len
14002	constructor and to vect_compile_time_alias.
14003	* tree-vect-loop-manip.c (vect_create_cond_for_lower_bounds): New
14004	function.
14005	(vect_loop_versioning): Call it.
14006	* tree-vect-loop.c (vect_analyze_loop_2): Clear LOOP_VINFO_LOWER_BOUNDS
14007	when retrying.
14008	(vect_estimate_min_profitable_iters): Account for any bounds checks.
14009
140102018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14011	    Alan Hayward  <alan.hayward@arm.com>
14012	    David Sherwood  <david.sherwood@arm.com>
14013
14014	* doc/sourcebuild.texi (vect_scatter_store): Document.
14015	* optabs.def (scatter_store_optab, mask_scatter_store_optab): New
14016	optabs.
14017	* doc/md.texi (scatter_store@var{m}, mask_scatter_store@var{m}):
14018	Document.
14019	* genopinit.c (main): Add supports_vec_scatter_store and
14020	supports_vec_scatter_store_cached to target_optabs.
14021	* gimple.h (gimple_expr_type): Handle IFN_SCATTER_STORE and
14022	IFN_MASK_SCATTER_STORE.
14023	* internal-fn.def (SCATTER_STORE, MASK_SCATTER_STORE): New internal
14024	functions.
14025	* internal-fn.h (internal_store_fn_p): Declare.
14026	(internal_fn_stored_value_index): Likewise.
14027	* internal-fn.c (scatter_store_direct): New macro.
14028	(expand_scatter_store_optab_fn): New function.
14029	(direct_scatter_store_optab_supported_p): New macro.
14030	(internal_store_fn_p): New function.
14031	(internal_gather_scatter_fn_p): Handle IFN_SCATTER_STORE and
14032	IFN_MASK_SCATTER_STORE.
14033	(internal_fn_mask_index): Likewise.
14034	(internal_fn_stored_value_index): New function.
14035	(internal_gather_scatter_fn_supported_p): Adjust operand numbers
14036	for scatter stores.
14037	* optabs-query.h (supports_vec_scatter_store_p): Declare.
14038	* optabs-query.c (supports_vec_scatter_store_p): New function.
14039	* tree-vectorizer.h (vect_get_store_rhs): Declare.
14040	* tree-vect-data-refs.c (vect_analyze_data_ref_access): Return
14041	true for scatter stores.
14042	(vect_gather_scatter_fn_p): Handle scatter stores too.
14043	(vect_check_gather_scatter): Consider using scatter stores if
14044	supports_vec_scatter_store_p.
14045	* tree-vect-patterns.c (vect_try_gather_scatter_pattern): Handle
14046	scatter stores too.
14047	* tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use
14048	internal_fn_stored_value_index.
14049	(check_load_store_masking): Handle scatter stores too.
14050	(vect_get_store_rhs): Make public.
14051	(vectorizable_call): Use internal_store_fn_p.
14052	(vectorizable_store): Handle scatter store internal functions.
14053	(vect_transform_stmt): Compare GROUP_STORE_COUNT with GROUP_SIZE
14054	when deciding whether the end of the group has been reached.
14055	* config/aarch64/aarch64.md (UNSPEC_ST1_SCATTER): New unspec.
14056	* config/aarch64/aarch64-sve.md (scatter_store<mode>): New expander.
14057	(mask_scatter_store<mode>): New insns.
14058
140592018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14060	    Alan Hayward  <alan.hayward@arm.com>
14061	    David Sherwood  <david.sherwood@arm.com>
14062
14063	* tree-vectorizer.h (vect_gather_scatter_fn_p): Declare.
14064	* tree-vect-data-refs.c (vect_gather_scatter_fn_p): Make public.
14065	* tree-vect-stmts.c (vect_truncate_gather_scatter_offset): New
14066	function.
14067	(vect_use_strided_gather_scatters_p): Take a masked_p argument.
14068	Use vect_truncate_gather_scatter_offset if we can't treat the
14069	operation as a normal gather load or scatter store.
14070	(get_group_load_store_type): Take the gather_scatter_info
14071	as argument.  Try using a gather load or scatter store for
14072	single-element groups.
14073	(get_load_store_type): Update calls to get_group_load_store_type
14074	and vect_use_strided_gather_scatters_p.
14075
140762018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14077	    Alan Hayward  <alan.hayward@arm.com>
14078	    David Sherwood  <david.sherwood@arm.com>
14079
14080	* tree-vectorizer.h (vect_create_data_ref_ptr): Take an extra
14081	optional tree argument.
14082	* tree-vect-data-refs.c (vect_check_gather_scatter): Check for
14083	null target hooks.
14084	(vect_create_data_ref_ptr): Take the iv_step as an optional argument,
14085	but continue to use the current value as a fallback.
14086	(bump_vector_ptr): Use operand_equal_p rather than tree_int_cst_compare
14087	to compare the updates.
14088	* tree-vect-stmts.c (vect_use_strided_gather_scatters_p): New function.
14089	(get_load_store_type): Use it when handling a strided access.
14090	(vect_get_strided_load_store_ops): New function.
14091	(vect_get_data_ptr_increment): Likewise.
14092	(vectorizable_load): Handle strided gather loads.  Always pass
14093	a step to vect_create_data_ref_ptr and bump_vector_ptr.
14094
140952018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14096	    Alan Hayward  <alan.hayward@arm.com>
14097	    David Sherwood  <david.sherwood@arm.com>
14098
14099	* doc/md.texi (gather_load@var{m}): Document.
14100	(mask_gather_load@var{m}): Likewise.
14101	* genopinit.c (main): Add supports_vec_gather_load and
14102	supports_vec_gather_load_cached to target_optabs.
14103	* optabs-tree.c (init_tree_optimization_optabs): Use
14104	ggc_cleared_alloc to allocate target_optabs.
14105	* optabs.def (gather_load_optab, mask_gather_laod_optab): New optabs.
14106	* internal-fn.def (GATHER_LOAD, MASK_GATHER_LOAD): New internal
14107	functions.
14108	* internal-fn.h (internal_load_fn_p): Declare.
14109	(internal_gather_scatter_fn_p): Likewise.
14110	(internal_fn_mask_index): Likewise.
14111	(internal_gather_scatter_fn_supported_p): Likewise.
14112	* internal-fn.c (gather_load_direct): New macro.
14113	(expand_gather_load_optab_fn): New function.
14114	(direct_gather_load_optab_supported_p): New macro.
14115	(direct_internal_fn_optab): New function.
14116	(internal_load_fn_p): Likewise.
14117	(internal_gather_scatter_fn_p): Likewise.
14118	(internal_fn_mask_index): Likewise.
14119	(internal_gather_scatter_fn_supported_p): Likewise.
14120	* optabs-query.c (supports_at_least_one_mode_p): New function.
14121	(supports_vec_gather_load_p): Likewise.
14122	* optabs-query.h (supports_vec_gather_load_p): Declare.
14123	* tree-vectorizer.h (gather_scatter_info): Add ifn, element_type
14124	and memory_type field.
14125	(NUM_PATTERNS): Bump to 15.
14126	* tree-vect-data-refs.c: Include internal-fn.h.
14127	(vect_gather_scatter_fn_p): New function.
14128	(vect_describe_gather_scatter_call): Likewise.
14129	(vect_check_gather_scatter): Try using internal functions for
14130	gather loads.  Recognize existing calls to a gather load function.
14131	(vect_analyze_data_refs): Consider using gather loads if
14132	supports_vec_gather_load_p.
14133	* tree-vect-patterns.c (vect_get_load_store_mask): New function.
14134	(vect_get_gather_scatter_offset_type): Likewise.
14135	(vect_convert_mask_for_vectype): Likewise.
14136	(vect_add_conversion_to_patterm): Likewise.
14137	(vect_try_gather_scatter_pattern): Likewise.
14138	(vect_recog_gather_scatter_pattern): New pattern recognizer.
14139	(vect_vect_recog_func_ptrs): Add it.
14140	* tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use
14141	internal_fn_mask_index and internal_gather_scatter_fn_p.
14142	(check_load_store_masking): Take the gather_scatter_info as an
14143	argument and handle gather loads.
14144	(vect_get_gather_scatter_ops): New function.
14145	(vectorizable_call): Check internal_load_fn_p.
14146	(vectorizable_load): Likewise.  Handle gather load internal
14147	functions.
14148	(vectorizable_store): Update call to check_load_store_masking.
14149	* config/aarch64/aarch64.md (UNSPEC_LD1_GATHER): New unspec.
14150	* config/aarch64/iterators.md (SVE_S, SVE_D): New mode iterators.
14151	* config/aarch64/predicates.md (aarch64_gather_scale_operand_w)
14152	(aarch64_gather_scale_operand_d): New predicates.
14153	* config/aarch64/aarch64-sve.md (gather_load<mode>): New expander.
14154	(mask_gather_load<mode>): New insns.
14155
141562018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14157	    Alan Hayward  <alan.hayward@arm.com>
14158	    David Sherwood  <david.sherwood@arm.com>
14159
14160	* optabs.def (fold_left_plus_optab): New optab.
14161	* doc/md.texi (fold_left_plus_@var{m}): Document.
14162	* internal-fn.def (IFN_FOLD_LEFT_PLUS): New internal function.
14163	* internal-fn.c (fold_left_direct): Define.
14164	(expand_fold_left_optab_fn): Likewise.
14165	(direct_fold_left_optab_supported_p): Likewise.
14166	* fold-const-call.c (fold_const_fold_left): New function.
14167	(fold_const_call): Use it to fold CFN_FOLD_LEFT_PLUS.
14168	* tree-parloops.c (valid_reduction_p): New function.
14169	(gather_scalar_reductions): Use it.
14170	* tree-vectorizer.h (FOLD_LEFT_REDUCTION): New vect_reduction_type.
14171	(vect_finish_replace_stmt): Declare.
14172	* tree-vect-loop.c (fold_left_reduction_fn): New function.
14173	(needs_fold_left_reduction_p): New function, split out from...
14174	(vect_is_simple_reduction): ...here.  Accept reductions that
14175	forbid reassociation, but give them type FOLD_LEFT_REDUCTION.
14176	(vect_force_simple_reduction): Also store the reduction type in
14177	the assignment's STMT_VINFO_REDUC_TYPE.
14178	(vect_model_reduction_cost): Handle FOLD_LEFT_REDUCTION.
14179	(merge_with_identity): New function.
14180	(vect_expand_fold_left): Likewise.
14181	(vectorize_fold_left_reduction): Likewise.
14182	(vectorizable_reduction): Handle FOLD_LEFT_REDUCTION.  Leave the
14183	scalar phi in place for it.  Check for target support and reject
14184	cases that would reassociate the operation.  Defer the transform
14185	phase to vectorize_fold_left_reduction.
14186	* config/aarch64/aarch64.md (UNSPEC_FADDA): New unspec.
14187	* config/aarch64/aarch64-sve.md (fold_left_plus_<mode>): New expander.
14188	(*fold_left_plus_<mode>, *pred_fold_left_plus_<mode>): New insns.
14189
141902018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14191
14192	* tree-if-conv.c (predicate_mem_writes): Remove redundant
14193	call to ifc_temp_var.
14194
141952018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14196	    Alan Hayward  <alan.hayward@arm.com>
14197	    David Sherwood  <david.sherwood@arm.com>
14198
14199	* target.def (legitimize_address_displacement): Take the original
14200	offset as a poly_int.
14201	* targhooks.h (default_legitimize_address_displacement): Update
14202	accordingly.
14203	* targhooks.c (default_legitimize_address_displacement): Likewise.
14204	* doc/tm.texi: Regenerate.
14205	* lra-constraints.c (base_plus_disp_to_reg): Take the displacement
14206	as an argument, moving assert of ad->disp == ad->disp_term to...
14207	(process_address_1): ...here.  Update calls to base_plus_disp_to_reg.
14208	Try calling targetm.legitimize_address_displacement before expanding
14209	the address rather than afterwards, and adjust for the new interface.
14210	* config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
14211	Match the new hook interface.  Handle SVE addresses.
14212	* config/sh/sh.c (sh_legitimize_address_displacement): Make the
14213	new hook interface.
14214
142152018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14216
14217	* Makefile.in (OBJS): Add early-remat.o.
14218	* target.def (select_early_remat_modes): New hook.
14219	* doc/tm.texi.in (TARGET_SELECT_EARLY_REMAT_MODES): New hook.
14220	* doc/tm.texi: Regenerate.
14221	* targhooks.h (default_select_early_remat_modes): Declare.
14222	* targhooks.c (default_select_early_remat_modes): New function.
14223	* timevar.def (TV_EARLY_REMAT): New timevar.
14224	* passes.def (pass_early_remat): New pass.
14225	* tree-pass.h (make_pass_early_remat): Declare.
14226	* early-remat.c: New file.
14227	* config/aarch64/aarch64.c (aarch64_select_early_remat_modes): New
14228	function.
14229	(TARGET_SELECT_EARLY_REMAT_MODES): Define.
14230
142312018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14232	    Alan Hayward  <alan.hayward@arm.com>
14233	    David Sherwood  <david.sherwood@arm.com>
14234
14235	* tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Replace
14236	vfm1 with a bound_epilog parameter.
14237	(vect_do_peeling): Update calls accordingly, and move the prologue
14238	call earlier in the function.  Treat the base bound_epilog as 0 for
14239	fully-masked loops and retain vf - 1 for other loops.  Add 1 to
14240	this base when peeling for gaps.
14241	* tree-vect-loop.c (vect_analyze_loop_2): Allow peeling for gaps
14242	with fully-masked loops.
14243	(vect_estimate_min_profitable_iters): Handle the single peeled
14244	iteration in that case.
14245
142462018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14247	    Alan Hayward  <alan.hayward@arm.com>
14248	    David Sherwood  <david.sherwood@arm.com>
14249
14250	* tree-vect-data-refs.c (vect_analyze_group_access_1): Allow
14251	single-element interleaving even if the size is not a power of 2.
14252	* tree-vect-stmts.c (get_load_store_type): Disallow elementwise
14253	accesses for single-element interleaving if the group size is
14254	not a power of 2.
14255
142562018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14257	    Alan Hayward  <alan.hayward@arm.com>
14258	    David Sherwood  <david.sherwood@arm.com>
14259
14260	* doc/md.texi (fold_extract_last_@var{m}): Document.
14261	* doc/sourcebuild.texi (vect_fold_extract_last): Likewise.
14262	* optabs.def (fold_extract_last_optab): New optab.
14263	* internal-fn.def (FOLD_EXTRACT_LAST): New internal function.
14264	* internal-fn.c (fold_extract_direct): New macro.
14265	(expand_fold_extract_optab_fn): Likewise.
14266	(direct_fold_extract_optab_supported_p): Likewise.
14267	* tree-vectorizer.h (EXTRACT_LAST_REDUCTION): New vect_reduction_type.
14268	* tree-vect-loop.c (vect_model_reduction_cost): Handle
14269	EXTRACT_LAST_REDUCTION.
14270	(get_initial_def_for_reduction): Do not create an initial vector
14271	for EXTRACT_LAST_REDUCTION reductions.
14272	(vectorizable_reduction): Leave the scalar phi in place for
14273	EXTRACT_LAST_REDUCTIONs.  Try using EXTRACT_LAST_REDUCTION
14274	ahead of INTEGER_INDUC_COND_REDUCTION.  Do not check for an
14275	epilogue code for EXTRACT_LAST_REDUCTION and defer the
14276	transform phase to vectorizable_condition.
14277	* tree-vect-stmts.c (vect_finish_stmt_generation_1): New function,
14278	split out from...
14279	(vect_finish_stmt_generation): ...here.
14280	(vect_finish_replace_stmt): New function.
14281	(vectorizable_condition): Handle EXTRACT_LAST_REDUCTION.
14282	* config/aarch64/aarch64-sve.md (fold_extract_last_<mode>): New
14283	pattern.
14284	* config/aarch64/aarch64.md (UNSPEC_CLASTB): New unspec.
14285
142862018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14287	    Alan Hayward  <alan.hayward@arm.com>
14288	    David Sherwood  <david.sherwood@arm.com>
14289
14290	* doc/md.texi (extract_last_@var{m}): Document.
14291	* optabs.def (extract_last_optab): New optab.
14292	* internal-fn.def (EXTRACT_LAST): New internal function.
14293	* internal-fn.c (cond_unary_direct): New macro.
14294	(expand_cond_unary_optab_fn): Likewise.
14295	(direct_cond_unary_optab_supported_p): Likewise.
14296	* tree-vect-loop.c (vectorizable_live_operation): Allow fully-masked
14297	loops using EXTRACT_LAST.
14298	* config/aarch64/aarch64-sve.md (aarch64_sve_lastb<mode>): Rename to...
14299	(extract_last_<mode>): ...this optab.
14300	(vec_extract<mode><Vel>): Update accordingly.
14301
143022018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14303	    Alan Hayward  <alan.hayward@arm.com>
14304	    David Sherwood  <david.sherwood@arm.com>
14305
14306	* target.def (empty_mask_is_expensive): New hook.
14307	* doc/tm.texi.in (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): New hook.
14308	* doc/tm.texi: Regenerate.
14309	* targhooks.h (default_empty_mask_is_expensive): Declare.
14310	* targhooks.c (default_empty_mask_is_expensive): New function.
14311	* tree-vectorizer.c (vectorize_loops): Only call optimize_mask_stores
14312	if the target says that empty masks are expensive.
14313	* config/aarch64/aarch64.c (aarch64_empty_mask_is_expensive):
14314	New function.
14315	(TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Redefine.
14316
143172018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14318	    Alan Hayward  <alan.hayward@arm.com>
14319	    David Sherwood  <david.sherwood@arm.com>
14320
14321	* tree-vectorizer.h (_loop_vec_info::mask_skip_niters): New field.
14322	(LOOP_VINFO_MASK_SKIP_NITERS): New macro.
14323	(vect_use_loop_mask_for_alignment_p): New function.
14324	(vect_prepare_for_masked_peels, vect_gen_while_not): Declare.
14325	* tree-vect-loop-manip.c (vect_set_loop_masks_directly): Add an
14326	niters_skip argument.  Make sure that the first niters_skip elements
14327	of the first iteration are inactive.
14328	(vect_set_loop_condition_masked): Handle LOOP_VINFO_MASK_SKIP_NITERS.
14329	Update call to vect_set_loop_masks_directly.
14330	(get_misalign_in_elems): New function, split out from...
14331	(vect_gen_prolog_loop_niters): ...here.
14332	(vect_update_init_of_dr): Take a code argument that specifies whether
14333	the adjustment should be added or subtracted.
14334	(vect_update_init_of_drs): Likewise.
14335	(vect_prepare_for_masked_peels): New function.
14336	(vect_do_peeling): Skip prologue peeling if we're using a mask
14337	instead.  Update call to vect_update_inits_of_drs.
14338	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
14339	mask_skip_niters.
14340	(vect_analyze_loop_2): Allow fully-masked loops with peeling for
14341	alignment.  Do not include the number of peeled iterations in
14342	the minimum threshold in that case.
14343	(vectorizable_induction): Adjust the start value down by
14344	LOOP_VINFO_MASK_SKIP_NITERS iterations.
14345	(vect_transform_loop): Call vect_prepare_for_masked_peels.
14346	Take the number of skipped iterations into account when calculating
14347	the loop bounds.
14348	* tree-vect-stmts.c (vect_gen_while_not): New function.
14349
143502018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14351	    Alan Hayward  <alan.hayward@arm.com>
14352	    David Sherwood  <david.sherwood@arm.com>
14353
14354	* doc/sourcebuild.texi (vect_fully_masked): Document.
14355	* params.def (PARAM_MIN_VECT_LOOP_BOUND): Change minimum and
14356	default value to 0.
14357	* tree-vect-loop.c (vect_analyze_loop_costing): New function,
14358	split out from...
14359	(vect_analyze_loop_2): ...here. Don't check the vectorization
14360	factor against the number of loop iterations if the loop is
14361	fully-masked.
14362
143632018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14364	    Alan Hayward  <alan.hayward@arm.com>
14365	    David Sherwood  <david.sherwood@arm.com>
14366
14367	* tree-ssa-loop-ivopts.c (USE_ADDRESS): Split into...
14368	(USE_REF_ADDRESS, USE_PTR_ADDRESS): ...these new use types.
14369	(dump_groups): Update accordingly.
14370	(iv_use::mem_type): New member variable.
14371	(address_p): New function.
14372	(record_use): Add a mem_type argument and initialize the new
14373	mem_type field.
14374	(record_group_use): Add a mem_type argument.  Use address_p.
14375	Remove obsolete null checks of base_object.  Update call to record_use.
14376	(find_interesting_uses_op): Update call to record_group_use.
14377	(find_interesting_uses_cond): Likewise.
14378	(find_interesting_uses_address): Likewise.
14379	(get_mem_type_for_internal_fn): New function.
14380	(find_address_like_use): Likewise.
14381	(find_interesting_uses_stmt): Try find_address_like_use before
14382	calling find_interesting_uses_op.
14383	(addr_offset_valid_p): Use the iv mem_type field as the type
14384	of the addressed memory.
14385	(add_autoinc_candidates): Likewise.
14386	(get_address_cost): Likewise.
14387	(split_small_address_groups_p): Use address_p.
14388	(split_address_groups): Likewise.
14389	(add_iv_candidate_for_use): Likewise.
14390	(autoinc_possible_for_pair): Likewise.
14391	(rewrite_groups): Likewise.
14392	(get_use_type): Check for USE_REF_ADDRESS instead of USE_ADDRESS.
14393	(determine_group_iv_cost): Update after split of USE_ADDRESS.
14394	(get_alias_ptr_type_for_ptr_address): New function.
14395	(rewrite_use_address): Rewrite address uses in calls that were
14396	identified by find_address_like_use.
14397
143982018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14399	    Alan Hayward  <alan.hayward@arm.com>
14400	    David Sherwood  <david.sherwood@arm.com>
14401
14402	* expr.c (expand_expr_addr_expr_1): Handle ADDR_EXPRs of
14403	TARGET_MEM_REFs.
14404	* gimple-expr.h (is_gimple_addressable: Likewise.
14405	* gimple-expr.c (is_gimple_address): Likewise.
14406	* internal-fn.c (expand_call_mem_ref): New function.
14407	(expand_mask_load_optab_fn): Use it.
14408	(expand_mask_store_optab_fn): Likewise.
14409
144102018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14411	    Alan Hayward  <alan.hayward@arm.com>
14412	    David Sherwood  <david.sherwood@arm.com>
14413
14414	* doc/md.texi (cond_add@var{mode}, cond_sub@var{mode})
14415	(cond_and@var{mode}, cond_ior@var{mode}, cond_xor@var{mode})
14416	(cond_smin@var{mode}, cond_smax@var{mode}, cond_umin@var{mode})
14417	(cond_umax@var{mode}): Document.
14418	* optabs.def (cond_add_optab, cond_sub_optab, cond_and_optab)
14419	(cond_ior_optab, cond_xor_optab, cond_smin_optab, cond_smax_optab)
14420	(cond_umin_optab, cond_umax_optab): New optabs.
14421	* internal-fn.def (COND_ADD, COND_SUB, COND_MIN, COND_MAX, COND_AND)
14422	(COND_IOR, COND_XOR): New internal functions.
14423	* internal-fn.h (get_conditional_internal_fn): Declare.
14424	* internal-fn.c (cond_binary_direct): New macro.
14425	(expand_cond_binary_optab_fn): Likewise.
14426	(direct_cond_binary_optab_supported_p): Likewise.
14427	(get_conditional_internal_fn): New function.
14428	* tree-vect-loop.c (vectorizable_reduction): Handle fully-masked loops.
14429	Cope with reduction statements that are vectorized as calls rather
14430	than assignments.
14431	* config/aarch64/aarch64-sve.md (cond_<optab><mode>): New insns.
14432	* config/aarch64/iterators.md (UNSPEC_COND_ADD, UNSPEC_COND_SUB)
14433	(UNSPEC_COND_SMAX, UNSPEC_COND_UMAX, UNSPEC_COND_SMIN)
14434	(UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR)
14435	(UNSPEC_COND_EOR): New unspecs.
14436	(optab): Add mappings for them.
14437	(SVE_COND_INT_OP, SVE_COND_FP_OP): New int iterators.
14438	(sve_int_op, sve_fp_op): New int attributes.
14439
144402018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14441	    Alan Hayward  <alan.hayward@arm.com>
14442	    David Sherwood  <david.sherwood@arm.com>
14443
14444	* optabs.def (while_ult_optab): New optab.
14445	* doc/md.texi (while_ult@var{m}@var{n}): Document.
14446	* internal-fn.def (WHILE_ULT): New internal function.
14447	* internal-fn.h (direct_internal_fn_supported_p): New override
14448	that takes two types as argument.
14449	* internal-fn.c (while_direct): New macro.
14450	(expand_while_optab_fn): New function.
14451	(convert_optab_supported_p): Likewise.
14452	(direct_while_optab_supported_p): New macro.
14453	* wide-int.h (wi::udiv_ceil): New function.
14454	* tree-vectorizer.h (rgroup_masks): New structure.
14455	(vec_loop_masks): New typedef.
14456	(_loop_vec_info): Add masks, mask_compare_type, can_fully_mask_p
14457	and fully_masked_p.
14458	(LOOP_VINFO_CAN_FULLY_MASK_P, LOOP_VINFO_FULLY_MASKED_P)
14459	(LOOP_VINFO_MASKS, LOOP_VINFO_MASK_COMPARE_TYPE): New macros.
14460	(vect_max_vf): New function.
14461	(slpeel_make_loop_iterate_ntimes): Delete.
14462	(vect_set_loop_condition, vect_get_loop_mask_type, vect_gen_while)
14463	(vect_halve_mask_nunits, vect_double_mask_nunits): Declare.
14464	(vect_record_loop_mask, vect_get_loop_mask): Likewise.
14465	* tree-vect-loop-manip.c: Include tree-ssa-loop-niter.h,
14466	internal-fn.h, stor-layout.h and optabs-query.h.
14467	(vect_set_loop_mask): New function.
14468	(add_preheader_seq): Likewise.
14469	(add_header_seq): Likewise.
14470	(interleave_supported_p): Likewise.
14471	(vect_maybe_permute_loop_masks): Likewise.
14472	(vect_set_loop_masks_directly): Likewise.
14473	(vect_set_loop_condition_masked): Likewise.
14474	(vect_set_loop_condition_unmasked): New function, split out from
14475	slpeel_make_loop_iterate_ntimes.
14476	(slpeel_make_loop_iterate_ntimes): Rename to..
14477	(vect_set_loop_condition): ...this.  Use vect_set_loop_condition_masked
14478	for fully-masked loops and vect_set_loop_condition_unmasked otherwise.
14479	(vect_do_peeling): Update call accordingly.
14480	(vect_gen_vector_loop_niters): Use VF as the step for fully-masked
14481	loops.
14482	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
14483	mask_compare_type, can_fully_mask_p and fully_masked_p.
14484	(release_vec_loop_masks): New function.
14485	(_loop_vec_info): Use it to free the loop masks.
14486	(can_produce_all_loop_masks_p): New function.
14487	(vect_get_max_nscalars_per_iter): Likewise.
14488	(vect_verify_full_masking): Likewise.
14489	(vect_analyze_loop_2): Save LOOP_VINFO_CAN_FULLY_MASK_P around
14490	retries, and free the mask rgroups before retrying.  Check loop-wide
14491	reasons for disallowing fully-masked loops.  Make the final decision
14492	about whether use a fully-masked loop or not.
14493	(vect_estimate_min_profitable_iters): Do not assume that peeling
14494	for the number of iterations will be needed for fully-masked loops.
14495	(vectorizable_reduction): Disable fully-masked loops.
14496	(vectorizable_live_operation): Likewise.
14497	(vect_halve_mask_nunits): New function.
14498	(vect_double_mask_nunits): Likewise.
14499	(vect_record_loop_mask): Likewise.
14500	(vect_get_loop_mask): Likewise.
14501	(vect_transform_loop): Handle the case in which the final loop
14502	iteration might handle a partial vector.  Call vect_set_loop_condition
14503	instead of slpeel_make_loop_iterate_ntimes.
14504	* tree-vect-stmts.c: Include tree-ssa-loop-niter.h and gimple-fold.h.
14505	(check_load_store_masking): New function.
14506	(prepare_load_store_mask): Likewise.
14507	(vectorizable_store): Handle fully-masked loops.
14508	(vectorizable_load): Likewise.
14509	(supportable_widening_operation): Use vect_halve_mask_nunits for
14510	booleans.
14511	(supportable_narrowing_operation): Likewise vect_double_mask_nunits.
14512	(vect_gen_while): New function.
14513	* config/aarch64/aarch64.md (umax<mode>3): New expander.
14514	(aarch64_uqdec<mode>): New insn.
14515
145162018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14517	    Alan Hayward  <alan.hayward@arm.com>
14518	    David Sherwood  <david.sherwood@arm.com>
14519
14520	* optabs.def (reduc_and_scal_optab, reduc_ior_scal_optab)
14521	(reduc_xor_scal_optab): New optabs.
14522	* doc/md.texi (reduc_and_scal_@var{m}, reduc_ior_scal_@var{m})
14523	(reduc_xor_scal_@var{m}): Document.
14524	* doc/sourcebuild.texi (vect_logical_reduc): Likewise.
14525	* internal-fn.def (IFN_REDUC_AND, IFN_REDUC_IOR, IFN_REDUC_XOR): New
14526	internal functions.
14527	* fold-const-call.c (fold_const_call): Handle them.
14528	* tree-vect-loop.c (reduction_fn_for_scalar_code): Return the new
14529	internal functions for BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
14530	* config/aarch64/aarch64-sve.md (reduc_<bit_reduc>_scal_<mode>):
14531	(*reduc_<bit_reduc>_scal_<mode>): New patterns.
14532	* config/aarch64/iterators.md (UNSPEC_ANDV, UNSPEC_ORV)
14533	(UNSPEC_XORV): New unspecs.
14534	(optab): Add entries for them.
14535	(BITWISEV): New int iterator.
14536	(bit_reduc_op): New int attributes.
14537
145382018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14539	    Alan Hayward  <alan.hayward@arm.com>
14540	    David Sherwood  <david.sherwood@arm.com>
14541
14542	* doc/md.texi (vec_shl_insert_@var{m}): New optab.
14543	* internal-fn.def (VEC_SHL_INSERT): New internal function.
14544	* optabs.def (vec_shl_insert_optab): New optab.
14545	* tree-vectorizer.h (can_duplicate_and_interleave_p): Declare.
14546	(duplicate_and_interleave): Likewise.
14547	* tree-vect-loop.c: Include internal-fn.h.
14548	(neutral_op_for_slp_reduction): New function, split out from
14549	get_initial_defs_for_reduction.
14550	(get_initial_def_for_reduction): Handle option 2 for variable-length
14551	vectors by loading the neutral value into a vector and then shifting
14552	the initial value into element 0.
14553	(get_initial_defs_for_reduction): Replace the code argument with
14554	the neutral value calculated by neutral_op_for_slp_reduction.
14555	Use gimple_build_vector for constant-length vectors.
14556	Use IFN_VEC_SHL_INSERT for variable-length vectors if all
14557	but the first group_size elements have a neutral value.
14558	Use duplicate_and_interleave otherwise.
14559	(vect_create_epilog_for_reduction): Take a neutral_op parameter.
14560	Update call to get_initial_defs_for_reduction.  Handle SLP
14561	reductions for variable-length vectors by creating one vector
14562	result for each scalar result, with the elements associated
14563	with other scalar results stubbed out with the neutral value.
14564	(vectorizable_reduction): Call neutral_op_for_slp_reduction.
14565	Require IFN_VEC_SHL_INSERT for double reductions on
14566	variable-length vectors, or SLP reductions that have
14567	a neutral value.  Require can_duplicate_and_interleave_p
14568	support for variable-length unchained SLP reductions if there
14569	is no neutral value, such as for MIN/MAX reductions.  Also require
14570	the number of vector elements to be a multiple of the number of
14571	SLP statements when doing variable-length unchained SLP reductions.
14572	Update call to vect_create_epilog_for_reduction.
14573	* tree-vect-slp.c (can_duplicate_and_interleave_p): Make public
14574	and remove initial values.
14575	(duplicate_and_interleave): Make public.
14576	* config/aarch64/aarch64.md (UNSPEC_INSR): New unspec.
14577	* config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): New insn.
14578
145792018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14580	    Alan Hayward  <alan.hayward@arm.com>
14581	    David Sherwood  <david.sherwood@arm.com>
14582
14583	* tree-vect-slp.c: Include gimple-fold.h and internal-fn.h
14584	(can_duplicate_and_interleave_p): New function.
14585	(vect_get_and_check_slp_defs): Take the vector of statements
14586	rather than just the current one.  Remove excess parentheses.
14587	Restriction rejectinon of vect_constant_def and vect_external_def
14588	for variable-length vectors to boolean types, or types for which
14589	can_duplicate_and_interleave_p is false.
14590	(vect_build_slp_tree_2): Update call to vect_get_and_check_slp_defs.
14591	(duplicate_and_interleave): New function.
14592	(vect_get_constant_vectors): Use gimple_build_vector for
14593	constant-length vectors and suitable variable-length constant
14594	vectors.  Use duplicate_and_interleave for other variable-length
14595	vectors.  Don't defer the update when inserting new statements.
14596
145972018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14598	    Alan Hayward  <alan.hayward@arm.com>
14599	    David Sherwood  <david.sherwood@arm.com>
14600
14601	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Make sure
14602	min_profitable_iters doesn't go negative.
14603
146042018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14605	    Alan Hayward  <alan.hayward@arm.com>
14606	    David Sherwood  <david.sherwood@arm.com>
14607
14608	* doc/md.texi (vec_mask_load_lanes@var{m}@var{n}): Document.
14609	(vec_mask_store_lanes@var{m}@var{n}): Likewise.
14610	* optabs.def (vec_mask_load_lanes_optab): New optab.
14611	(vec_mask_store_lanes_optab): Likewise.
14612	* internal-fn.def (MASK_LOAD_LANES): New internal function.
14613	(MASK_STORE_LANES): Likewise.
14614	* internal-fn.c (mask_load_lanes_direct): New macro.
14615	(mask_store_lanes_direct): Likewise.
14616	(expand_mask_load_optab_fn): Handle masked operations.
14617	(expand_mask_load_lanes_optab_fn): New macro.
14618	(expand_mask_store_optab_fn): Handle masked operations.
14619	(expand_mask_store_lanes_optab_fn): New macro.
14620	(direct_mask_load_lanes_optab_supported_p): Likewise.
14621	(direct_mask_store_lanes_optab_supported_p): Likewise.
14622	* tree-vectorizer.h (vect_store_lanes_supported): Take a masked_p
14623	parameter.
14624	(vect_load_lanes_supported): Likewise.
14625	* tree-vect-data-refs.c (strip_conversion): New function.
14626	(can_group_stmts_p): Likewise.
14627	(vect_analyze_data_ref_accesses): Use it instead of checking
14628	for a pair of assignments.
14629	(vect_store_lanes_supported): Take a masked_p parameter.
14630	(vect_load_lanes_supported): Likewise.
14631	* tree-vect-loop.c (vect_analyze_loop_2): Update calls to
14632	vect_store_lanes_supported and vect_load_lanes_supported.
14633	* tree-vect-slp.c (vect_analyze_slp_instance): Likewise.
14634	* tree-vect-stmts.c (get_group_load_store_type): Take a masked_p
14635	parameter.  Don't allow gaps for masked accesses.
14636	Use vect_get_store_rhs.  Update calls to vect_store_lanes_supported
14637	and vect_load_lanes_supported.
14638	(get_load_store_type): Take a masked_p parameter and update
14639	call to get_group_load_store_type.
14640	(vectorizable_store): Update call to get_load_store_type.
14641	Handle IFN_MASK_STORE_LANES.
14642	(vectorizable_load): Update call to get_load_store_type.
14643	Handle IFN_MASK_LOAD_LANES.
14644
146452018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14646	    Alan Hayward  <alan.hayward@arm.com>
14647	    David Sherwood  <david.sherwood@arm.com>
14648
14649	* config/aarch64/aarch64-modes.def: Define x2, x3 and x4 vector
14650	modes for SVE.
14651	* config/aarch64/aarch64-protos.h
14652	(aarch64_sve_struct_memory_operand_p): Declare.
14653	* config/aarch64/iterators.md (SVE_STRUCT): New mode iterator.
14654	(vector_count, insn_length, VSINGLE, vsingle): New mode attributes.
14655	(VPRED, vpred): Handle SVE structure modes.
14656	* config/aarch64/constraints.md (Utx): New constraint.
14657	* config/aarch64/predicates.md (aarch64_sve_struct_memory_operand)
14658	(aarch64_sve_struct_nonimmediate_operand): New predicates.
14659	* config/aarch64/aarch64.md (UNSPEC_LDN, UNSPEC_STN): New unspecs.
14660	* config/aarch64/aarch64-sve.md (mov<mode>, *aarch64_sve_mov<mode>_le)
14661	(*aarch64_sve_mov<mode>_be, pred_mov<mode>): New patterns for
14662	structure modes.  Split into pieces after RA.
14663	(vec_load_lanes<mode><vsingle>, vec_mask_load_lanes<mode><vsingle>)
14664	(vec_store_lanes<mode><vsingle>, vec_mask_store_lanes<mode><vsingle>):
14665	New patterns.
14666	* config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
14667	SVE structure modes.
14668	(aarch64_classify_address): Likewise.
14669	(sizetochar): Move earlier in file.
14670	(aarch64_print_operand): Handle SVE register lists.
14671	(aarch64_array_mode): New function.
14672	(aarch64_sve_struct_memory_operand_p): Likewise.
14673	(TARGET_ARRAY_MODE): Redefine.
14674
146752018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14676	    Alan Hayward  <alan.hayward@arm.com>
14677	    David Sherwood  <david.sherwood@arm.com>
14678
14679	* target.def (array_mode): New target hook.
14680	* doc/tm.texi.in (TARGET_ARRAY_MODE): New hook.
14681	* doc/tm.texi: Regenerate.
14682	* hooks.h (hook_optmode_mode_uhwi_none): Declare.
14683	* hooks.c (hook_optmode_mode_uhwi_none): New function.
14684	* tree-vect-data-refs.c (vect_lanes_optab_supported_p): Use
14685	targetm.array_mode.
14686	* stor-layout.c (mode_for_array): Likewise.  Support polynomial
14687	type sizes.
14688
146892018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14690	    Alan Hayward  <alan.hayward@arm.com>
14691	    David Sherwood  <david.sherwood@arm.com>
14692
14693	* fold-const.c (fold_binary_loc): Check the argument types
14694	rather than the result type when testing for a vector operation.
14695
146962018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14697
14698	* doc/tm.texi.in (DWARF_LAZY_REGISTER_VALUE): Document.
14699	* doc/tm.texi: Regenerate.
14700
147012018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14702	    Alan Hayward  <alan.hayward@arm.com>
14703	    David Sherwood  <david.sherwood@arm.com>
14704
14705	* doc/invoke.texi (-msve-vector-bits=): Document new option.
14706	(sve): Document new AArch64 extension.
14707	* doc/md.texi (w): Extend the description of the AArch64
14708	constraint to include SVE vectors.
14709	(Upl, Upa): Document new AArch64 predicate constraints.
14710	* config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): New
14711	enum.
14712	* config/aarch64/aarch64.opt (sve_vector_bits): New enum.
14713	(msve-vector-bits=): New option.
14714	* config/aarch64/aarch64-option-extensions.def (fp, simd): Disable
14715	SVE when these are disabled.
14716	(sve): New extension.
14717	* config/aarch64/aarch64-modes.def: Define SVE vector and predicate
14718	modes.  Adjust their number of units based on aarch64_sve_vg.
14719	(MAX_BITSIZE_MODE_ANY_MODE): Define.
14720	* config/aarch64/aarch64-protos.h (ADDR_QUERY_ANY): New
14721	aarch64_addr_query_type.
14722	(aarch64_const_vec_all_same_in_range_p, aarch64_sve_pred_mode)
14723	(aarch64_sve_cnt_immediate_p, aarch64_sve_addvl_addpl_immediate_p)
14724	(aarch64_sve_inc_dec_immediate_p, aarch64_add_offset_temporaries)
14725	(aarch64_split_add_offset, aarch64_output_sve_cnt_immediate)
14726	(aarch64_output_sve_addvl_addpl, aarch64_output_sve_inc_dec_immediate)
14727	(aarch64_output_sve_mov_immediate, aarch64_output_ptrue): Declare.
14728	(aarch64_simd_imm_zero_p): Delete.
14729	(aarch64_check_zero_based_sve_index_immediate): Declare.
14730	(aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p)
14731	(aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p)
14732	(aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p)
14733	(aarch64_sve_float_mul_immediate_p): Likewise.
14734	(aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT
14735	rather than an rtx.
14736	(aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): Declare.
14737	(aarch64_expand_mov_immediate): Take a gen_vec_duplicate callback.
14738	(aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move): Declare.
14739	(aarch64_expand_sve_vec_cmp_int, aarch64_expand_sve_vec_cmp_float)
14740	(aarch64_expand_sve_vcond, aarch64_expand_sve_vec_perm): Declare.
14741	(aarch64_regmode_natural_size): Likewise.
14742	* config/aarch64/aarch64.h (AARCH64_FL_SVE): New macro.
14743	(AARCH64_FL_V8_3, AARCH64_FL_RCPC, AARCH64_FL_DOTPROD): Shift
14744	left one place.
14745	(AARCH64_ISA_SVE, TARGET_SVE): New macros.
14746	(FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add entries
14747	for VG and the SVE predicate registers.
14748	(V_ALIASES): Add a "z"-prefixed alias.
14749	(FIRST_PSEUDO_REGISTER): Change to P15_REGNUM + 1.
14750	(AARCH64_DWARF_VG, AARCH64_DWARF_P0): New macros.
14751	(PR_REGNUM_P, PR_LO_REGNUM_P): Likewise.
14752	(PR_LO_REGS, PR_HI_REGS, PR_REGS): New reg_classes.
14753	(REG_CLASS_NAMES): Add entries for them.
14754	(REG_CLASS_CONTENTS): Likewise.  Update ALL_REGS to include VG
14755	and the predicate registers.
14756	(aarch64_sve_vg): Declare.
14757	(BITS_PER_SVE_VECTOR, BYTES_PER_SVE_VECTOR, BYTES_PER_SVE_PRED)
14758	(SVE_BYTE_MODE, MAX_COMPILE_TIME_VEC_BYTES): New macros.
14759	(REGMODE_NATURAL_SIZE): Define.
14760	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle
14761	SVE macros.
14762	* config/aarch64/aarch64.c: Include cfgrtl.h.
14763	(simd_immediate_info): Add a constructor for series vectors,
14764	and an associated step field.
14765	(aarch64_sve_vg): New variable.
14766	(aarch64_dbx_register_number): Handle VG and the predicate registers.
14767	(aarch64_vect_struct_mode_p, aarch64_vector_mode_p): Delete.
14768	(VEC_ADVSIMD, VEC_SVE_DATA, VEC_SVE_PRED, VEC_STRUCT, VEC_ANY_SVE)
14769	(VEC_ANY_DATA, VEC_STRUCT): New constants.
14770	(aarch64_advsimd_struct_mode_p, aarch64_sve_pred_mode_p)
14771	(aarch64_classify_vector_mode, aarch64_vector_data_mode_p)
14772	(aarch64_sve_data_mode_p, aarch64_sve_pred_mode)
14773	(aarch64_get_mask_mode): New functions.
14774	(aarch64_hard_regno_nregs): Handle SVE data modes for FP_REGS
14775	and FP_LO_REGS.  Handle PR_REGS, PR_LO_REGS and PR_HI_REGS.
14776	(aarch64_hard_regno_mode_ok): Handle VG.  Also handle the SVE
14777	predicate modes and predicate registers.  Explicitly restrict
14778	GPRs to modes of 16 bytes or smaller.  Only allow FP registers
14779	to store a vector mode if it is recognized by
14780	aarch64_classify_vector_mode.
14781	(aarch64_regmode_natural_size): New function.
14782	(aarch64_hard_regno_caller_save_mode): Return the original mode
14783	for predicates.
14784	(aarch64_sve_cnt_immediate_p, aarch64_output_sve_cnt_immediate)
14785	(aarch64_sve_addvl_addpl_immediate_p, aarch64_output_sve_addvl_addpl)
14786	(aarch64_sve_inc_dec_immediate_p, aarch64_output_sve_inc_dec_immediate)
14787	(aarch64_add_offset_1_temporaries, aarch64_offset_temporaries): New
14788	functions.
14789	(aarch64_add_offset): Add a temp2 parameter.  Assert that temp1
14790	does not overlap dest if the function is frame-related.  Handle
14791	SVE constants.
14792	(aarch64_split_add_offset): New function.
14793	(aarch64_add_sp, aarch64_sub_sp): Add temp2 parameters and pass
14794	them aarch64_add_offset.
14795	(aarch64_allocate_and_probe_stack_space): Add a temp2 parameter
14796	and update call to aarch64_sub_sp.
14797	(aarch64_add_cfa_expression): New function.
14798	(aarch64_expand_prologue): Pass extra temporary registers to the
14799	functions above.  Handle the case in which we need to emit new
14800	DW_CFA_expressions for registers that were originally saved
14801	relative to the stack pointer, but now have to be expressed
14802	relative to the frame pointer.
14803	(aarch64_output_mi_thunk): Pass extra temporary registers to the
14804	functions above.
14805	(aarch64_expand_epilogue): Likewise.  Prevent inheritance of
14806	IP0 and IP1 values for SVE frames.
14807	(aarch64_expand_vec_series): New function.
14808	(aarch64_expand_sve_widened_duplicate): Likewise.
14809	(aarch64_expand_sve_const_vector): Likewise.
14810	(aarch64_expand_mov_immediate): Add a gen_vec_duplicate parameter.
14811	Handle SVE constants.  Use emit_move_insn to move a force_const_mem
14812	into the register, rather than emitting a SET directly.
14813	(aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move)
14814	(aarch64_get_reg_raw_mode, offset_4bit_signed_scaled_p)
14815	(offset_6bit_unsigned_scaled_p, aarch64_offset_7bit_signed_scaled_p)
14816	(offset_9bit_signed_scaled_p): New functions.
14817	(aarch64_replicate_bitmask_imm): New function.
14818	(aarch64_bitmask_imm): Use it.
14819	(aarch64_cannot_force_const_mem): Reject expressions involving
14820	a CONST_POLY_INT.  Update call to aarch64_classify_symbol.
14821	(aarch64_classify_index): Handle SVE indices, by requiring
14822	a plain register index with a scale that matches the element size.
14823	(aarch64_classify_address): Handle SVE addresses.  Assert that
14824	the mode of the address is VOIDmode or an integer mode.
14825	Update call to aarch64_classify_symbol.
14826	(aarch64_classify_symbolic_expression): Update call to
14827	aarch64_classify_symbol.
14828	(aarch64_const_vec_all_in_range_p): New function.
14829	(aarch64_print_vector_float_operand): Likewise.
14830	(aarch64_print_operand): Handle 'N' and 'C'.  Use "zN" rather than
14831	"vN" for FP registers with SVE modes.  Handle (const ...) vectors
14832	and the FP immediates 1.0 and 0.5.
14833	(aarch64_print_address_internal): Handle SVE addresses.
14834	(aarch64_print_operand_address): Use ADDR_QUERY_ANY.
14835	(aarch64_regno_regclass): Handle predicate registers.
14836	(aarch64_secondary_reload): Handle big-endian reloads of SVE
14837	data modes.
14838	(aarch64_class_max_nregs): Handle SVE modes and predicate registers.
14839	(aarch64_rtx_costs): Check for ADDVL and ADDPL instructions.
14840	(aarch64_convert_sve_vector_bits): New function.
14841	(aarch64_override_options): Use it to handle -msve-vector-bits=.
14842	(aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT
14843	rather than an rtx.
14844	(aarch64_legitimate_constant_p): Use aarch64_classify_vector_mode.
14845	Handle SVE vector and predicate modes.  Accept VL-based constants
14846	that need only one temporary register, and VL offsets that require
14847	no temporary registers.
14848	(aarch64_conditional_register_usage): Mark the predicate registers
14849	as fixed if SVE isn't available.
14850	(aarch64_vector_mode_supported_p): Use aarch64_classify_vector_mode.
14851	Return true for SVE vector and predicate modes.
14852	(aarch64_simd_container_mode): Take the number of bits as a poly_int64
14853	rather than an unsigned int.  Handle SVE modes.
14854	(aarch64_preferred_simd_mode): Update call accordingly.  Handle
14855	SVE modes.
14856	(aarch64_autovectorize_vector_sizes): Add BYTES_PER_SVE_VECTOR
14857	if SVE is enabled.
14858	(aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p)
14859	(aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p)
14860	(aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p)
14861	(aarch64_sve_float_mul_immediate_p): New functions.
14862	(aarch64_sve_valid_immediate): New function.
14863	(aarch64_simd_valid_immediate): Use it as the fallback for SVE vectors.
14864	Explicitly reject structure modes.  Check for INDEX constants.
14865	Handle PTRUE and PFALSE constants.
14866	(aarch64_check_zero_based_sve_index_immediate): New function.
14867	(aarch64_simd_imm_zero_p): Delete.
14868	(aarch64_mov_operand_p): Use aarch64_simd_valid_immediate for
14869	vector modes.  Accept constants in the range of CNT[BHWD].
14870	(aarch64_simd_scalar_immediate_valid_for_move): Explicitly
14871	ask for an Advanced SIMD mode.
14872	(aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): New functions.
14873	(aarch64_simd_vector_alignment): Handle SVE predicates.
14874	(aarch64_vectorize_preferred_vector_alignment): New function.
14875	(aarch64_simd_vector_alignment_reachable): Use it instead of
14876	the vector size.
14877	(aarch64_shift_truncation_mask): Use aarch64_vector_data_mode_p.
14878	(aarch64_output_sve_mov_immediate, aarch64_output_ptrue): New
14879	functions.
14880	(MAX_VECT_LEN): Delete.
14881	(expand_vec_perm_d): Add a vec_flags field.
14882	(emit_unspec2, aarch64_expand_sve_vec_perm): New functions.
14883	(aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
14884	(aarch64_evpc_ext): Don't apply a big-endian lane correction
14885	for SVE modes.
14886	(aarch64_evpc_rev): Rename to...
14887	(aarch64_evpc_rev_local): ...this.  Use a predicated operation for SVE.
14888	(aarch64_evpc_rev_global): New function.
14889	(aarch64_evpc_dup): Enforce a 64-byte range for SVE DUP.
14890	(aarch64_evpc_tbl): Use MAX_COMPILE_TIME_VEC_BYTES instead of
14891	MAX_VECT_LEN.
14892	(aarch64_evpc_sve_tbl): New function.
14893	(aarch64_expand_vec_perm_const_1): Update after rename of
14894	aarch64_evpc_rev.  Handle SVE permutes too, trying
14895	aarch64_evpc_rev_global and using aarch64_evpc_sve_tbl rather
14896	than aarch64_evpc_tbl.
14897	(aarch64_vectorize_vec_perm_const): Initialize vec_flags.
14898	(aarch64_sve_cmp_operand_p, aarch64_unspec_cond_code)
14899	(aarch64_gen_unspec_cond, aarch64_expand_sve_vec_cmp_int)
14900	(aarch64_emit_unspec_cond, aarch64_emit_unspec_cond_or)
14901	(aarch64_emit_inverted_unspec_cond, aarch64_expand_sve_vec_cmp_float)
14902	(aarch64_expand_sve_vcond): New functions.
14903	(aarch64_modes_tieable_p): Use aarch64_vector_data_mode_p instead
14904	of aarch64_vector_mode_p.
14905	(aarch64_dwarf_poly_indeterminate_value): New function.
14906	(aarch64_compute_pressure_classes): Likewise.
14907	(aarch64_can_change_mode_class): Likewise.
14908	(TARGET_GET_RAW_RESULT_MODE, TARGET_GET_RAW_ARG_MODE): Redefine.
14909	(TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Likewise.
14910	(TARGET_VECTORIZE_GET_MASK_MODE): Likewise.
14911	(TARGET_DWARF_POLY_INDETERMINATE_VALUE): Likewise.
14912	(TARGET_COMPUTE_PRESSURE_CLASSES): Likewise.
14913	(TARGET_CAN_CHANGE_MODE_CLASS): Likewise.
14914	* config/aarch64/constraints.md (Upa, Upl, Uav, Uat, Usv, Usi, Utr)
14915	(Uty, Dm, vsa, vsc, vsd, vsi, vsn, vsl, vsm, vsA, vsM, vsN): New
14916	constraints.
14917	(Dn, Dl, Dr): Accept const as well as const_vector.
14918	(Dz): Likewise.  Compare against CONST0_RTX.
14919	* config/aarch64/iterators.md: Refer to "Advanced SIMD" instead
14920	of "vector" where appropriate.
14921	(SVE_ALL, SVE_BH, SVE_BHS, SVE_BHSI, SVE_HSDI, SVE_HSF, SVE_SD)
14922	(SVE_SDI, SVE_I, SVE_F, PRED_ALL, PRED_BHS): New mode iterators.
14923	(UNSPEC_SEL, UNSPEC_ANDF, UNSPEC_IORF, UNSPEC_XORF, UNSPEC_COND_LT)
14924	(UNSPEC_COND_LE, UNSPEC_COND_EQ, UNSPEC_COND_NE, UNSPEC_COND_GE)
14925	(UNSPEC_COND_GT, UNSPEC_COND_LO, UNSPEC_COND_LS, UNSPEC_COND_HS)
14926	(UNSPEC_COND_HI, UNSPEC_COND_UO): New unspecs.
14927	(Vetype, VEL, Vel, VWIDE, Vwide, vw, vwcore, V_INT_EQUIV)
14928	(v_int_equiv): Extend to SVE modes.
14929	(Vesize, V128, v128, Vewtype, V_FP_EQUIV, v_fp_equiv, VPRED): New
14930	mode attributes.
14931	(LOGICAL_OR, SVE_INT_UNARY, SVE_FP_UNARY): New code iterators.
14932	(optab): Handle popcount, smin, smax, umin, umax, abs and sqrt.
14933	(logical_nn, lr, sve_int_op, sve_fp_op): New code attributs.
14934	(LOGICALF, OPTAB_PERMUTE, UNPACK, UNPACK_UNSIGNED, SVE_COND_INT_CMP)
14935	(SVE_COND_FP_CMP): New int iterators.
14936	(perm_hilo): Handle the new unpack unspecs.
14937	(optab, logicalf_op, su, perm_optab, cmp_op, imm_con): New int
14938	attributes.
14939	* config/aarch64/predicates.md (aarch64_sve_cnt_immediate)
14940	(aarch64_sve_addvl_addpl_immediate, aarch64_split_add_offset_immediate)
14941	(aarch64_pluslong_or_poly_operand, aarch64_nonmemory_operand)
14942	(aarch64_equality_operator, aarch64_constant_vector_operand)
14943	(aarch64_sve_ld1r_operand, aarch64_sve_ldr_operand): New predicates.
14944	(aarch64_sve_nonimmediate_operand): Likewise.
14945	(aarch64_sve_general_operand): Likewise.
14946	(aarch64_sve_dup_operand, aarch64_sve_arith_immediate): Likewise.
14947	(aarch64_sve_sub_arith_immediate, aarch64_sve_inc_dec_immediate)
14948	(aarch64_sve_logical_immediate, aarch64_sve_mul_immediate): Likewise.
14949	(aarch64_sve_dup_immediate, aarch64_sve_cmp_vsc_immediate): Likewise.
14950	(aarch64_sve_cmp_vsd_immediate, aarch64_sve_index_immediate): Likewise.
14951	(aarch64_sve_float_arith_immediate): Likewise.
14952	(aarch64_sve_float_arith_with_sub_immediate): Likewise.
14953	(aarch64_sve_float_mul_immediate, aarch64_sve_arith_operand): Likewise.
14954	(aarch64_sve_add_operand, aarch64_sve_logical_operand): Likewise.
14955	(aarch64_sve_lshift_operand, aarch64_sve_rshift_operand): Likewise.
14956	(aarch64_sve_mul_operand, aarch64_sve_cmp_vsc_operand): Likewise.
14957	(aarch64_sve_cmp_vsd_operand, aarch64_sve_index_operand): Likewise.
14958	(aarch64_sve_float_arith_operand): Likewise.
14959	(aarch64_sve_float_arith_with_sub_operand): Likewise.
14960	(aarch64_sve_float_mul_operand): Likewise.
14961	(aarch64_sve_vec_perm_operand): Likewise.
14962	(aarch64_pluslong_operand): Include aarch64_sve_addvl_addpl_immediate.
14963	(aarch64_mov_operand): Accept const_poly_int and const_vector.
14964	(aarch64_simd_lshift_imm, aarch64_simd_rshift_imm): Accept const
14965	as well as const_vector.
14966	(aarch64_simd_imm_zero, aarch64_simd_imm_minus_one): Move earlier
14967	in file.  Use CONST0_RTX and CONSTM1_RTX.
14968	(aarch64_simd_or_scalar_imm_zero): Likewise.  Add match_codes.
14969	(aarch64_simd_reg_or_zero): Accept const as well as const_vector.
14970	Use aarch64_simd_imm_zero.
14971	* config/aarch64/aarch64-sve.md: New file.
14972	* config/aarch64/aarch64.md: Include it.
14973	(VG_REGNUM, P0_REGNUM, P7_REGNUM, P15_REGNUM): New register numbers.
14974	(UNSPEC_REV, UNSPEC_LD1_SVE, UNSPEC_ST1_SVE, UNSPEC_MERGE_PTRUE)
14975	(UNSPEC_PTEST_PTRUE, UNSPEC_UNPACKSHI, UNSPEC_UNPACKUHI)
14976	(UNSPEC_UNPACKSLO, UNSPEC_UNPACKULO, UNSPEC_PACK)
14977	(UNSPEC_FLOAT_CONVERT, UNSPEC_WHILE_LO): New unspec constants.
14978	(sve): New attribute.
14979	(enabled): Disable instructions with the sve attribute unless
14980	TARGET_SVE.
14981	(movqi, movhi): Pass CONST_POLY_INT operaneds through
14982	aarch64_expand_mov_immediate.
14983	(*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64): Handle
14984	CNT[BHSD] immediates.
14985	(movti): Split CONST_POLY_INT moves into two halves.
14986	(add<mode>3): Accept aarch64_pluslong_or_poly_operand.
14987	Split additions that need a temporary here if the destination
14988	is the stack pointer.
14989	(*add<mode>3_aarch64): Handle ADDVL and ADDPL immediates.
14990	(*add<mode>3_poly_1): New instruction.
14991	(set_clobber_cc): New expander.
14992
149932018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
14994
14995	* simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes
14996	parameter and use it instead of GET_MODE_SIZE (innermode).  Use
14997	inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode).
14998	Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of
14999	GET_MODE_NUNITS (innermode).  Also add a first_elem parameter.
15000	Change innermode from fixed_mode_size to machine_mode.
15001	(simplify_subreg): Update call accordingly.  Handle a constant-sized
15002	subreg of a variable-length CONST_VECTOR.
15003
150042018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
15005	    Alan Hayward  <alan.hayward@arm.com>
15006	    David Sherwood  <david.sherwood@arm.com>
15007
15008	* tree-ssa-address.c (mem_ref_valid_without_offset_p): New function.
15009	(add_offset_to_base): New function, split out from...
15010	(create_mem_ref): ...here.  When handling a scale other than 1,
15011	check first whether the address is valid without the offset.
15012	Add it into the base if so, leaving the index and scale as-is.
15013
150142018-01-12  Jakub Jelinek  <jakub@redhat.com>
15015
15016	PR c++/83778
15017	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call
15018	fold_for_warn before checking if arg2 is INTEGER_CST.
15019
150202018-01-12  Segher Boessenkool  <segher@kernel.crashing.org>
15021
15022	* config/rs6000/predicates.md (load_multiple_operation): Delete.
15023	(store_multiple_operation): Delete.
15024	* config/rs6000/rs6000-cpus.def (601): Remove MASK_STRING.
15025	* config/rs6000/rs6000-protos.h (rs6000_output_load_multiple): Delete.
15026	* config/rs6000/rs6000-string.c (expand_block_move): Delete everything
15027	guarded by TARGET_STRING.
15028	(rs6000_output_load_multiple): Delete.
15029	* config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
15030	OPTION_MASK_STRING / TARGET_STRING handling.
15031	(print_operand) <'N', 'O'>: Add comment that these are unused now.
15032	(const rs6000_opt_masks) <"string">: Change mask to 0.
15033	* config/rs6000/rs6000.h (TARGET_DEFAULT): Remove MASK_STRING.
15034	(MASK_STRING): Delete.
15035	* config/rs6000/rs6000.md (*mov<mode>_string): Delete TARGET_STRING
15036	parts.  Simplify.
15037	(load_multiple): Delete.
15038	(*ldmsi8): Delete.
15039	(*ldmsi7): Delete.
15040	(*ldmsi6): Delete.
15041	(*ldmsi5): Delete.
15042	(*ldmsi4): Delete.
15043	(*ldmsi3): Delete.
15044	(store_multiple): Delete.
15045	(*stmsi8): Delete.
15046	(*stmsi7): Delete.
15047	(*stmsi6): Delete.
15048	(*stmsi5): Delete.
15049	(*stmsi4): Delete.
15050	(*stmsi3): Delete.
15051	(movmemsi_8reg): Delete.
15052	(corresponding unnamed define_insn): Delete.
15053	(movmemsi_6reg): Delete.
15054	(corresponding unnamed define_insn): Delete.
15055	(movmemsi_4reg): Delete.
15056	(corresponding unnamed define_insn): Delete.
15057	(movmemsi_2reg): Delete.
15058	(corresponding unnamed define_insn): Delete.
15059	(movmemsi_1reg): Delete.
15060	(corresponding unnamed define_insn): Delete.
15061	* config/rs6000/rs6000.opt (mno-string): New.
15062	(mstring): Replace by deprecation warning stub.
15063	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mstring.
15064
150652018-01-12  Jakub Jelinek  <jakub@redhat.com>
15066
15067	* regrename.c (regrename_do_replace): If replacing the same
15068	reg multiple times, try to reuse last created gen_raw_REG.
15069
15070	PR debug/81155
15071	* bb-reorder.c (pass_partition_blocks::gate): In lto don't partition
15072	main to workaround a bug in GDB.
15073
150742018-01-12  Tom de Vries  <tom@codesourcery.com>
15075
15076	PR target/83737
15077	* config.gcc (nvptx*-*-*): Set use_gcc_stdint=wrap.
15078
150792018-01-12  Vladimir Makarov  <vmakarov@redhat.com>
15080
15081	PR rtl-optimization/80481
15082	* ira-color.c (get_cap_member): New function.
15083	(allocnos_conflict_by_live_ranges_p): Use it.
15084	(slot_coalesced_allocno_live_ranges_intersect_p): Add assert.
15085	(setup_slot_coalesced_allocno_live_ranges): Ditto.
15086
150872018-01-12  Uros Bizjak  <ubizjak@gmail.com>
15088
15089	PR target/83628
15090	* config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern.
15091	(*saddl_se_1): Ditto.
15092	(*ssubsi_1): Ditto.
15093	(*ssubl_se_1): Ditto.
15094
150952018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
15096
15097	* tree-predcom.c (aff_combination_dr_offset): Use wi::to_poly_widest
15098	rather than wi::to_widest for DR_INITs.
15099	* tree-vect-data-refs.c (vect_find_same_alignment_drs): Use
15100	wi::to_poly_offset rather than wi::to_offset for DR_INIT.
15101	(vect_analyze_data_ref_accesses): Require both DR_INITs to be
15102	INTEGER_CSTs.
15103	(vect_analyze_group_access_1): Note that here.
15104
151052018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
15106
15107	* tree-vectorizer.c (get_vec_alignment_for_array_type): Handle
15108	polynomial type sizes.
15109
151102018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
15111
15112	* gimplify.c (gimple_add_tmp_var_fn): Allow variables to have a
15113	poly_uint64 size, rather than requiring an unsigned HOST_WIDE_INT size.
15114	(gimple_add_tmp_var): Likewise.
15115
151162018-01-12  Martin Liska  <mliska@suse.cz>
15117
15118	* gimple.c (gimple_alloc_counts): Use uint64_t instead of int.
15119	(gimple_alloc_sizes): Likewise.
15120	(dump_gimple_statistics): Use PRIu64 in printf format.
15121	* gimple.h: Change uint64_t to int.
15122
151232018-01-12  Martin Liska  <mliska@suse.cz>
15124
15125	* tree-core.h: Use uint64_t instead of int.
15126	* tree.c (tree_node_counts): Likewise.
15127	(tree_node_sizes): Likewise.
15128	(dump_tree_statistics): Use PRIu64 in printf format.
15129
151302018-01-12  Martin Liska  <mliska@suse.cz>
15131
15132	* Makefile.in: As qsort_chk is implemented in vec.c, add
15133	vec.o to linkage of gencfn-macros.
15134	* tree.c (build_new_poly_int_cst): Add CXX_MEM_STAT_INFO as it's
15135	passing the info to record_node_allocation_statistics.
15136	(test_vector_cst_patterns): Add CXX_MEM_STAT_INFO to declaration
15137	and pass the info.
15138	* ggc-common.c (struct ggc_usage): Add operator== and use
15139	it in operator< and compare function.
15140	* mem-stats.h (struct mem_usage): Likewise.
15141	* vec.c (struct vec_usage): Remove operator< and compare
15142	function. Can be simply inherited.
15143
151442018-01-12  Martin Jambor  <mjambor@suse.cz>
15145
15146	PR target/81616
15147	* params.def: New parameter PARAM_AVOID_FMA_MAX_BITS.
15148	* tree-ssa-math-opts.c: Include domwalk.h.
15149	(convert_mult_to_fma_1): New function.
15150	(fma_transformation_info): New type.
15151	(fma_deferring_state): Likewise.
15152	(cancel_fma_deferring): New function.
15153	(result_of_phi): Likewise.
15154	(last_fma_candidate_feeds_initial_phi): Likewise.
15155	(convert_mult_to_fma): Added deferring logic, split actual
15156	transformation to convert_mult_to_fma_1.
15157	(math_opts_dom_walker): New type.
15158	(math_opts_dom_walker::after_dom_children): New method, body moved
15159	here from pass_optimize_widening_mul::execute, added deferring logic
15160	bits.
15161	(pass_optimize_widening_mul::execute): Moved most of code to
15162	math_opts_dom_walker::after_dom_children.
15163	* config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): New.
15164	* config/i386/i386.c (ix86_option_override_internal): Added
15165	maybe_setting of PARAM_AVOID_FMA_MAX_BITS.
15166
151672018-01-12  Richard Biener  <rguenther@suse.de>
15168
15169	PR debug/83157
15170	* dwarf2out.c (gen_variable_die): Do not reset old_die for
15171	inline instance vars.
15172
151732018-01-12  Oleg Endo  <olegendo@gcc.gnu.org>
15174
15175	PR target/81819
15176	* config/rx/rx.c (rx_is_restricted_memory_address):
15177	Handle SUBREG case.
15178
151792018-01-12  Richard Biener  <rguenther@suse.de>
15180
15181	PR tree-optimization/80846
15182	* target.def (split_reduction): New target hook.
15183	* targhooks.c (default_split_reduction): New function.
15184	* targhooks.h (default_split_reduction): Declare.
15185	* tree-vect-loop.c (vect_create_epilog_for_reduction): If the
15186	target requests first reduce vectors by combining low and high
15187	parts.
15188	* tree-vect-stmts.c (vect_gen_perm_mask_any): Adjust.
15189	(get_vectype_for_scalar_type_and_size): Export.
15190	* tree-vectorizer.h (get_vectype_for_scalar_type_and_size): Declare.
15191	* doc/tm.texi.in (TARGET_VECTORIZE_SPLIT_REDUCTION): Document.
15192	* doc/tm.texi: Regenerate.
15193	* config/i386/i386.c (ix86_split_reduction): Implement
15194	TARGET_VECTORIZE_SPLIT_REDUCTION.
15195
151962018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
15197
15198	PR target/83368
15199	* config/sparc/sparc.h (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM
15200	in PIC mode except for TARGET_VXWORKS_RTP.
15201	* config/sparc/sparc.c: Include cfgrtl.h.
15202	(TARGET_INIT_PIC_REG): Define.
15203	(TARGET_USE_PSEUDO_PIC_REG): Likewise.
15204	(sparc_pic_register_p): New predicate.
15205	(sparc_legitimate_address_p): Use it.
15206	(sparc_legitimize_pic_address): Likewise.
15207	(sparc_delegitimize_address): Likewise.
15208	(sparc_mode_dependent_address_p): Likewise.
15209	(gen_load_pcrel_sym): Remove 4th parameter.
15210	(load_got_register): Adjust call to above.  Remove obsolete stuff.
15211	(sparc_expand_prologue): Do not call load_got_register here.
15212	(sparc_flat_expand_prologue): Likewise.
15213	(sparc_output_mi_thunk): Set the pic_offset_table_rtx object.
15214	(sparc_use_pseudo_pic_reg): New function.
15215	(sparc_init_pic_reg): Likewise.
15216	* config/sparc/sparc.md (vxworks_load_got): Set the GOT register.
15217	(builtin_setjmp_receiver): Enable only for TARGET_VXWORKS_RTP.
15218
152192018-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
15220
15221	* doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
15222	Add item for branch_cost.
15223
152242018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
15225
15226	PR rtl-optimization/83565
15227	* rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do
15228	not extend the result to a larger mode for rotate operations.
15229	(num_sign_bit_copies1): Likewise.
15230
152312018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15232
15233	PR target/40411
15234	* config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or
15235	-symbolic.
15236	Use values-Xc.o for -pedantic.
15237	Link with values-xpg4.o for C90, values-xpg6.o otherwise.
15238
152392018-01-12  Martin Liska  <mliska@suse.cz>
15240
15241	PR ipa/83054
15242	* ipa-devirt.c (final_warning_record::grow_type_warnings):
15243	New function.
15244	(possible_polymorphic_call_targets): Use it.
15245	(ipa_devirt): Likewise.
15246
152472018-01-12  Martin Liska  <mliska@suse.cz>
15248
15249	* profile-count.h (enum profile_quality): Use 0 as invalid
15250	enum value of profile_quality.
15251
152522018-01-12  Chung-Ju Wu  <jasonwucj@gmail.com>
15253
15254	* doc/invoke.texi (NDS32 Options): Add -mext-perf, -mext-perf2 and
15255	-mext-string options.
15256
152572018-01-12  Richard Biener  <rguenther@suse.de>
15258
15259	* lto-streamer-out.c (DFS::DFS_write_tree_body): Process
15260	DECL_DEBUG_EXPR conditional on DECL_HAS_DEBUG_EXPR_P.
15261	* tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
15262	Likewise.
15263	* tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
15264
152652018-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15266
15267	* configure.ac (--with-long-double-format): Add support for the
15268	configuration option to change the default long double format on
15269	PowerPC systems.
15270	* config.gcc (powerpc*-linux*-*): Likewise.
15271	* configure: Regenerate.
15272	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If long
15273	double is IEEE, define __KC__ and __KF__ to allow floatn.h to be
15274	used without modification.
15275
152762018-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15277
15278	* config/rs6000/rs6000-builtin.def (BU_P7_MISC_X): New #define.
15279	(SPEC_BARRIER): New instantiation of BU_P7_MISC_X.
15280	* config/rs6000/rs6000.c (rs6000_expand_builtin): Handle
15281	MISC_BUILTIN_SPEC_BARRIER.
15282	(rs6000_init_builtins): Likewise.
15283	* config/rs6000/rs6000.md (UNSPECV_SPEC_BARRIER): New UNSPECV
15284	enum value.
15285	(speculation_barrier): New define_insn.
15286	* doc/extend.texi: Document __builtin_speculation_barrier.
15287
152882018-01-11  Jakub Jelinek  <jakub@redhat.com>
15289
15290	PR target/83203
15291	* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): If one_var
15292	is 0, for V{8,16}S[IF] and V[48]D[IF]mode use gen_vec_set<mode>_0.
15293	* config/i386/sse.md (VI8_AVX_AVX512F, VI4F_256_512): New mode
15294	iterators.
15295	(ssescalarmodesuffix): Add 512-bit vectors.  Use "d" or "q" for
15296	integral modes instead of "ss" and "sd".
15297	(vec_set<mode>_0): New define_insns for 256-bit and 512-bit
15298	vectors with 32-bit and 64-bit elements.
15299	(vecdupssescalarmodesuffix): New mode attribute.
15300	(vec_dup<mode>): Use it.
15301
153022018-01-11  H.J. Lu  <hongjiu.lu@intel.com>
15303
15304	PR target/83330
15305	* config/i386/i386.c (ix86_compute_frame_layout): Align stack
15306	frame if argument is passed on stack.
15307
153082018-01-11  Jakub Jelinek  <jakub@redhat.com>
15309
15310	PR target/82682
15311	* ree.c (combine_reaching_defs): Optimize also
15312	reg2=exp; reg1=reg2; reg2=any_extend(reg1); into
15313	reg2=any_extend(exp); reg1=reg2;, formatting fix.
15314
153152018-01-11  Jan Hubicka  <hubicka@ucw.cz>
15316
15317	PR middle-end/83189
15318	* gimple-ssa-isolate-paths.c (isolate_path): Fix profile update.
15319
153202018-01-11  Jan Hubicka  <hubicka@ucw.cz>
15321
15322	PR middle-end/83718
15323	* tree-inline.c (copy_cfg_body): Adjust num&den for scaling
15324	after they are computed.
15325
153262018-01-11  Bin Cheng  <bin.cheng@arm.com>
15327
15328	PR tree-optimization/83695
15329	* gimple-loop-linterchange.cc
15330	(tree_loop_interchange::interchange_loops): Call scev_reset_htab to
15331	reset cached scev information after interchange.
15332	(pass_linterchange::execute): Remove call to scev_reset_htab.
15333
153342018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15335
15336	* config/arm/arm_neon.h (vfmlal_lane_low_u32, vfmlal_lane_high_u32,
15337	vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, vfmlal_laneq_low_u32,
15338	vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, vfmlal_laneq_high_u32,
15339	vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, vfmlslq_laneq_low_u32,
15340	vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, vfmlslq_laneq_high_u32,
15341	vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): Define.
15342	* config/arm/arm_neon_builtins.def (vfmal_lane_low,
15343	vfmal_lane_lowv4hf, vfmal_lane_lowv8hf, vfmal_lane_high,
15344	vfmal_lane_highv4hf, vfmal_lane_highv8hf, vfmsl_lane_low,
15345	vfmsl_lane_lowv4hf, vfmsl_lane_lowv8hf, vfmsl_lane_high,
15346	vfmsl_lane_highv4hf, vfmsl_lane_highv8hf): New sets of builtins.
15347	* config/arm/iterators.md (VFMLSEL2, vfmlsel2): New mode attributes.
15348	(V_lane_reg): Likewise.
15349	* config/arm/neon.md (neon_vfm<vfml_op>l_lane_<vfml_half><VCVTF:mode>):
15350	New define_expand.
15351	(neon_vfm<vfml_op>l_lane_<vfml_half><vfmlsel2><mode>): Likewise.
15352	(vfmal_lane_low<mode>_intrinsic,
15353	vfmal_lane_low<vfmlsel2><mode>_intrinsic,
15354	vfmal_lane_high<vfmlsel2><mode>_intrinsic,
15355	vfmal_lane_high<mode>_intrinsic, vfmsl_lane_low<mode>_intrinsic,
15356	vfmsl_lane_low<vfmlsel2><mode>_intrinsic,
15357	vfmsl_lane_high<vfmlsel2><mode>_intrinsic,
15358	vfmsl_lane_high<mode>_intrinsic): New define_insns.
15359
153602018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15361
15362	* config/arm/arm-cpus.in (fp16fml): New feature.
15363	(ALL_SIMD): Add fp16fml.
15364	(armv8.2-a): Add fp16fml as an option.
15365	(armv8.3-a): Likewise.
15366	(armv8.4-a): Add fp16fml as part of fp16.
15367	* config/arm/arm.h (TARGET_FP16FML): Define.
15368	* config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_FP16_FML
15369	when appropriate.
15370	* config/arm/arm-modes.def (V2HF): Define.
15371	* config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
15372	vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32,
15373	vfmlslq_low_u32, vfmlalq_high_u32, vfmlslq_high_u32): Define.
15374	* config/arm/arm_neon_builtins.def (vfmal_low, vfmal_high,
15375	vfmsl_low, vfmsl_high): New set of builtins.
15376	* config/arm/iterators.md (PLUSMINUS): New code iterator.
15377	(vfml_op): New code attribute.
15378	(VFMLHALVES): New int iterator.
15379	(VFML, VFMLSEL): New mode attributes.
15380	(V_reg): Define mapping for V2HF.
15381	(V_hi, V_lo): New mode attributes.
15382	(VF_constraint): Likewise.
15383	(vfml_half, vfml_half_selector): New int attributes.
15384	* config/arm/neon.md (neon_vfm<vfml_op>l_<vfml_half><mode>): New
15385	define_expand.
15386	(vfmal_low<mode>_intrinsic, vfmsl_high<mode>_intrinsic,
15387	vfmal_high<mode>_intrinsic, vfmsl_low<mode>_intrinsic):
15388	New define_insn.
15389	* config/arm/t-arm-elf (v8_fps): Add fp16fml.
15390	* config/arm/t-multilib (v8_2_a_simd_variants): Add fp16fml.
15391	* config/arm/unspecs.md (UNSPEC_VFML_LO, UNSPEC_VFML_HI): New unspecs.
15392	* doc/invoke.texi (ARM Options): Document fp16fml.  Update armv8.4-a
15393	documentation.
15394	* doc/sourcebuild.texi (arm_fp16fml_neon_ok, arm_fp16fml_neon):
15395	Document new effective target and option set.
15396
153972018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15398
15399	* config/arm/arm-cpus.in (armv8_4): New feature.
15400	(ARMv8_4a): New fgroup.
15401	(armv8.4-a): New arch.
15402	* config/arm/arm-tables.opt: Regenerate.
15403	* config/arm/t-aprofile: Add matching rules for -march=armv8.4-a.
15404	* config/arm/t-arm-elf (all_v8_archs): Add armv8.4-a.
15405	* config/arm/t-multilib (v8_4_a_simd_variants): New variable.
15406	Add matching rules for -march=armv8.4-a and extensions.
15407	* doc/invoke.texi (ARM Options): Document -march=armv8.4-a.
15408
154092018-01-11  Oleg Endo  <olegendo@gcc.gnu.org>
15410
15411	PR target/81821
15412	* config/rx/rx.md (BW): New mode attribute.
15413	(sync_lock_test_and_setsi): Add mode suffix to insn output.
15414
154152018-01-11  Richard Biener  <rguenther@suse.de>
15416
15417	PR tree-optimization/83435
15418	* graphite.c (canonicalize_loop_form): Ignore fake loop exit edges.
15419	* graphite-scop-detection.c (scop_detection::get_sese): Likewise.
15420	* tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear.
15421
154222018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
15423	    Alan Hayward  <alan.hayward@arm.com>
15424	    David Sherwood  <david.sherwood@arm.com>
15425
15426	* config/aarch64/aarch64.c (aarch64_address_info): Add a const_offset
15427	field.
15428	(aarch64_classify_address): Initialize it.  Track polynomial offsets.
15429	(aarch64_print_address_internal): Use it to check for a zero offset.
15430
154312018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
15432	    Alan Hayward  <alan.hayward@arm.com>
15433	    David Sherwood  <david.sherwood@arm.com>
15434
15435	* config/aarch64/aarch64-modes.def (NUM_POLY_INT_COEFFS): Set to 2.
15436	* config/aarch64/aarch64-protos.h (aarch64_initial_elimination_offset):
15437	Return a poly_int64 rather than a HOST_WIDE_INT.
15438	(aarch64_offset_7bit_signed_scaled_p): Take the offset as a poly_int64
15439	rather than a HOST_WIDE_INT.
15440	* config/aarch64/aarch64.h (aarch64_frame): Protect with
15441	HAVE_POLY_INT_H rather than HOST_WIDE_INT.  Change locals_offset,
15442	hard_fp_offset, frame_size, initial_adjust, callee_offset and
15443	final_offset from HOST_WIDE_INT to poly_int64.
15444	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
15445	to_constant when getting the number of units in an Advanced SIMD
15446	mode.
15447	(aarch64_builtin_vectorized_function): Check for a constant number
15448	of units.
15449	* config/aarch64/aarch64-simd.md (mov<mode>): Handle polynomial
15450	GET_MODE_SIZE.
15451	(aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use the nunits
15452	attribute instead of GET_MODE_NUNITS.
15453	* config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
15454	(aarch64_class_max_nregs): Use the constant_lowest_bound of the
15455	GET_MODE_SIZE for fixed-size registers.
15456	(aarch64_const_vec_all_same_in_range_p): Use const_vec_duplicate_p.
15457	(aarch64_hard_regno_call_part_clobbered, aarch64_classify_index)
15458	(aarch64_mode_valid_for_sched_fusion_p, aarch64_classify_address)
15459	(aarch64_legitimize_address_displacement, aarch64_secondary_reload)
15460	(aarch64_print_operand, aarch64_print_address_internal)
15461	(aarch64_address_cost, aarch64_rtx_costs, aarch64_register_move_cost)
15462	(aarch64_short_vector_p, aapcs_vfp_sub_candidate)
15463	(aarch64_simd_attr_length_rglist, aarch64_operands_ok_for_ldpstp):
15464	Handle polynomial GET_MODE_SIZE.
15465	(aarch64_hard_regno_caller_save_mode): Likewise.  Return modes
15466	wider than SImode without modification.
15467	(tls_symbolic_operand_type): Use strip_offset instead of split_const.
15468	(aarch64_pass_by_reference, aarch64_layout_arg, aarch64_pad_reg_upward)
15469	(aarch64_gimplify_va_arg_expr): Assert that we don't yet handle
15470	passing and returning SVE modes.
15471	(aarch64_function_value, aarch64_layout_arg): Use gen_int_mode
15472	rather than GEN_INT.
15473	(aarch64_emit_probe_stack_range): Take the size as a poly_int64
15474	rather than a HOST_WIDE_INT, but call sorry if it isn't constant.
15475	(aarch64_allocate_and_probe_stack_space): Likewise.
15476	(aarch64_layout_frame): Cope with polynomial offsets.
15477	(aarch64_save_callee_saves, aarch64_restore_callee_saves): Take the
15478	start_offset as a poly_int64 rather than a HOST_WIDE_INT.  Track
15479	polynomial offsets.
15480	(offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p)
15481	(aarch64_offset_7bit_signed_scaled_p): Take the offset as a
15482	poly_int64 rather than a HOST_WIDE_INT.
15483	(aarch64_get_separate_components, aarch64_process_components)
15484	(aarch64_expand_prologue, aarch64_expand_epilogue)
15485	(aarch64_use_return_insn_p): Handle polynomial frame offsets.
15486	(aarch64_anchor_offset): New function, split out from...
15487	(aarch64_legitimize_address): ...here.
15488	(aarch64_builtin_vectorization_cost): Handle polynomial
15489	TYPE_VECTOR_SUBPARTS.
15490	(aarch64_simd_check_vect_par_cnst_half): Handle polynomial
15491	GET_MODE_NUNITS.
15492	(aarch64_simd_make_constant, aarch64_expand_vector_init): Get the
15493	number of elements from the PARALLEL rather than the mode.
15494	(aarch64_shift_truncation_mask): Use GET_MODE_UNIT_BITSIZE
15495	rather than GET_MODE_BITSIZE.
15496	(aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_ext)
15497	(aarch64_evpc_rev, aarch64_evpc_dup, aarch64_evpc_zip)
15498	(aarch64_expand_vec_perm_const_1): Handle polynomial
15499	d->perm.length () and d->perm elements.
15500	(aarch64_evpc_tbl): Likewise.  Use nelt rather than GET_MODE_NUNITS.
15501	Apply to_constant to d->perm elements.
15502	(aarch64_simd_valid_immediate, aarch64_vec_fpconst_pow_of_2): Handle
15503	polynomial CONST_VECTOR_NUNITS.
15504	(aarch64_move_pointer): Take amount as a poly_int64 rather
15505	than an int.
15506	(aarch64_progress_pointer): Avoid temporary variable.
15507	* config/aarch64/aarch64.md (aarch64_<crc_variant>): Use
15508	the mode attribute instead of GET_MODE.
15509
155102018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
15511	    Alan Hayward  <alan.hayward@arm.com>
15512	    David Sherwood  <david.sherwood@arm.com>
15513
15514	* config/aarch64/aarch64.c (aarch64_force_temporary): Assert that
15515	x exists before using it.
15516	(aarch64_add_constant_internal): Rename to...
15517	(aarch64_add_offset_1): ...this.  Replace regnum with separate
15518	src and dest rtxes.  Handle the case in which they're different,
15519	including when the offset is zero.  Replace scratchreg with an rtx.
15520	Use 2 additions if there is no spare register into which we can
15521	move a 16-bit constant.
15522	(aarch64_add_constant): Delete.
15523	(aarch64_add_offset): Replace reg with separate src and dest
15524	rtxes.  Take a poly_int64 offset instead of a HOST_WIDE_INT.
15525	Use aarch64_add_offset_1.
15526	(aarch64_add_sp, aarch64_sub_sp): Take the scratch register as
15527	an rtx rather than an int.  Take the delta as a poly_int64
15528	rather than a HOST_WIDE_INT.  Use aarch64_add_offset.
15529	(aarch64_expand_mov_immediate): Update uses of aarch64_add_offset.
15530	(aarch64_expand_prologue): Update calls to aarch64_sub_sp,
15531	aarch64_allocate_and_probe_stack_space and aarch64_add_offset.
15532	(aarch64_expand_epilogue): Update calls to aarch64_add_offset
15533	and aarch64_add_sp.
15534	(aarch64_output_mi_thunk): Use aarch64_add_offset rather than
15535	aarch64_add_constant.
15536
155372018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
15538
15539	* config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
15540	Use scalar_float_mode.
15541
155422018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
15543
15544	* config/aarch64/aarch64-simd.md
15545	(aarch64_fml<f16mac1>l<f16quad>_low<mode>): Avoid GET_MODE_NUNITS.
15546	(aarch64_fml<f16mac1>l<f16quad>_high<mode>): Likewise.
15547	(aarch64_fml<f16mac1>l_lane_lowv2sf): Likewise.
15548	(aarch64_fml<f16mac1>l_lane_highv2sf): Likewise.
15549	(aarch64_fml<f16mac1>lq_laneq_lowv4sf): Likewise.
15550	(aarch64_fml<f16mac1>lq_laneq_highv4sf): Likewise.
15551	(aarch64_fml<f16mac1>l_laneq_lowv2sf): Likewise.
15552	(aarch64_fml<f16mac1>l_laneq_highv2sf): Likewise.
15553	(aarch64_fml<f16mac1>lq_lane_lowv4sf): Likewise.
15554	(aarch64_fml<f16mac1>lq_lane_highv4sf): Likewise.
15555
155562018-01-11  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
15557
15558	PR target/83514
15559	* config/arm/arm.c (arm_declare_function_name): Set arch_to_print if
15560	targ_options->x_arm_arch_string is non NULL.
15561
155622018-01-11  Tamar Christina  <tamar.christina@arm.com>
15563
15564	* config/aarch64/aarch64.h
15565	(AARCH64_FL_FOR_ARCH8_4): Add  AARCH64_FL_DOTPROD.
15566
155672018-01-11  Sudakshina Das  <sudi.das@arm.com>
15568
15569	PR target/82096
15570	* expmed.c (emit_store_flag_force): Swap if const op0
15571	and change VOIDmode to mode of op0.
15572
155732018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
15574
15575	PR rtl-optimization/83761
15576	* caller-save.c (replace_reg_with_saved_mem): Pass bits rather
15577	than bytes to mode_for_size.
15578
155792018-01-10  Jan Hubicka  <hubicka@ucw.cz>
15580
15581	PR middle-end/83189
15582	* gfortran.fortran-torture/compile/pr83189.f90: New testcase.
15583	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero
15584	profile.
15585
155862018-01-10  Jan Hubicka  <hubicka@ucw.cz>
15587
15588	PR middle-end/83575
15589	* cfgrtl.c (rtl_verify_edges): Only verify fixability of partition
15590	when in layout mode.
15591	(cfg_layout_finalize): Do not verify cfg before we are out of layout.
15592	* cfgcleanup.c (try_optimize_cfg): Only verify flow info when doing
15593	partition fixup.
15594
155952018-01-10  Michael Collison  <michael.collison@arm.com>
15596
15597	* config/aarch64/aarch64-modes.def (V2HF): New VECTOR_MODE.
15598	* config/aarch64/aarch64-option-extension.def: Add
15599	AARCH64_OPT_EXTENSION of 'fp16fml'.
15600	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
15601	(__ARM_FEATURE_FP16_FML): Define if TARGET_F16FML is true.
15602	* config/aarch64/predicates.md (aarch64_lane_imm3): New predicate.
15603	* config/aarch64/constraints.md (Ui7): New constraint.
15604	* config/aarch64/iterators.md (VFMLA_W): New mode iterator.
15605	(VFMLA_SEL_W): Ditto.
15606	(f16quad): Ditto.
15607	(f16mac1): Ditto.
15608	(VFMLA16_LOW): New int iterator.
15609	(VFMLA16_HIGH): Ditto.
15610	(UNSPEC_FMLAL): New unspec.
15611	(UNSPEC_FMLSL): Ditto.
15612	(UNSPEC_FMLAL2): Ditto.
15613	(UNSPEC_FMLSL2): Ditto.
15614	(f16mac): New code attribute.
15615	* config/aarch64/aarch64-simd-builtins.def
15616	(aarch64_fmlal_lowv2sf): Ditto.
15617	(aarch64_fmlsl_lowv2sf): Ditto.
15618	(aarch64_fmlalq_lowv4sf): Ditto.
15619	(aarch64_fmlslq_lowv4sf): Ditto.
15620	(aarch64_fmlal_highv2sf): Ditto.
15621	(aarch64_fmlsl_highv2sf): Ditto.
15622	(aarch64_fmlalq_highv4sf): Ditto.
15623	(aarch64_fmlslq_highv4sf): Ditto.
15624	(aarch64_fmlal_lane_lowv2sf): Ditto.
15625	(aarch64_fmlsl_lane_lowv2sf): Ditto.
15626	(aarch64_fmlal_laneq_lowv2sf): Ditto.
15627	(aarch64_fmlsl_laneq_lowv2sf): Ditto.
15628	(aarch64_fmlalq_lane_lowv4sf): Ditto.
15629	(aarch64_fmlsl_lane_lowv4sf): Ditto.
15630	(aarch64_fmlalq_laneq_lowv4sf): Ditto.
15631	(aarch64_fmlsl_laneq_lowv4sf): Ditto.
15632	(aarch64_fmlal_lane_highv2sf): Ditto.
15633	(aarch64_fmlsl_lane_highv2sf): Ditto.
15634	(aarch64_fmlal_laneq_highv2sf): Ditto.
15635	(aarch64_fmlsl_laneq_highv2sf): Ditto.
15636	(aarch64_fmlalq_lane_highv4sf): Ditto.
15637	(aarch64_fmlsl_lane_highv4sf): Ditto.
15638	(aarch64_fmlalq_laneq_highv4sf): Ditto.
15639	(aarch64_fmlsl_laneq_highv4sf): Ditto.
15640	* config/aarch64/aarch64-simd.md:
15641	(aarch64_fml<f16mac1>l<f16quad>_low<mode>): New pattern.
15642	(aarch64_fml<f16mac1>l<f16quad>_high<mode>): Ditto.
15643	(aarch64_simd_fml<f16mac1>l<f16quad>_low<mode>): Ditto.
15644	(aarch64_simd_fml<f16mac1>l<f16quad>_high<mode>): Ditto.
15645	(aarch64_fml<f16mac1>l_lane_lowv2sf): Ditto.
15646	(aarch64_fml<f16mac1>l_lane_highv2sf): Ditto.
15647	(aarch64_simd_fml<f16mac>l_lane_lowv2sf): Ditto.
15648	(aarch64_simd_fml<f16mac>l_lane_highv2sf): Ditto.
15649	(aarch64_fml<f16mac1>lq_laneq_lowv4sf): Ditto.
15650	(aarch64_fml<f16mac1>lq_laneq_highv4sf): Ditto.
15651	(aarch64_simd_fml<f16mac>lq_laneq_lowv4sf): Ditto.
15652	(aarch64_simd_fml<f16mac>lq_laneq_highv4sf): Ditto.
15653	(aarch64_fml<f16mac1>l_laneq_lowv2sf): Ditto.
15654	(aarch64_fml<f16mac1>l_laneq_highv2sf): Ditto.
15655	(aarch64_simd_fml<f16mac>l_laneq_lowv2sf): Ditto.
15656	(aarch64_simd_fml<f16mac>l_laneq_highv2sf): Ditto.
15657	(aarch64_fml<f16mac1>lq_lane_lowv4sf): Ditto.
15658	(aarch64_fml<f16mac1>lq_lane_highv4sf): Ditto.
15659	(aarch64_simd_fml<f16mac>lq_lane_lowv4sf): Ditto.
15660	(aarch64_simd_fml<f16mac>lq_lane_highv4sf): Ditto.
15661	* config/aarch64/arm_neon.h (vfmlal_low_u32): New intrinsic.
15662	(vfmlsl_low_u32): Ditto.
15663	(vfmlalq_low_u32): Ditto.
15664	(vfmlslq_low_u32): Ditto.
15665	(vfmlal_high_u32): Ditto.
15666	(vfmlsl_high_u32): Ditto.
15667	(vfmlalq_high_u32): Ditto.
15668	(vfmlslq_high_u32): Ditto.
15669	(vfmlal_lane_low_u32): Ditto.
15670	(vfmlsl_lane_low_u32): Ditto.
15671	(vfmlal_laneq_low_u32): Ditto.
15672	(vfmlsl_laneq_low_u32): Ditto.
15673	(vfmlalq_lane_low_u32): Ditto.
15674	(vfmlslq_lane_low_u32): Ditto.
15675	(vfmlalq_laneq_low_u32): Ditto.
15676	(vfmlslq_laneq_low_u32): Ditto.
15677	(vfmlal_lane_high_u32): Ditto.
15678	(vfmlsl_lane_high_u32): Ditto.
15679	(vfmlal_laneq_high_u32): Ditto.
15680	(vfmlsl_laneq_high_u32): Ditto.
15681	(vfmlalq_lane_high_u32): Ditto.
15682	(vfmlslq_lane_high_u32): Ditto.
15683	(vfmlalq_laneq_high_u32): Ditto.
15684	(vfmlslq_laneq_high_u32): Ditto.
15685	* config/aarch64/aarch64.h (AARCH64_FL_F16SML): New flag.
15686	(AARCH64_FL_FOR_ARCH8_4): New.
15687	(AARCH64_ISA_F16FML): New ISA flag.
15688	(TARGET_F16FML): New feature flag for fp16fml.
15689	(doc/invoke.texi): Document new fp16fml option.
15690
156912018-01-10  Michael Collison  <michael.collison@arm.com>
15692
15693	* config/aarch64/aarch64-builtins.c:
15694	(aarch64_types_ternopu_imm_qualifiers, TYPES_TERNOPUI): New.
15695	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
15696	(__ARM_FEATURE_SHA3): Define if TARGET_SHA3 is true.
15697	* config/aarch64/aarch64.h (AARCH64_FL_SHA3): New flags.
15698	(AARCH64_ISA_SHA3): New ISA flag.
15699	(TARGET_SHA3): New feature flag for sha3.
15700	* config/aarch64/iterators.md (sha512_op): New int attribute.
15701	(CRYPTO_SHA512): New int iterator.
15702	(UNSPEC_SHA512H): New unspec.
15703	(UNSPEC_SHA512H2): Ditto.
15704	(UNSPEC_SHA512SU0): Ditto.
15705	(UNSPEC_SHA512SU1): Ditto.
15706	* config/aarch64/aarch64-simd-builtins.def
15707	(aarch64_crypto_sha512hqv2di): New builtin.
15708	(aarch64_crypto_sha512h2qv2di): Ditto.
15709	(aarch64_crypto_sha512su0qv2di): Ditto.
15710	(aarch64_crypto_sha512su1qv2di): Ditto.
15711	(aarch64_eor3qv8hi): Ditto.
15712	(aarch64_rax1qv2di): Ditto.
15713	(aarch64_xarqv2di): Ditto.
15714	(aarch64_bcaxqv8hi): Ditto.
15715	* config/aarch64/aarch64-simd.md:
15716	(aarch64_crypto_sha512h<sha512_op>qv2di): New pattern.
15717	(aarch64_crypto_sha512su0qv2di): Ditto.
15718	(aarch64_crypto_sha512su1qv2di): Ditto.
15719	(aarch64_eor3qv8hi): Ditto.
15720	(aarch64_rax1qv2di): Ditto.
15721	(aarch64_xarqv2di): Ditto.
15722	(aarch64_bcaxqv8hi): Ditto.
15723	* config/aarch64/arm_neon.h (vsha512hq_u64): New intrinsic.
15724	(vsha512h2q_u64): Ditto.
15725	(vsha512su0q_u64): Ditto.
15726	(vsha512su1q_u64): Ditto.
15727	(veor3q_u16): Ditto.
15728	(vrax1q_u64): Ditto.
15729	(vxarq_u64): Ditto.
15730	(vbcaxq_u16): Ditto.
15731	* config/arm/types.md (crypto_sha512): New type attribute.
15732	(crypto_sha3): Ditto.
15733	(doc/invoke.texi): Document new sha3 option.
15734
157352018-01-10  Michael Collison  <michael.collison@arm.com>
15736
15737	* config/aarch64/aarch64-builtins.c:
15738	(aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): New.
15739	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
15740	(__ARM_FEATURE_SM3): Define if TARGET_SM4 is true.
15741	(__ARM_FEATURE_SM4): Define if TARGET_SM4 is true.
15742	* config/aarch64/aarch64.h (AARCH64_FL_SM4): New flags.
15743	(AARCH64_ISA_SM4): New ISA flag.
15744	(TARGET_SM4): New feature flag for sm4.
15745	* config/aarch64/aarch64-simd-builtins.def
15746	(aarch64_sm3ss1qv4si): Ditto.
15747	(aarch64_sm3tt1aq4si): Ditto.
15748	(aarch64_sm3tt1bq4si): Ditto.
15749	(aarch64_sm3tt2aq4si): Ditto.
15750	(aarch64_sm3tt2bq4si): Ditto.
15751	(aarch64_sm3partw1qv4si): Ditto.
15752	(aarch64_sm3partw2qv4si): Ditto.
15753	(aarch64_sm4eqv4si): Ditto.
15754	(aarch64_sm4ekeyqv4si): Ditto.
15755	* config/aarch64/aarch64-simd.md:
15756	(aarch64_sm3ss1qv4si): Ditto.
15757	(aarch64_sm3tt<sm3tt_op>qv4si): Ditto.
15758	(aarch64_sm3partw<sm3part_op>qv4si): Ditto.
15759	(aarch64_sm4eqv4si): Ditto.
15760	(aarch64_sm4ekeyqv4si): Ditto.
15761	* config/aarch64/iterators.md (sm3tt_op): New int iterator.
15762	(sm3part_op): Ditto.
15763	(CRYPTO_SM3TT): Ditto.
15764	(CRYPTO_SM3PART): Ditto.
15765	(UNSPEC_SM3SS1): New unspec.
15766	(UNSPEC_SM3TT1A): Ditto.
15767	(UNSPEC_SM3TT1B): Ditto.
15768	(UNSPEC_SM3TT2A): Ditto.
15769	(UNSPEC_SM3TT2B): Ditto.
15770	(UNSPEC_SM3PARTW1): Ditto.
15771	(UNSPEC_SM3PARTW2): Ditto.
15772	(UNSPEC_SM4E): Ditto.
15773	(UNSPEC_SM4EKEY): Ditto.
15774	* config/aarch64/constraints.md (Ui2): New constraint.
15775	* config/aarch64/predicates.md (aarch64_imm2): New predicate.
15776	* config/arm/types.md (crypto_sm3): New type attribute.
15777	(crypto_sm4): Ditto.
15778	* config/aarch64/arm_neon.h (vsm3ss1q_u32): New intrinsic.
15779	(vsm3tt1aq_u32): Ditto.
15780	(vsm3tt1bq_u32): Ditto.
15781	(vsm3tt2aq_u32): Ditto.
15782	(vsm3tt2bq_u32): Ditto.
15783	(vsm3partw1q_u32): Ditto.
15784	(vsm3partw2q_u32): Ditto.
15785	(vsm4eq_u32): Ditto.
15786	(vsm4ekeyq_u32): Ditto.
15787	(doc/invoke.texi): Document new sm4 option.
15788
157892018-01-10  Michael Collison  <michael.collison@arm.com>
15790
15791	* config/aarch64/aarch64-arches.def (armv8.4-a): New architecture.
15792	* config/aarch64/aarch64.h (AARCH64_ISA_V8_4): New ISA flag.
15793	(AARCH64_FL_FOR_ARCH8_4): New.
15794	(AARCH64_FL_V8_4): New flag.
15795	(doc/invoke.texi): Document new armv8.4-a option.
15796
157972018-01-10  Michael Collison  <michael.collison@arm.com>
15798
15799	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
15800	(__ARM_FEATURE_AES): Define if TARGET_AES is true.
15801	(__ARM_FEATURE_SHA2): Define if TARGET_SHA2 is true.
15802	* config/aarch64/aarch64-option-extension.def: Add
15803	AARCH64_OPT_EXTENSION of 'sha2'.
15804	(aes): Add AARCH64_OPT_EXTENSION of 'aes'.
15805	(crypto): Disable sha2 and aes if crypto disabled.
15806	(crypto): Enable aes and sha2 if enabled.
15807	(simd): Disable sha2 and aes if simd disabled.
15808	* config/aarch64/aarch64.h (AARCH64_FL_AES, AARCH64_FL_SHA2):
15809	New flags.
15810	(AARCH64_ISA_AES, AARCH64_ISA_SHA2): New ISA flags.
15811	(TARGET_SHA2): New feature flag for sha2.
15812	(TARGET_AES): New feature flag for aes.
15813	* config/aarch64/aarch64-simd.md:
15814	(aarch64_crypto_aes<aes_op>v16qi): Make pattern
15815	conditional on TARGET_AES.
15816	(aarch64_crypto_aes<aesmc_op>v16qi): Ditto.
15817	(aarch64_crypto_sha1hsi): Make pattern conditional
15818	on TARGET_SHA2.
15819	(aarch64_crypto_sha1hv4si): Ditto.
15820	(aarch64_be_crypto_sha1hv4si): Ditto.
15821	(aarch64_crypto_sha1su1v4si): Ditto.
15822	(aarch64_crypto_sha1<sha1_op>v4si): Ditto.
15823	(aarch64_crypto_sha1su0v4si): Ditto.
15824	(aarch64_crypto_sha256h<sha256_op>v4si): Ditto.
15825	(aarch64_crypto_sha256su0v4si): Ditto.
15826	(aarch64_crypto_sha256su1v4si): Ditto.
15827	(doc/invoke.texi): Document new aes and sha2 options.
15828
158292018-01-10  Martin Sebor  <msebor@redhat.com>
15830
15831	PR tree-optimization/83781
15832	* gimple-fold.c (get_range_strlen): Avoid treating arrays of pointers
15833	as string arrays.
15834
158352018-01-11  Martin Sebor  <msebor@gmail.com>
15836	    Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
15837
15838	PR tree-optimization/83501
15839	PR tree-optimization/81703
15840
15841	* tree-ssa-strlen.c (get_string_cst): Rename...
15842	(get_string_len): ...to this.  Handle global constants.
15843	(handle_char_store): Adjust.
15844
158452018-01-10  Kito Cheng  <kito.cheng@gmail.com>
15846	    Jim Wilson  <jimw@sifive.com>
15847
15848	* config/riscv/riscv-protos.h (riscv_output_return): New.
15849	* config/riscv/riscv.c (struct machine_function): New naked_p field.
15850	(riscv_attribute_table, riscv_output_return),
15851	(riscv_handle_fndecl_attribute, riscv_naked_function_p),
15852	(riscv_allocate_stack_slots_for_args, riscv_warn_func_return): New.
15853	(riscv_compute_frame_info): Only compute frame->mask if not a naked
15854	function.
15855	(riscv_expand_prologue): Add early return for naked function.
15856	(riscv_expand_epilogue): Likewise.
15857	(riscv_function_ok_for_sibcall): Return false for naked function.
15858	(riscv_set_current_function): New.
15859	(TARGET_SET_CURRENT_FUNCTION, TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS),
15860	(TARGET_ATTRIBUTE_TABLE, TARGET_WARN_FUNC_RETURN): New.
15861	* config/riscv/riscv.md (simple_return): Call riscv_output_return.
15862	* doc/extend.texi (RISC-V Function Attributes): New.
15863
158642018-01-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
15865
15866	* config/rs6000/rs6000.c (is_complex_IBM_long_double): Explicitly
15867	check for 128-bit long double before checking TCmode.
15868	* config/rs6000/rs6000.h (FLOAT128_IEEE_P): Explicitly check for
15869	128-bit long doubles before checking TFmode or TCmode.
15870	(FLOAT128_IBM_P): Likewise.
15871
158722018-01-10  Martin Sebor  <msebor@redhat.com>
15873
15874	PR tree-optimization/83671
15875	* builtins.c (c_strlen): Unconditionally return zero for the empty
15876	string.
15877	Use -Warray-bounds for warnings.
15878	* gimple-fold.c (get_range_strlen): Handle non-constant lengths
15879	for non-constant array indices with COMPONENT_REF, arrays of
15880	arrays, and pointers to arrays.
15881	(gimple_fold_builtin_strlen): Determine and set length range for
15882	non-constant character arrays.
15883
158842018-01-10  Aldy Hernandez  <aldyh@redhat.com>
15885
15886	PR middle-end/81897
15887	* tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip
15888	empty blocks.
15889
158902018-01-10  Eric Botcazou  <ebotcazou@adacore.com>
15891
15892	* dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf.
15893
158942018-01-10  Peter Bergner  <bergner@vnet.ibm.com>
15895
15896	PR target/83399
15897	* config/rs6000/rs6000.c (print_operand) <'y'>: Use
15898	VECTOR_MEM_ALTIVEC_OR_VSX_P.
15899	* config/rs6000/vsx.md (*vsx_le_perm_load_<mode> for VSX_D): Use
15900	indexed_or_indirect_operand predicate.
15901	(*vsx_le_perm_load_<mode> for VSX_W): Likewise.
15902	(*vsx_le_perm_load_v8hi): Likewise.
15903	(*vsx_le_perm_load_v16qi): Likewise.
15904	(*vsx_le_perm_store_<mode> for VSX_D): Likewise.
15905	(*vsx_le_perm_store_<mode> for VSX_W): Likewise.
15906	(*vsx_le_perm_store_v8hi): Likewise.
15907	(*vsx_le_perm_store_v16qi): Likewise.
15908	(eight unnamed splitters): Likewise.
15909
159102018-01-10  Peter Bergner  <bergner@vnet.ibm.com>
15911
15912	* config/rs6000/x86intrin.h: Change #warning to #error. Update message.
15913	* config/rs6000/emmintrin.h: Likewise.
15914	* config/rs6000/mmintrin.h: Likewise.
15915	* config/rs6000/xmmintrin.h: Likewise.
15916
159172018-01-10  David Malcolm  <dmalcolm@redhat.com>
15918
15919	PR c++/43486
15920	* tree-core.h: Document EXPR_LOCATION_WRAPPER_P's usage of
15921	"public_flag".
15922	* tree.c (tree_nop_conversion): Return true for location wrapper
15923	nodes.
15924	(maybe_wrap_with_location): New function.
15925	(selftest::check_strip_nops): New function.
15926	(selftest::test_location_wrappers): New function.
15927	(selftest::tree_c_tests): Call it.
15928	* tree.h (STRIP_ANY_LOCATION_WRAPPER): New macro.
15929	(maybe_wrap_with_location): New decl.
15930	(EXPR_LOCATION_WRAPPER_P): New macro.
15931	(location_wrapper_p): New inline function.
15932	(tree_strip_any_location_wrapper): New inline function.
15933
159342018-01-10  H.J. Lu  <hongjiu.lu@intel.com>
15935
15936	PR target/83735
15937	* config/i386/i386.c (ix86_compute_frame_layout): Always adjust
15938	stack_realign_offset for the largest alignment of stack slot
15939	actually used.
15940	(ix86_find_max_used_stack_alignment): New function.
15941	(ix86_finalize_stack_frame_flags): Use it.  Set
15942	max_used_stack_alignment if we don't realign stack.
15943	* config/i386/i386.h (machine_function): Add
15944	max_used_stack_alignment.
15945
159462018-01-10  Christophe Lyon  <christophe.lyon@linaro.org>
15947
15948	* config/arm/arm.opt (-mbranch-cost): New option.
15949	* config/arm/arm.h (BRANCH_COST): Take arm_branch_cost into
15950	account.
15951
159522018-01-10  Segher Boessenkool  <segher@kernel.crashing.org>
15953
15954	PR target/83629
15955	* config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b,
15956	load_toc_v4_PIC_3c): Wrap const term in CONST RTL.
15957
159582018-01-10  Richard Biener  <rguenther@suse.de>
15959
15960	PR debug/83765
15961	* dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration
15962	early out so it also covers the case where we have a non-NULL
15963	origin.
15964
159652018-01-10  Richard Sandiford  <richard.sandiford@linaro.org>
15966
15967	PR tree-optimization/83753
15968	* tree-vect-stmts.c (get_group_load_store_type): Use VMAT_CONTIGUOUS
15969	for non-strided grouped accesses if the number of elements is 1.
15970
159712018-01-10  Jan Hubicka  <hubicka@ucw.cz>
15972
15973	PR target/81616
15974	* i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER.
15975	* i386.h (TARGET_USE_GATHER): Define.
15976	* x86-tune.def (X86_TUNE_USE_GATHER): New.
15977
159782018-01-10  Martin Liska  <mliska@suse.cz>
15979
15980	PR bootstrap/82831
15981	* basic-block.h (CLEANUP_NO_PARTITIONING): New define.
15982	* bb-reorder.c (pass_reorder_blocks::execute): Do not clean up
15983	partitioning.
15984	* cfgcleanup.c (try_optimize_cfg): Fix up partitioning if
15985	CLEANUP_NO_PARTITIONING is not set.
15986
159872018-01-10  Richard Sandiford  <richard.sandiford@linaro.org>
15988
15989	* doc/rtl.texi: Remove documentation of (const ...) wrappers
15990	for vectors, as a partial revert of r254296.
15991	* rtl.h (const_vec_p): Delete.
15992	(const_vec_duplicate_p): Don't test for vector CONSTs.
15993	(unwrap_const_vec_duplicate, const_vec_series_p): Likewise.
15994	* expmed.c (make_tree): Likewise.
15995
15996	Revert:
15997	* common.md (E, F): Use CONSTANT_P instead of checking for
15998	CONST_VECTOR.
15999	* emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
16000	checking for CONST_VECTOR.
16001
160022018-01-09  Jan Hubicka  <hubicka@ucw.cz>
16003
16004	PR middle-end/83575
16005	* predict.c (force_edge_cold): Handle in more sane way edges
16006	with no prediction.
16007
160082018-01-09  Carl Love  <cel@us.ibm.com>
16009
16010	* config/rs6002/altivec.md (p8_vmrgow): Add support for V2DI, V2DF,
16011	V4SI, V4SF types.
16012	(p8_vmrgew): Add support for V2DI, V2DF, V4SF types.
16013	* config/rs6000/rs6000-builtin.def: Add definitions for FLOAT2_V2DF,
16014	VMRGEW_V2DI, VMRGEW_V2DF, VMRGEW_V4SF, VMRGOW_V4SI, VMRGOW_V4SF,
16015	VMRGOW_V2DI, VMRGOW_V2DF.  Remove definition for VMRGOW.
16016	* config/rs6000/rs6000-c.c (VSX_BUILTIN_VEC_FLOAT2,
16017	P8V_BUILTIN_VEC_VMRGEW, P8V_BUILTIN_VEC_VMRGOW):  Add definitions.
16018	* config/rs6000/rs6000-protos.h: Add extern defition for
16019	rs6000_generate_float2_double_code.
16020	* config/rs6000/rs6000.c (rs6000_generate_float2_double_code): Add
16021	function.
16022	* config/rs6000/vsx.md (vsx_xvcdpsp): Add define_insn.
16023	(float2_v2df): Add define_expand.
16024
160252018-01-09  Uros Bizjak  <ubizjak@gmail.com>
16026
16027	PR target/83628
16028	* combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of
16029	op_mode in the force_to_mode call.
16030
160312018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
16032
16033	* config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p
16034	instead of checking each element individually.
16035	(aarch64_evpc_uzp): Likewise.
16036	(aarch64_evpc_zip): Likewise.
16037	(aarch64_evpc_ext): Likewise.
16038	(aarch64_evpc_rev): Likewise.
16039	(aarch64_evpc_dup): Test the encoding for a single duplicated element,
16040	instead of checking each element individually.  Return true without
16041	generating rtl if
16042	(aarch64_vectorize_vec_perm_const): Use all_from_input_p to test
16043	whether all selected elements come from the same input, instead of
16044	checking each element individually.  Remove calls to gen_rtx_REG,
16045	start_sequence and end_sequence and instead assert that no rtl is
16046	generated.
16047
160482018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
16049
16050	* config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix
16051	order of HIGH and CONST checks.
16052
160532018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
16054
16055	* tree-vect-stmts.c (permute_vec_elements): Create a fresh variable
16056	if the destination isn't an SSA_NAME.
16057
160582018-01-09  Richard Biener  <rguenther@suse.de>
16059
16060	PR tree-optimization/83668
16061	* graphite.c (canonicalize_loop_closed_ssa): Add edge argument,
16062	move prologue...
16063	(canonicalize_loop_form): ... here, renamed from ...
16064	(canonicalize_loop_closed_ssa_form): ... this and amended to
16065	swap successor edges for loop exit blocks to make us use
16066	the RPO order we need for initial schedule generation.
16067
160682018-01-09  Joseph Myers  <joseph@codesourcery.com>
16069
16070	PR tree-optimization/64811
16071	* match.pd: When optimizing comparisons with Inf, avoid
16072	introducing or losing exceptions from comparisons with NaN.
16073
160742018-01-09  Martin Liska  <mliska@suse.cz>
16075
16076	PR sanitizer/82517
16077	* asan.c (shadow_mem_size): Add gcc_assert.
16078
160792018-01-09  Georg-Johann Lay  <avr@gjlay.de>
16080
16081	Don't save registers in main().
16082
16083	PR target/83738
16084	* doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it.
16085	* config/avr/avr.opt (-mmain-is-OS_task): New target option.
16086	* config/avr/avr.c (avr_set_current_function): Don't error if
16087	naked, OS_task or OS_main are specified at the same time.
16088	(avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task,
16089	OS_main.
16090	(avr_insert_attributes) [-mmain-is-OS_task] <main>: Add OS_task
16091	attribute.
16092	* common/config/avr/avr-common.c (avr_option_optimization_table):
16093	Switch on -mmain-is-OS_task for optimizing compilations.
16094
160952018-01-09  Richard Biener  <rguenther@suse.de>
16096
16097	PR tree-optimization/83572
16098	* graphite.c: Include cfganal.h.
16099	(graphite_transform_loops): Connect infinite loops to exit
16100	and remove fake edges at the end.
16101
161022018-01-09  Jan Hubicka  <hubicka@ucw.cz>
16103
16104	* ipa-inline.c (edge_badness): Revert accidental checkin.
16105
161062018-01-09  Jan Hubicka  <hubicka@ucw.cz>
16107
16108	PR ipa/80763
16109	* ipa-comdats.c (set_comdat_group): Only set comdat group of real
16110	symbols; not inline clones.
16111
161122018-01-09  Jakub Jelinek  <jakub@redhat.com>
16113
16114	PR target/83507
16115	* modulo-sched.c (schedule_reg_moves): Punt if we'd need to move
16116	hard registers.  Formatting fixes.
16117
16118	PR preprocessor/83722
16119	* gcc.c (try_generate_repro): Pass
16120	&temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than
16121	&temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to
16122	do_report_bug.
16123
161242018-01-08  Monk Chiang  <sh.chiang04@gmail.com>
16125	    Kito Cheng  <kito.cheng@gmail.com>
16126
16127	* config/riscv/riscv.c (machine_function::is_leaf): Remove field.
16128	(riscv_leaf_function_p): Delete.
16129	(riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE.
16130
161312018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
16132
16133	* config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New
16134	function.
16135	(do_ifelse): New function.
16136	(do_isel): New function.
16137	(do_sub3): New function.
16138	(do_add3): New function.
16139	(do_load_mask_compare): New function.
16140	(do_overlap_load_compare): New function.
16141	(expand_compare_loop): New function.
16142	(expand_block_compare): Call expand_compare_loop() when appropriate.
16143	* config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change
16144	option description.
16145	(-mblock-compare-inline-loop-limit): New option.
16146
161472018-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16148
16149	PR target/83677
16150	* config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
16151	Reverse order of second and third operands in first alternative.
16152	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order
16153	of first and second elements in UNSPEC_VPERMR vector.
16154	(altivec_expand_vec_perm_le): Likewise.
16155
161562018-01-08  Jeff Law  <law@redhat.com>
16157
16158	PR rtl-optimizatin/81308
16159	* tree-switch-conversion.c (cfg_altered): New file scoped static.
16160	(process_switch): If group_case_labels makes a change, then set
16161	cfg_altered.
16162	(pass_convert_switch::execute): If a switch is converted, then
16163	set cfg_altered.  Return TODO_cfg_cleanup if cfg_altered is true.
16164
16165	PR rtl-optimization/81308
16166	* recog.c (split_all_insns): Conditionally cleanup the CFG after
16167	splitting insns.
16168
161692018-01-08  Vidya Praveen  <vidyapraveen@arm.com>
16170
16171	PR target/83663 - Revert r255946
16172	* config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code
16173	generation for cases where splatting a value is not useful.
16174	* simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
16175	across a vec_duplicate and a paradoxical subreg forming a vector
16176	mode to a vec_concat.
16177
161782018-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16179
16180	* config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for
16181	-march=armv8.3-a variants.
16182	* config/arm/t-multilib: Likewise.
16183	* config/arm/t-arm-elf: Likewise.  Handle dotprod extension.
16184
161852018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
16186
16187	* config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it
16188	to generate rtl.
16189	(cceq_ior_compare_complement): Give it a name so I can use it, and
16190	change boolean_or_operator predicate to boolean_operator so it can
16191	be used to generate a crand.
16192	(eqne): New code iterator.
16193	(bd/bd_neg): New code_attrs.
16194	(<bd>_<mode>): New name for ctr<mode>_internal[12] now combined into
16195	a single define_insn.
16196	(<bd>tf_<mode>): A new insn pattern for the conditional form branch
16197	decrement (bdnzt/bdnzf/bdzt/bdzf).
16198	* config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated
16199	with the new names of the branch decrement patterns, and added the
16200	names of the branch decrement conditional patterns.
16201
162022018-01-08  Richard Biener  <rguenther@suse.de>
16203
16204	PR tree-optimization/83563
16205	* graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV
16206	cache.
16207
162082018-01-08  Richard Biener  <rguenther@suse.de>
16209
16210	PR middle-end/83713
16211	* convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks.
16212
162132018-01-08  Richard Biener  <rguenther@suse.de>
16214
16215	PR tree-optimization/83685
16216	* tree-ssa-pre.c (create_expression_by_pieces): Do not insert
16217	references to abnormals.
16218
162192018-01-08  Richard Biener  <rguenther@suse.de>
16220
16221	PR lto/83719
16222	* dwarf2out.c (output_indirect_strings): Handle empty
16223	skeleton_debug_str_hash.
16224	(dwarf2out_early_finish): Index strings for -gsplit-dwarf.
16225
162262018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
16227
16228	* config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete.
16229	(emit_store_direct): Likewise.
16230	(arc_trampoline_adjust_address): Likewise.
16231	(arc_asm_trampoline_template): New function.
16232	(arc_initialize_trampoline): Use asm_trampoline_template.
16233	(TARGET_ASM_TRAMPOLINE_TEMPLATE): Define.
16234	* config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16.
16235	* config/arc/arc.md (flush_icache): Delete pattern.
16236
162372018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
16238
16239	* config/arc/arc-c.def (__ARC_UNALIGNED__): New define.
16240	* config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using
16241	munaligned-access.
16242
162432018-01-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16244
16245	PR target/83681
16246	* config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard
16247	by not USED_FOR_TARGET.
16248	(make_pass_resolve_sw_modes): Likewise.
16249
162502018-01-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16251
16252	* config/nios2/nios2.h (nios2_section_threshold): Guard by not
16253	USED_FOR_TARGET.
16254
162552018-01-08  Richard Biener  <rguenther@suse.de>
16256
16257	PR middle-end/83580
16258	* tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS.
16259
162602018-01-08  Richard Biener  <rguenther@suse.de>
16261
16262	PR middle-end/83517
16263	* match.pd ((t * 2) / 2) -> t): Add missing :c.
16264
162652018-01-06  Aldy Hernandez  <aldyh@redhat.com>
16266
16267	PR middle-end/81897
16268	* tree-ssa-uninit.c (compute_control_dep_chain): Do not bail on
16269	basic blocks with a small number of successors.
16270	(convert_control_dep_chain_into_preds): Improve handling of
16271	forwarder blocks.
16272	(dump_predicates): Split apart into...
16273	(dump_pred_chain): ...here...
16274	(dump_pred_info): ...and here.
16275	(can_one_predicate_be_invalidated_p): Add debugging printfs.
16276	(can_chain_union_be_invalidated_p): Improve check for invalidation
16277	of paths.
16278	(uninit_uses_cannot_happen): Avoid unnecessary if
16279	convert_control_dep_chain_into_preds yielded nothing.
16280
162812018-01-06  Martin Sebor  <msebor@redhat.com>
16282
16283	PR tree-optimization/83640
16284	* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Avoid
16285	subtracting negative offset from size.
16286	(builtin_access::overlap): Adjust offset bounds of the access to fall
16287	within the size of the object if possible.
16288
162892018-01-06  Richard Sandiford  <richard.sandiford@linaro.org>
16290
16291	PR rtl-optimization/83699
16292	* expmed.c (extract_bit_field_1): Restrict the vector usage of
16293	extract_bit_field_as_subreg to cases in which the extracted
16294	value is also a vector.
16295
16296	* lra-constraints.c (process_alt_operands): Test for the equivalence
16297	substitutions when detecting a possible reload cycle.
16298
162992018-01-06  Jakub Jelinek  <jakub@redhat.com>
16300
16301	PR debug/83480
16302	* toplev.c (process_options): Don't enable debug_nonbind_markers_p
16303	by default if flag_selective_schedling{,2}.  Formatting fixes.
16304
16305	PR rtl-optimization/83682
16306	* rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE
16307	if it has non-VECTOR_MODE element mode.
16308	(vec_duplicate_p): Likewise.
16309
16310	PR middle-end/83694
16311	* cfgexpand.c (expand_debug_expr): Punt if mode1 is VOIDmode
16312	and bitsize might be greater than MAX_BITSIZE_MODE_ANY_INT.
16313
163142018-01-05  Jakub Jelinek  <jakub@redhat.com>
16315
16316	PR target/83604
16317	* config/i386/i386-builtin.def
16318	(__builtin_ia32_vgf2p8affineinvqb_v64qi,
16319	__builtin_ia32_vgf2p8affineqb_v64qi, __builtin_ia32_vgf2p8mulb_v64qi):
16320	Require also OPTION_MASK_ISA_AVX512F in addition to
16321	OPTION_MASK_ISA_GFNI.
16322	(__builtin_ia32_vgf2p8affineinvqb_v16qi_mask,
16323	__builtin_ia32_vgf2p8affineqb_v16qi_mask): Require
16324	OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_SSE in addition
16325	to OPTION_MASK_ISA_GFNI.
16326	(__builtin_ia32_vgf2p8mulb_v32qi_mask): Require
16327	OPTION_MASK_ISA_AVX512VL in addition to OPTION_MASK_ISA_GFNI and
16328	OPTION_MASK_ISA_AVX512BW.
16329	(__builtin_ia32_vgf2p8mulb_v16qi_mask): Require
16330	OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_AVX512BW in
16331	addition to OPTION_MASK_ISA_GFNI.
16332	(__builtin_ia32_vgf2p8affineinvqb_v16qi,
16333	__builtin_ia32_vgf2p8affineqb_v16qi, __builtin_ia32_vgf2p8mulb_v16qi):
16334	Require OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_SSE in addition
16335	to OPTION_MASK_ISA_GFNI.
16336	* config/i386/i386.c (def_builtin): Change to builtin isa/isa2 being
16337	a requirement for all ISAs rather than any of them with a few
16338	exceptions.
16339	(ix86_add_new_builtins): Clear OPTION_MASK_ISA_64BIT from isa before
16340	processing.
16341	(ix86_expand_builtin): Require all ISAs from builtin's isa and isa2
16342	bitmasks to be enabled with 3 exceptions, instead of requiring any
16343	enabled ISA with lots of exceptions.
16344	* config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
16345	vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
16346	Change avx512bw in isa attribute to avx512f.
16347	* config/i386/sgxintrin.h: Add license boilerplate.
16348	* config/i386/vaesintrin.h: Likewise.  Fix macro spelling __AVX512F
16349	to __AVX512F__ and __AVX512VL to __AVX512VL__.
16350	(_mm256_aesdec_epi128, _mm256_aesdeclast_epi128, _mm256_aesenc_epi128,
16351	_mm256_aesenclast_epi128): Enable temporarily avx if __AVX__ is not
16352	defined.
16353	* config/i386/gfniintrin.h (_mm_gf2p8mul_epi8,
16354	_mm_gf2p8affineinv_epi64_epi8, _mm_gf2p8affine_epi64_epi8): Enable
16355	temporarily sse2 rather than sse if not enabled already.
16356
16357	PR target/83604
16358	* config/i386/sse.md (VI248_VLBW): Rename to ...
16359	(VI248_AVX512VL): ... this.  Don't guard V32HI with TARGET_AVX512BW.
16360	(vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>,
16361	vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz,
16362	vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask,
16363	vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): Use VI248_AVX512VL
16364	mode iterator instead of VI248_VLBW.
16365
163662018-01-05  Jan Hubicka  <hubicka@ucw.cz>
16367
16368	* ipa-fnsummary.c (record_modified_bb_info): Add OP.
16369	(record_modified): Skip clobbers; add debug output.
16370	(param_change_prob): Use sreal frequencies.
16371
163722018-01-05  Richard Sandiford  <richard.sandiford@linaro.org>
16373
16374	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
16375	punt for user-aligned variables.
16376
163772018-01-05  Richard Sandiford  <richard.sandiford@linaro.org>
16378
16379	* tree-chrec.c (chrec_contains_symbols): Return true for
16380	POLY_INT_CST.
16381
163822018-01-05  Sudakshina Das  <sudi.das@arm.com>
16383
16384	PR target/82439
16385	* simplify-rtx.c (simplify_relational_operation_1): Add simplifications
16386	of (x|y) == x for BICS pattern.
16387
163882018-01-05  Jakub Jelinek  <jakub@redhat.com>
16389
16390	PR tree-optimization/83605
16391	* gimple-ssa-strength-reduction.c: Include tree-eh.h.
16392	(find_candidates_dom_walker::before_dom_children): Ignore stmts that
16393	can throw.
16394
163952018-01-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16396
16397	* config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration.
16398	* config/epiphany/rtems.h: New file.
16399
164002018-01-04  Jakub Jelinek  <jakub@redhat.com>
16401	    Uros Bizjak  <ubizjak@gmail.com>
16402
16403	PR target/83554
16404	* config/i386/i386.md (*<rotate_insn>hi3_1 splitter): Use
16405	QIreg_operand instead of register_operand predicate.
16406	* config/i386/i386.c (ix86_rop_should_change_byte_p,
16407	set_rop_modrm_reg_bits, ix86_mitigate_rop): Use -mmitigate-rop in
16408	comments instead of -fmitigate[-_]rop.
16409
164102018-01-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16411
16412	PR bootstrap/81926
16413	* cgraphunit.c (symbol_table::compile): Switch to text_section
16414	before calling assembly_start debug hook.
16415	* run-rtl-passes.c (run_rtl_passes): Likewise.
16416	Include output.h.
16417
164182018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
16419
16420	* tree-vrp.c (extract_range_from_binary_expr_1): Check
16421	range_int_cst_p rather than !symbolic_range_p before calling
16422	extract_range_from_multiplicative_op_1.
16423
164242018-01-04  Jeff Law  <law@redhat.com>
16425
16426	* tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove
16427	redundant test in assertion.
16428
164292018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
16430
16431	* doc/rtl.texi: Document machine_mode wrapper classes.
16432
164332018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
16434
16435	* fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before
16436	using tree_to_uhwi.
16437
164382018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
16439
16440	* tree-ssa-forwprop.c (is_combined_permutation_identity): Allow
16441	the VEC_PERM_EXPR fold to fail.
16442
164432018-01-04  Jakub Jelinek  <jakub@redhat.com>
16444
16445	PR debug/83585
16446	* bb-reorder.c (insert_section_boundary_note): Set has_bb_partition
16447	to switched_sections.
16448
164492018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
16450
16451	PR target/83680
16452	* config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted
16453	test for d.testing.
16454
164552018-01-04  Peter Bergner  <bergner@vnet.ibm.com>
16456
16457	PR target/83387
16458	* config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not
16459	allow arguments in FP registers if TARGET_HARD_FLOAT is false.
16460
164612018-01-04  Jakub Jelinek  <jakub@redhat.com>
16462
16463	PR debug/83666
16464	* cfgexpand.c (expand_debug_expr) <case BIT_FIELD_REF>: Punt if mode
16465	is BLKmode and bitpos not zero or mode change is needed.
16466
164672018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
16468
16469	PR target/83675
16470	* config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require
16471	TARGET_VIS2.
16472
164732018-01-04  Uros Bizjak  <ubizjak@gmail.com>
16474
16475	PR target/83628
16476	* config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT
16477	instead of MULT rtx.  Update all corresponding splitters.
16478	(*saddl_se): Ditto.
16479	(*ssub<modesuffix>): Ditto.
16480	(*ssubl_se): Ditto.
16481	(*cmp_sadd_di): Update split patterns.
16482	(*cmp_sadd_si): Ditto.
16483	(*cmp_sadd_sidi): Ditto.
16484	(*cmp_ssub_di): Ditto.
16485	(*cmp_ssub_si): Ditto.
16486	(*cmp_ssub_sidi): Ditto.
16487	* config/alpha/predicates.md (const23_operand): New predicate.
16488	* config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]:
16489	Look for ASHIFT, not MULT inner operand.
16490	(alpha_split_conditional_move): Update for *sadd<modesuffix> change.
16491
164922018-01-04  Martin Liska  <mliska@suse.cz>
16493
16494	PR gcov-profile/83669
16495	* gcov.c (output_intermediate_file): Add version to intermediate
16496	gcov file.
16497	* doc/gcov.texi: Document new field 'version' in intermediate
16498	file format. Fix location of '-k' option of gcov command.
16499
165002018-01-04  Martin Liska  <mliska@suse.cz>
16501
16502	PR ipa/82352
16503	* ipa-icf.c (sem_function::merge): Do not cross comdat boundary.
16504
165052018-01-04  Jakub Jelinek  <jakub@redhat.com>
16506
16507	* gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi.
16508
165092018-01-03  Martin Sebor  <msebor@redhat.com>
16510
16511	PR tree-optimization/83655
16512	* gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid
16513	checking calls with invalid arguments.
16514
165152018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16516
16517	* tree-vect-stmts.c (vect_get_store_rhs): New function.
16518	(vectorizable_mask_load_store): Delete.
16519	(vectorizable_call): Return false for masked loads and stores.
16520	(vectorizable_store): Handle IFN_MASK_STORE.  Use vect_get_store_rhs
16521	instead of gimple_assign_rhs1.
16522	(vectorizable_load): Handle IFN_MASK_LOAD.
16523	(vect_transform_stmt): Don't set is_store for call_vec_info_type.
16524
165252018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16526
16527	* tree-vect-stmts.c (vect_build_gather_load_calls): New function,
16528	split out from..,
16529	(vectorizable_mask_load_store): ...here.
16530	(vectorizable_load): ...and here.
16531
165322018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16533
16534	* tree-vect-stmts.c (vect_build_all_ones_mask)
16535	(vect_build_zero_merge_argument): New functions, split out from...
16536	(vectorizable_load): ...here.
16537
165382018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16539
16540	* tree-vect-stmts.c (vect_check_store_rhs): New function,
16541	split out from...
16542	(vectorizable_mask_load_store): ...here.
16543	(vectorizable_store): ...and here.
16544
165452018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16546
16547	* tree-vect-stmts.c (vect_check_load_store_mask): New function,
16548	split out from...
16549	(vectorizable_mask_load_store): ...here.
16550
165512018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16552
16553	* tree-vectorizer.h (vec_load_store_type): Moved from tree-vec-stmts.c
16554	(vect_model_store_cost): Take a vec_load_store_type instead of a
16555	vect_def_type.
16556	* tree-vect-stmts.c (vec_load_store_type): Move to tree-vectorizer.h.
16557	(vect_model_store_cost): Take a vec_load_store_type instead of a
16558	vect_def_type.
16559	(vectorizable_mask_load_store): Update accordingly.
16560	(vectorizable_store): Likewise.
16561	* tree-vect-slp.c (vect_analyze_slp_cost_1): Update accordingly.
16562
165632018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16564
16565	* tree-vect-loop.c (vect_transform_loop): Stub out scalar
16566	IFN_MASK_LOAD calls here rather than...
16567	* tree-vect-stmts.c (vectorizable_mask_load_store): ...here.
16568
165692018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16570	    Alan Hayward  <alan.hayward@arm.com>
16571	    David Sherwood  <david.sherwood@arm.com>
16572
16573	* expmed.c (extract_bit_field_1): For vector extracts,
16574	fall back to extract_bit_field_as_subreg if vec_extract
16575	isn't available.
16576
165772018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16578	    Alan Hayward  <alan.hayward@arm.com>
16579	    David Sherwood  <david.sherwood@arm.com>
16580
16581	* lra-spills.c (pseudo_reg_slot_compare): Sort slots by whether
16582	they are variable or constant sized.
16583	(assign_stack_slot_num_and_sort_pseudos): Don't reuse variable-sized
16584	slots for constant-sized data.
16585
165862018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16587	    Alan Hayward  <alan.hayward@arm.com>
16588	    David Sherwood  <david.sherwood@arm.com>
16589
16590	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): When
16591	handling COND_EXPRs with boolean comparisons, try to find a better
16592	basis for the mask type than the boolean itself.
16593
165942018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16595
16596	* doc/rtl.texi (MAX_BITSIZE_MODE_ANY_MODE): Describe how the default
16597	is calculated and how it can be overridden.
16598	* genmodes.c (max_bitsize_mode_any_mode): New variable.
16599	(create_modes): Initialize it from MAX_BITSIZE_MODE_ANY_MODE,
16600	if defined.
16601	(emit_max_int): Use it to set the output MAX_BITSIZE_MODE_ANY_MODE,
16602	if nonzero.
16603
166042018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16605	    Alan Hayward  <alan.hayward@arm.com>
16606	    David Sherwood  <david.sherwood@arm.com>
16607
16608	* config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_immediate):
16609	Remove the mode argument.
16610	(aarch64_simd_valid_immediate): Remove the mode and inverse
16611	arguments.
16612	* config/aarch64/iterators.md (bitsize): New iterator.
16613	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>, and<mode>3)
16614	(ior<mode>3): Update calls to aarch64_output_simd_mov_immediate.
16615	* config/aarch64/constraints.md (Do, Db, Dn): Update calls to
16616	aarch64_simd_valid_immediate.
16617	* config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Likewise.
16618	(aarch64_reg_or_bic_imm): Likewise.
16619	* config/aarch64/aarch64.c (simd_immediate_info): Replace mvn
16620	with an insn_type enum and msl with a modifier_type enum.
16621	Replace element_width with a scalar_mode.  Change the shift
16622	to unsigned int.  Add constructors for scalar_float_mode and
16623	scalar_int_mode elements.
16624	(aarch64_vect_float_const_representable_p): Delete.
16625	(aarch64_can_const_movi_rtx_p)
16626	(aarch64_simd_scalar_immediate_valid_for_move)
16627	(aarch64_simd_make_constant): Update call to
16628	aarch64_simd_valid_immediate.
16629	(aarch64_advsimd_valid_immediate_hs): New function.
16630	(aarch64_advsimd_valid_immediate): Likewise.
16631	(aarch64_simd_valid_immediate): Remove mode and inverse
16632	arguments.  Rewrite to use the above.  Use const_vec_duplicate_p
16633	to detect duplicated constants and use aarch64_float_const_zero_rtx_p
16634	and aarch64_float_const_representable_p on the result.
16635	(aarch64_output_simd_mov_immediate): Remove mode argument.
16636	Update call to aarch64_simd_valid_immediate and use of
16637	simd_immediate_info.
16638	(aarch64_output_scalar_simd_mov_immediate): Update call
16639	accordingly.
16640
166412018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16642	    Alan Hayward  <alan.hayward@arm.com>
16643	    David Sherwood  <david.sherwood@arm.com>
16644
16645	* machmode.h (mode_precision): Prefix with CONST_MODE_PRECISION.
16646	(mode_nunits): Likewise CONST_MODE_NUNITS.
16647	* machmode.def (ADJUST_NUNITS): Document.
16648	* genmodes.c (mode_data::need_nunits_adj): New field.
16649	(blank_mode): Update accordingly.
16650	(adj_nunits): New variable.
16651	(print_maybe_const_decl): Replace CATEGORY with a NEEDS_ADJ
16652	parameter.
16653	(emit_mode_size_inline): Set need_bytesize_adj for all modes
16654	listed in adj_nunits.
16655	(emit_mode_nunits_inline): Set need_nunits_adj for all modes
16656	listed in adj_nunits.  Don't emit case statements for such modes.
16657	(emit_insn_modes_h): Emit definitions of CONST_MODE_NUNITS
16658	and CONST_MODE_PRECISION.  Make CONST_MODE_SIZE expand to
16659	nothing if adj_nunits is nonnull.
16660	(emit_mode_precision, emit_mode_nunits): Use print_maybe_const_decl.
16661	(emit_mode_unit_size, emit_mode_base_align, emit_mode_ibit)
16662	(emit_mode_fbit): Update use of print_maybe_const_decl.
16663	(emit_move_size): Likewise.  Treat the array as non-const
16664	if adj_nunits.
16665	(emit_mode_adjustments): Handle adj_nunits.
16666
166672018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16668
16669	* machmode.def (VECTOR_MODES_WITH_PREFIX): Document.
16670	* genmodes.c (VECTOR_MODES_WITH_PREFIX): New macro.
16671	(VECTOR_MODES): Use it.
16672	(make_vector_modes): Take the prefix as an argument.
16673
166742018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16675	    Alan Hayward  <alan.hayward@arm.com>
16676	    David Sherwood  <david.sherwood@arm.com>
16677
16678	* mode-classes.def (MODE_VECTOR_BOOL): New mode class.
16679	* machmode.h (INTEGRAL_MODE_P, VECTOR_MODE_P): Return true
16680	for MODE_VECTOR_BOOL.
16681	* machmode.def (VECTOR_BOOL_MODE): Document.
16682	* genmodes.c (VECTOR_BOOL_MODE): New macro.
16683	(make_vector_bool_mode): New function.
16684	(complete_mode, emit_mode_wider, emit_mode_adjustments): Handle
16685	MODE_VECTOR_BOOL.
16686	* lto-streamer-in.c (lto_input_mode_table): Likewise.
16687	* rtx-vector-builder.c (rtx_vector_builder::find_cached_value):
16688	Likewise.
16689	* stor-layout.c (int_mode_for_mode): Likewise.
16690	* tree.c (build_vector_type_for_mode): Likewise.
16691	* varasm.c (output_constant_pool_2): Likewise.
16692	* emit-rtl.c (init_emit_once): Make sure that CONST1_RTX (BImode) and
16693	CONSTM1_RTX (BImode) are the same thing.  Initialize const_tiny_rtx
16694	for MODE_VECTOR_BOOL.
16695	* expr.c (expand_expr_real_1): Use VECTOR_MODE_P instead of a list
16696	of mode class checks.
16697	* tree-vect-generic.c (expand_vector_operation): Use VECTOR_MODE_P
16698	instead of a list of mode class checks.
16699	(expand_vector_scalar_condition): Likewise.
16700	(type_for_widest_vector_mode): Handle BImode as an inner mode.
16701
167022018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16703	    Alan Hayward  <alan.hayward@arm.com>
16704	    David Sherwood  <david.sherwood@arm.com>
16705
16706	* machmode.h (mode_size): Change from unsigned short to
16707	poly_uint16_pod.
16708	(mode_to_bytes): Return a poly_uint16 rather than an unsigned short.
16709	(GET_MODE_SIZE): Return a constant if ONLY_FIXED_SIZE_MODES,
16710	or if measurement_type is not polynomial.
16711	(fixed_size_mode::includes_p): Check for constant-sized modes.
16712	* genmodes.c (emit_mode_size_inline): Make mode_size_inline
16713	return a poly_uint16 rather than an unsigned short.
16714	(emit_mode_size): Change the type of mode_size from unsigned short
16715	to poly_uint16_pod.  Use ZERO_COEFFS for the initializer.
16716	(emit_mode_adjustments): Cope with polynomial vector sizes.
16717	* lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
16718	for GET_MODE_SIZE.
16719	* lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
16720	for GET_MODE_SIZE.
16721	* auto-inc-dec.c (try_merge): Treat GET_MODE_SIZE as polynomial.
16722	* builtins.c (expand_ifn_atomic_compare_exchange_into_call): Likewise.
16723	* caller-save.c (setup_save_areas): Likewise.
16724	(replace_reg_with_saved_mem): Likewise.
16725	* calls.c (emit_library_call_value_1): Likewise.
16726	* combine-stack-adj.c (combine_stack_adjustments_for_block): Likewise.
16727	* combine.c (simplify_set, make_extraction, simplify_shift_const_1)
16728	(gen_lowpart_for_combine): Likewise.
16729	* convert.c (convert_to_integer_1): Likewise.
16730	* cse.c (equiv_constant, cse_insn): Likewise.
16731	* cselib.c (autoinc_split, cselib_hash_rtx): Likewise.
16732	(cselib_subst_to_values): Likewise.
16733	* dce.c (word_dce_process_block): Likewise.
16734	* df-problems.c (df_word_lr_mark_ref): Likewise.
16735	* dwarf2cfi.c (init_one_dwarf_reg_size): Likewise.
16736	* dwarf2out.c (multiple_reg_loc_descriptor, mem_loc_descriptor)
16737	(concat_loc_descriptor, concatn_loc_descriptor, loc_descriptor)
16738	(rtl_for_decl_location): Likewise.
16739	* emit-rtl.c (gen_highpart, widen_memory_access): Likewise.
16740	* expmed.c (extract_bit_field_1, extract_integral_bit_field): Likewise.
16741	* expr.c (emit_group_load_1, clear_storage_hints): Likewise.
16742	(emit_move_complex, emit_move_multi_word, emit_push_insn): Likewise.
16743	(expand_expr_real_1): Likewise.
16744	* function.c (assign_parm_setup_block_p, assign_parm_setup_block)
16745	(pad_below): Likewise.
16746	* gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise.
16747	* gimple-ssa-store-merging.c (rhs_valid_for_store_merging_p): Likewise.
16748	* ira.c (get_subreg_tracking_sizes): Likewise.
16749	* ira-build.c (ira_create_allocno_objects): Likewise.
16750	* ira-color.c (coalesced_pseudo_reg_slot_compare): Likewise.
16751	(ira_sort_regnos_for_alter_reg): Likewise.
16752	* ira-costs.c (record_operand_costs): Likewise.
16753	* lower-subreg.c (interesting_mode_p, simplify_gen_subreg_concatn)
16754	(resolve_simple_move): Likewise.
16755	* lra-constraints.c (get_reload_reg, operands_match_p): Likewise.
16756	(process_addr_reg, simplify_operand_subreg, curr_insn_transform)
16757	(lra_constraints): Likewise.
16758	(CONST_POOL_OK_P): Reject variable-sized modes.
16759	* lra-spills.c (slot, assign_mem_slot, pseudo_reg_slot_compare)
16760	(add_pseudo_to_slot, lra_spill): Likewise.
16761	* omp-low.c (omp_clause_aligned_alignment): Likewise.
16762	* optabs-query.c (get_best_extraction_insn): Likewise.
16763	* optabs-tree.c (expand_vec_cond_expr_p): Likewise.
16764	* optabs.c (expand_vec_perm_var, expand_vec_cond_expr): Likewise.
16765	(expand_mult_highpart, valid_multiword_target_p): Likewise.
16766	* recog.c (offsettable_address_addr_space_p): Likewise.
16767	* regcprop.c (maybe_mode_change): Likewise.
16768	* reginfo.c (choose_hard_reg_mode, record_subregs_of_mode): Likewise.
16769	* regrename.c (build_def_use): Likewise.
16770	* regstat.c (dump_reg_info): Likewise.
16771	* reload.c (complex_word_subreg_p, push_reload, find_dummy_reload)
16772	(find_reloads, find_reloads_subreg_address): Likewise.
16773	* reload1.c (eliminate_regs_1): Likewise.
16774	* rtlanal.c (for_each_inc_dec_find_inc_dec, rtx_cost): Likewise.
16775	* simplify-rtx.c (avoid_constant_pool_reference): Likewise.
16776	(simplify_binary_operation_1, simplify_subreg): Likewise.
16777	* targhooks.c (default_function_arg_padding): Likewise.
16778	(default_hard_regno_nregs, default_class_max_nregs): Likewise.
16779	* tree-cfg.c (verify_gimple_assign_binary): Likewise.
16780	(verify_gimple_assign_ternary): Likewise.
16781	* tree-inline.c (estimate_move_cost): Likewise.
16782	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
16783	* tree-ssa-loop-ivopts.c (add_autoinc_candidates): Likewise.
16784	(get_address_cost_ainc): Likewise.
16785	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
16786	(vect_supportable_dr_alignment): Likewise.
16787	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
16788	(vectorizable_reduction): Likewise.
16789	* tree-vect-stmts.c (vectorizable_assignment, vectorizable_shift)
16790	(vectorizable_operation, vectorizable_load): Likewise.
16791	* tree.c (build_same_sized_truth_vector_type): Likewise.
16792	* valtrack.c (cleanup_auto_inc_dec): Likewise.
16793	* var-tracking.c (emit_note_insn_var_location): Likewise.
16794	* config/arc/arc.h (ASM_OUTPUT_CASE_END): Use as_a <scalar_int_mode>.
16795	(ADDR_VEC_ALIGN): Likewise.
16796
167972018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16798	    Alan Hayward  <alan.hayward@arm.com>
16799	    David Sherwood  <david.sherwood@arm.com>
16800
16801	* machmode.h (mode_to_bits): Return a poly_uint16 rather than an
16802	unsigned short.
16803	(GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES,
16804	or if measurement_type is polynomial.
16805	* calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial.
16806	* combine.c (make_extraction): Likewise.
16807	* dse.c (find_shift_sequence): Likewise.
16808	* dwarf2out.c (mem_loc_descriptor): Likewise.
16809	* expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise.
16810	(extract_bit_field, extract_low_bits): Likewise.
16811	* expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise.
16812	(optimize_bitfield_assignment_op, expand_assignment): Likewise.
16813	(store_expr_with_bounds, store_field, expand_expr_real_1): Likewise.
16814	* fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise.
16815	* gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise.
16816	* reload.c (find_reloads): Likewise.
16817	* reload1.c (alter_reg): Likewise.
16818	* stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise.
16819	* targhooks.c (default_secondary_memory_needed_mode): Likewise.
16820	* tree-if-conv.c (predicate_mem_writes): Likewise.
16821	* tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
16822	* tree-vect-patterns.c (adjust_bool_pattern): Likewise.
16823	* tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
16824	* valtrack.c (dead_debug_insert_temp): Likewise.
16825	* varasm.c (mergeable_constant_section): Likewise.
16826	* config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a <fixed_size_mode>.
16827
168282018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16829	    Alan Hayward  <alan.hayward@arm.com>
16830	    David Sherwood  <david.sherwood@arm.com>
16831
16832	* expr.c (expand_assignment): Cope with polynomial mode sizes
16833	when assigning to a CONCAT.
16834
168352018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16836	    Alan Hayward  <alan.hayward@arm.com>
16837	    David Sherwood  <david.sherwood@arm.com>
16838
16839	* machmode.h (mode_precision): Change from unsigned short to
16840	poly_uint16_pod.
16841	(mode_to_precision): Return a poly_uint16 rather than an unsigned
16842	short.
16843	(GET_MODE_PRECISION): Return a constant if ONLY_FIXED_SIZE_MODES,
16844	or if measurement_type is not polynomial.
16845	(HWI_COMPUTABLE_MODE_P): Turn into a function.  Optimize the case
16846	in which the mode is already known to be a scalar_int_mode.
16847	* genmodes.c (emit_mode_precision): Change the type of mode_precision
16848	from unsigned short to poly_uint16_pod.  Use ZERO_COEFFS for the
16849	initializer.
16850	* lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
16851	for GET_MODE_PRECISION.
16852	* lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
16853	for GET_MODE_PRECISION.
16854	* combine.c (update_rsp_from_reg_equal): Treat GET_MODE_PRECISION
16855	as polynomial.
16856	(try_combine, find_split_point, combine_simplify_rtx): Likewise.
16857	(expand_field_assignment, make_extraction): Likewise.
16858	(make_compound_operation_int, record_dead_and_set_regs_1): Likewise.
16859	(get_last_value): Likewise.
16860	* convert.c (convert_to_integer_1): Likewise.
16861	* cse.c (cse_insn): Likewise.
16862	* expr.c (expand_expr_real_1): Likewise.
16863	* lra-constraints.c (simplify_operand_subreg): Likewise.
16864	* optabs-query.c (can_atomic_load_p): Likewise.
16865	* optabs.c (expand_atomic_load): Likewise.
16866	(expand_atomic_store): Likewise.
16867	* ree.c (combine_reaching_defs): Likewise.
16868	* rtl.h (partial_subreg_p, paradoxical_subreg_p): Likewise.
16869	* rtlanal.c (nonzero_bits1, lsb_bitfield_op_p): Likewise.
16870	* tree.h (type_has_mode_precision_p): Likewise.
16871	* ubsan.c (instrument_si_overflow): Likewise.
16872
168732018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16874	    Alan Hayward  <alan.hayward@arm.com>
16875	    David Sherwood  <david.sherwood@arm.com>
16876
16877	* tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle
16878	polynomial numbers of units.
16879	(SET_TYPE_VECTOR_SUBPARTS): Likewise.
16880	(valid_vector_subparts_p): New function.
16881	(build_vector_type): Remove temporary shim and take the number
16882	of units as a poly_uint64 rather than an int.
16883	(build_opaque_vector_type): Take the number of units as a
16884	poly_uint64 rather than an int.
16885	* tree.c (build_vector_from_ctor): Handle polynomial
16886	TYPE_VECTOR_SUBPARTS.
16887	(type_hash_canon_hash, type_cache_hasher::equal): Likewise.
16888	(uniform_vector_p, vector_type_mode, build_vector): Likewise.
16889	(build_vector_from_val): If the number of units is variable,
16890	use build_vec_duplicate_cst for constant operands and
16891	VEC_DUPLICATE_EXPR otherwise.
16892	(make_vector_type): Remove temporary is_constant ().
16893	(build_vector_type, build_opaque_vector_type): Take the number of
16894	units as a poly_uint64 rather than an int.
16895	(check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and
16896	VECTOR_CST_NELTS.
16897	* cfgexpand.c (expand_debug_expr): Likewise.
16898	* expr.c (count_type_elements, categorize_ctor_elements_1): Likewise.
16899	(store_constructor, expand_expr_real_1): Likewise.
16900	(const_scalar_mask_from_tree): Likewise.
16901	* fold-const-call.c (fold_const_reduction): Likewise.
16902	* fold-const.c (const_binop, const_unop, fold_convert_const): Likewise.
16903	(operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise.
16904	(native_encode_vector, vec_cst_ctor_to_array): Likewise.
16905	(fold_relational_const): Likewise.
16906	(native_interpret_vector): Likewise.  Change the size from an
16907	int to an unsigned int.
16908	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial
16909	TYPE_VECTOR_SUBPARTS.
16910	(gimple_fold_indirect_ref, gimple_build_vector): Likewise.
16911	(gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when
16912	duplicating a non-constant operand into a variable-length vector.
16913	* hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial
16914	TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS.
16915	* ipa-icf.c (sem_variable::equals): Likewise.
16916	* match.pd: Likewise.
16917	* omp-simd-clone.c (simd_clone_subparts): Likewise.
16918	* print-tree.c (print_node): Likewise.
16919	* stor-layout.c (layout_type): Likewise.
16920	* targhooks.c (default_builtin_vectorization_cost): Likewise.
16921	* tree-cfg.c (verify_gimple_comparison): Likewise.
16922	(verify_gimple_assign_binary): Likewise.
16923	(verify_gimple_assign_ternary): Likewise.
16924	(verify_gimple_assign_single): Likewise.
16925	* tree-pretty-print.c (dump_generic_node): Likewise.
16926	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
16927	(simplify_bitfield_ref, is_combined_permutation_identity): Likewise.
16928	* tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
16929	(vect_grouped_load_supported, vect_permute_load_chain): Likewise.
16930	(vect_shift_permute_load_chain): Likewise.
16931	* tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise.
16932	(expand_vector_condition, optimize_vector_constructor): Likewise.
16933	(lower_vec_perm, get_compute_type): Likewise.
16934	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
16935	(get_initial_defs_for_reduction, vect_transform_loop): Likewise.
16936	* tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
16937	(vect_recog_mask_conversion_pattern): Likewise.
16938	* tree-vect-slp.c (vect_supported_load_permutation_p): Likewise.
16939	(vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise.
16940	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
16941	(get_group_load_store_type, vectorizable_mask_load_store): Likewise.
16942	(vectorizable_bswap, simd_clone_subparts, vectorizable_assignment)
16943	(vectorizable_shift, vectorizable_operation, vectorizable_store)
16944	(vectorizable_load, vect_is_simple_cond, vectorizable_comparison)
16945	(supportable_widening_operation): Likewise.
16946	(supportable_narrowing_operation): Likewise.
16947	* tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts):
16948	Likewise.
16949	* varasm.c (output_constant): Likewise.
16950
169512018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16952	    Alan Hayward  <alan.hayward@arm.com>
16953	    David Sherwood  <david.sherwood@arm.com>
16954
16955	* tree-vect-data-refs.c (vect_permute_store_chain): Reorganize
16956	so that both the length == 3 and length != 3 cases set up their
16957	own permute vectors.  Add comments explaining why we know the
16958	number of elements is constant.
16959	(vect_permute_load_chain): Likewise.
16960
169612018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
16962	    Alan Hayward  <alan.hayward@arm.com>
16963	    David Sherwood  <david.sherwood@arm.com>
16964
16965	* machmode.h (mode_nunits): Change from unsigned char to
16966	poly_uint16_pod.
16967	(ONLY_FIXED_SIZE_MODES): New macro.
16968	(pod_mode::measurement_type, scalar_int_mode::measurement_type)
16969	(scalar_float_mode::measurement_type, scalar_mode::measurement_type)
16970	(complex_mode::measurement_type, fixed_size_mode::measurement_type):
16971	New typedefs.
16972	(mode_to_nunits): Return a poly_uint16 rather than an unsigned short.
16973	(GET_MODE_NUNITS): Return a constant if ONLY_FIXED_SIZE_MODES,
16974	or if measurement_type is not polynomial.
16975	* genmodes.c (ZERO_COEFFS): New macro.
16976	(emit_mode_nunits_inline): Make mode_nunits_inline return a
16977	poly_uint16.
16978	(emit_mode_nunits): Change the type of mode_nunits to poly_uint16_pod.
16979	Use ZERO_COEFFS when emitting initializers.
16980	* data-streamer.h (bp_pack_poly_value): New function.
16981	(bp_unpack_poly_value): Likewise.
16982	* lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
16983	for GET_MODE_NUNITS.
16984	* lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
16985	for GET_MODE_NUNITS.
16986	* tree.c (make_vector_type): Remove temporary shim and make
16987	the real function take the number of units as a poly_uint64
16988	rather than an int.
16989	(build_vector_type_for_mode): Handle polynomial nunits.
16990	* dwarf2out.c (loc_descriptor, add_const_value_attribute): Likewise.
16991	* emit-rtl.c (const_vec_series_p_1): Likewise.
16992	(gen_rtx_CONST_VECTOR): Likewise.
16993	* fold-const.c (test_vec_duplicate_folding): Likewise.
16994	* genrecog.c (validate_pattern): Likewise.
16995	* optabs-query.c (can_vec_perm_var_p, can_mult_highpart_p): Likewise.
16996	* optabs-tree.c (expand_vec_cond_expr_p): Likewise.
16997	* optabs.c (expand_vector_broadcast, expand_binop_directly): Likewise.
16998	(shift_amt_for_vec_perm_mask, expand_vec_perm_var): Likewise.
16999	(expand_vec_cond_expr, expand_mult_highpart): Likewise.
17000	* rtlanal.c (subreg_get_info): Likewise.
17001	* tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
17002	(vect_grouped_load_supported): Likewise.
17003	* tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
17004	* tree-vect-loop.c (have_whole_vector_shift): Likewise.
17005	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
17006	(simplify_const_unary_operation, simplify_binary_operation_1)
17007	(simplify_const_binary_operation, simplify_ternary_operation)
17008	(test_vector_ops_duplicate, test_vector_ops): Likewise.
17009	(simplify_immed_subreg): Use GET_MODE_NUNITS on a fixed_size_mode
17010	instead of CONST_VECTOR_NUNITS.
17011	* varasm.c (output_constant_pool_2): Likewise.
17012	* rtx-vector-builder.c (rtx_vector_builder::build): Only include the
17013	explicit-encoded elements in the XVEC for variable-length vectors.
17014
170152018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17016
17017	* lra-constraints.c (curr_insn_transform): Use partial_subreg_p.
17018
170192018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17020	    Alan Hayward  <alan.hayward@arm.com>
17021	    David Sherwood  <david.sherwood@arm.com>
17022
17023	* coretypes.h (fixed_size_mode): Declare.
17024	(fixed_size_mode_pod): New typedef.
17025	* builtins.h (target_builtins::x_apply_args_mode)
17026	(target_builtins::x_apply_result_mode): Change type to
17027	fixed_size_mode_pod.
17028	* builtins.c (apply_args_size, apply_result_size, result_vector)
17029	(expand_builtin_apply_args_1, expand_builtin_apply)
17030	(expand_builtin_return): Update accordingly.
17031
170322018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17033
17034	* cse.c (hash_rtx_cb): Hash only the encoded elements.
17035	* cselib.c (cselib_hash_rtx): Likewise.
17036	* expmed.c (make_tree): Build VECTOR_CSTs directly from the
17037	CONST_VECTOR encoding.
17038
170392018-01-03  Jakub Jelinek  <jakub@redhat.com>
17040	    Jeff Law  <law@redhat.com>
17041
17042	PR target/83641
17043	* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): For
17044	noreturn probe, use gen_pop instead of ix86_emit_restore_reg_using_pop,
17045	only set RTX_FRAME_RELATED_P on both the push and pop if cfa_reg is sp
17046	and add REG_CFA_ADJUST_CFA notes in that case to both insns.
17047
17048	PR target/83641
17049	* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Do not
17050	explicitly probe *sp in a noreturn function if there were any callee
17051	register saves or frame pointer is needed.
17052
170532018-01-03  Jakub Jelinek  <jakub@redhat.com>
17054
17055	PR debug/83621
17056	* cfgexpand.c (expand_debug_expr): Return NULL if mode is
17057	BLKmode for ternary, binary or unary expressions.
17058
17059	PR debug/83645
17060	* var-tracking.c (delete_vta_debug_insn): New inline function.
17061	(delete_vta_debug_insns): Add USE_CFG argument, if true, walk just
17062	insns from get_insns () to NULL instead of each bb separately.
17063	Use delete_vta_debug_insn.  No longer static.
17064	(vt_debug_insns_local, variable_tracking_main_1): Adjust
17065	delete_vta_debug_insns callers.
17066	* rtl.h (delete_vta_debug_insns): Declare.
17067	* final.c (rest_of_handle_final): Call delete_vta_debug_insns
17068	instead of variable_tracking_main.
17069
170702018-01-03  Martin Sebor  <msebor@redhat.com>
17071
17072	PR tree-optimization/83603
17073	* calls.c (maybe_warn_nonstring_arg): Avoid accessing function
17074	arguments past the endof the argument list in functions declared
17075	without a prototype.
17076	* gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call):
17077	Avoid checking when arguments are null.
17078
170792018-01-03  Martin Sebor  <msebor@redhat.com>
17080
17081	PR c/83559
17082	* doc/extend.texi (attribute const): Fix a typo.
17083	* ipa-pure-const.c ((warn_function_const, warn_function_pure): Avoid
17084	issuing -Wsuggest-attribute for void functions.
17085
170862018-01-03  Martin Sebor  <msebor@redhat.com>
17087
17088	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use
17089	offset_int::from instead of wide_int::to_shwi.
17090	(maybe_diag_overlap): Remove assertion.
17091	Use HOST_WIDE_INT_PRINT_DEC instead of %lli.
17092	* gimple-ssa-sprintf.c (format_directive): Same.
17093	(parse_directive): Same.
17094	(sprintf_dom_walker::compute_format_length): Same.
17095	(try_substitute_return_value): Same.
17096
170972018-01-03  Jeff Law  <law@redhat.com>
17098
17099	PR middle-end/83654
17100	* explow.c (anti_adjust_stack_and_probe_stack_clash): Test a
17101	non-constant residual for zero at runtime and avoid probing in
17102	that case.  Reorganize code for trailing problem to mirror handling
17103	of the residual.
17104
171052018-01-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
17106
17107	PR tree-optimization/83501
17108	* tree-ssa-strlen.c (get_string_cst): New.
17109	(handle_char_store): Call get_string_cst.
17110
171112018-01-03  Martin Liska  <mliska@suse.cz>
17112
17113	PR tree-optimization/83593
17114	* tree-ssa-strlen.c: Include tree-cfg.h.
17115	(strlen_check_and_optimize_stmt): Add new argument cleanup_eh.
17116	(strlen_dom_walker): Add new member variable m_cleanup_cfg.
17117	(strlen_dom_walker::strlen_dom_walker): Initialize m_cleanup_cfg
17118	to false.
17119	(strlen_dom_walker::before_dom_children): Call
17120	gimple_purge_dead_eh_edges. Dump tranformation with details
17121	dump flags.
17122	(strlen_dom_walker::before_dom_children): Update call by adding
17123	new argument cleanup_eh.
17124	(pass_strlen::execute): Return TODO_cleanup_cfg if needed.
17125
171262018-01-03  Martin Liska  <mliska@suse.cz>
17127
17128	PR ipa/83549
17129	* cif-code.def (VARIADIC_THUNK): New enum value.
17130	* ipa-fnsummary.c (compute_fn_summary): Do not inline variadic
17131	thunks.
17132
171332018-01-03  Jan Beulich  <jbeulich@suse.com>
17134
17135	* sse.md (mov<mode>_internal): Tighten condition for when to use
17136	vmovdqu<ssescalarsize> for TI and OI modes.
17137
171382018-01-03  Jakub Jelinek  <jakub@redhat.com>
17139
17140	Update copyright years.
17141
171422018-01-03  Martin Liska  <mliska@suse.cz>
17143
17144	PR ipa/83594
17145	* ipa-visibility.c (function_and_variable_visibility): Skip
17146	functions with noipa attribure.
17147
171482018-01-03  Jakub Jelinek  <jakub@redhat.com>
17149
17150	* gcc.c (process_command): Update copyright notice dates.
17151	* gcov-dump.c (print_version): Ditto.
17152	* gcov.c (print_version): Ditto.
17153	* gcov-tool.c (print_version): Ditto.
17154	* gengtype.c (create_file): Ditto.
17155	* doc/cpp.texi: Bump @copying's copyright year.
17156	* doc/cppinternals.texi: Ditto.
17157	* doc/gcc.texi: Ditto.
17158	* doc/gccint.texi: Ditto.
17159	* doc/gcov.texi: Ditto.
17160	* doc/install.texi: Ditto.
17161	* doc/invoke.texi: Ditto.
17162
171632018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17164
17165	* vector-builder.h (vector_builder::m_full_nelts): Change from
17166	unsigned int to poly_uint64.
17167	(vector_builder::full_nelts): Update prototype accordingly.
17168	(vector_builder::new_vector): Likewise.
17169	(vector_builder::encoded_full_vector_p): Handle polynomial full_nelts.
17170	(vector_builder::operator ==): Likewise.
17171	(vector_builder::finalize): Likewise.
17172	* int-vector-builder.h (int_vector_builder::int_vector_builder):
17173	Take the number of elements as a poly_uint64 rather than an
17174	unsigned int.
17175	* vec-perm-indices.h (vec_perm_indices::m_nelts_per_input): Change
17176	from unsigned int to poly_uint64.
17177	(vec_perm_indices::vec_perm_indices): Update prototype accordingly.
17178	(vec_perm_indices::new_vector): Likewise.
17179	(vec_perm_indices::length): Likewise.
17180	(vec_perm_indices::nelts_per_input): Likewise.
17181	(vec_perm_indices::input_nelts): Likewise.
17182	* vec-perm-indices.c (vec_perm_indices::new_vector): Take the
17183	number of elements per input as a poly_uint64 rather than an
17184	unsigned int.  Use the original encoding for variable-length
17185	vectors, rather than clamping each individual element.
17186	For the second and subsequent elements in each pattern,
17187	clamp the step and base before clamping their sum.
17188	(vec_perm_indices::series_p): Handle polynomial element counts.
17189	(vec_perm_indices::all_in_range_p): Likewise.
17190	(vec_perm_indices_to_tree): Likewise.
17191	(vec_perm_indices_to_rtx): Likewise.
17192	* tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
17193	* tree-vector-builder.c (tree_vector_builder::new_unary_operation)
17194	(tree_vector_builder::new_binary_operation): Handle polynomial
17195	element counts.  Return false if we need to know the number
17196	of elements at compile time.
17197	* fold-const.c (fold_vec_perm): Punt if the number of elements
17198	isn't known at compile time.
17199
172002018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17201
17202	* vec-perm-indices.h (vec_perm_builder): Change element type
17203	from HOST_WIDE_INT to poly_int64.
17204	(vec_perm_indices::element_type): Update accordingly.
17205	(vec_perm_indices::clamp): Handle polynomial element_types.
17206	* vec-perm-indices.c (vec_perm_indices::series_p): Likewise.
17207	(vec_perm_indices::all_in_range_p): Likewise.
17208	(tree_to_vec_perm_builder): Check for poly_int64 trees rather
17209	than shwi trees.
17210	* vector-builder.h (vector_builder::stepped_sequence_p): Handle
17211	polynomial vec_perm_indices element types.
17212	* int-vector-builder.h (int_vector_builder::equal_p): Likewise.
17213	* fold-const.c (fold_vec_perm): Likewise.
17214	* optabs.c (shift_amt_for_vec_perm_mask): Likewise.
17215	* tree-vect-generic.c (lower_vec_perm): Likewise.
17216	* tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
17217	* config/aarch64/aarch64.c (aarch64_evpc_tbl): Cast d->perm
17218	element type to HOST_WIDE_INT.
17219
172202018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17221	    Alan Hayward  <alan.hayward@arm.com>
17222	    David Sherwood  <david.sherwood@arm.com>
17223
17224	* alias.c (addr_side_effect_eval): Take the size as a poly_int64
17225	rather than an int.  Use plus_constant.
17226	(memrefs_conflict_p): Take the sizes as poly_int64s rather than ints.
17227	Take the offset "c" as a poly_int64 rather than a HOST_WIDE_INT.
17228
172292018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17230	    Alan Hayward  <alan.hayward@arm.com>
17231	    David Sherwood  <david.sherwood@arm.com>
17232
17233	* calls.c (emit_call_1, expand_call): Change struct_value_size from
17234	a HOST_WIDE_INT to a poly_int64.
17235
172362018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17237	    Alan Hayward  <alan.hayward@arm.com>
17238	    David Sherwood  <david.sherwood@arm.com>
17239
17240	* calls.c (load_register_parameters): Cope with polynomial
17241	mode sizes.  Require a constant size for BLKmode parameters
17242	that aren't described by a PARALLEL.  If BLOCK_REG_PADDING
17243	forces a parameter to be padded at the lsb end in order to
17244	fill a complete number of words, require the parameter size
17245	to be ordered wrt UNITS_PER_WORD.
17246
172472018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17248	    Alan Hayward  <alan.hayward@arm.com>
17249	    David Sherwood  <david.sherwood@arm.com>
17250
17251	* reload1.c (spill_stack_slot_width): Change element type
17252	from unsigned int to poly_uint64_pod.
17253	(alter_reg): Treat mode sizes as polynomial.
17254
172552018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17256	    Alan Hayward  <alan.hayward@arm.com>
17257	    David Sherwood  <david.sherwood@arm.com>
17258
17259	* reload.c (complex_word_subreg_p): New function.
17260	(reload_inner_reg_of_subreg, push_reload): Use it.
17261
172622018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17263	    Alan Hayward  <alan.hayward@arm.com>
17264	    David Sherwood  <david.sherwood@arm.com>
17265
17266	* lra-constraints.c (process_alt_operands): Reject matched
17267	operands whose sizes aren't ordered.
17268	(match_reload): Refer to this check here.
17269
172702018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17271	    Alan Hayward  <alan.hayward@arm.com>
17272	    David Sherwood  <david.sherwood@arm.com>
17273
17274	* builtins.c (expand_ifn_atomic_compare_exchange_into_call): Assert
17275	that the mode size is in the set {1, 2, 4, 8, 16}.
17276
172772018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17278	    Alan Hayward  <alan.hayward@arm.com>
17279	    David Sherwood  <david.sherwood@arm.com>
17280
17281	* var-tracking.c (adjust_mems): Treat mode sizes as polynomial.
17282	Use plus_constant instead of gen_rtx_PLUS.
17283
172842018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17285	    Alan Hayward  <alan.hayward@arm.com>
17286	    David Sherwood  <david.sherwood@arm.com>
17287
17288	* config/cr16/cr16-protos.h (cr16_push_rounding): Declare.
17289	* config/cr16/cr16.h (PUSH_ROUNDING): Move implementation to...
17290	* config/cr16/cr16.c (cr16_push_rounding): ...this new function.
17291	* config/h8300/h8300-protos.h (h8300_push_rounding): Declare.
17292	* config/h8300/h8300.h (PUSH_ROUNDING): Move implementation to...
17293	* config/h8300/h8300.c (h8300_push_rounding): ...this new function.
17294	* config/i386/i386-protos.h (ix86_push_rounding): Declare.
17295	* config/i386/i386.h (PUSH_ROUNDING): Move implementation to...
17296	* config/i386/i386.c (ix86_push_rounding): ...this new function.
17297	* config/m32c/m32c-protos.h (m32c_push_rounding): Take and return
17298	a poly_int64.
17299	* config/m32c/m32c.c (m32c_push_rounding): Likewise.
17300	* config/m68k/m68k-protos.h (m68k_push_rounding): Declare.
17301	* config/m68k/m68k.h (PUSH_ROUNDING): Move implementation to...
17302	* config/m68k/m68k.c (m68k_push_rounding): ...this new function.
17303	* config/pdp11/pdp11-protos.h (pdp11_push_rounding): Declare.
17304	* config/pdp11/pdp11.h (PUSH_ROUNDING): Move implementation to...
17305	* config/pdp11/pdp11.c (pdp11_push_rounding): ...this new function.
17306	* config/stormy16/stormy16-protos.h (xstormy16_push_rounding): Declare.
17307	* config/stormy16/stormy16.h (PUSH_ROUNDING): Move implementation to...
17308	* config/stormy16/stormy16.c (xstormy16_push_rounding): ...this new
17309	function.
17310	* expr.c (emit_move_resolve_push): Treat the input and result
17311	of PUSH_ROUNDING as a poly_int64.
17312	(emit_move_complex_push, emit_single_push_insn_1): Likewise.
17313	(emit_push_insn): Likewise.
17314	* lra-eliminations.c (mark_not_eliminable): Likewise.
17315	* recog.c (push_operand): Likewise.
17316	* reload1.c (elimination_effects): Likewise.
17317	* rtlanal.c (nonzero_bits1): Likewise.
17318	* calls.c (store_one_arg): Likewise.  Require the padding to be
17319	known at compile time.
17320
173212018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17322	    Alan Hayward  <alan.hayward@arm.com>
17323	    David Sherwood  <david.sherwood@arm.com>
17324
17325	* expr.c (emit_single_push_insn_1): Treat mode sizes as polynomial.
17326	Use plus_constant instead of gen_rtx_PLUS.
17327
173282018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17329	    Alan Hayward  <alan.hayward@arm.com>
17330	    David Sherwood  <david.sherwood@arm.com>
17331
17332	* auto-inc-dec.c (set_inc_state): Take the mode size as a poly_int64
17333	rather than an int.
17334
173352018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17336	    Alan Hayward  <alan.hayward@arm.com>
17337	    David Sherwood  <david.sherwood@arm.com>
17338
17339	* expr.c (expand_expr_real_1): Use tree_to_poly_uint64
17340	instead of int_size_in_bytes when handling VIEW_CONVERT_EXPRs
17341	via stack temporaries.  Treat the mode size as polynomial too.
17342
173432018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17344	    Alan Hayward  <alan.hayward@arm.com>
17345	    David Sherwood  <david.sherwood@arm.com>
17346
17347	* expr.c (expand_expr_real_2): When handling conversions involving
17348	unions, apply tree_to_poly_uint64 to the TYPE_SIZE rather than
17349	multiplying int_size_in_bytes by BITS_PER_UNIT.  Treat GET_MODE_BISIZE
17350	as a poly_uint64 too.
17351
173522018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17353	    Alan Hayward  <alan.hayward@arm.com>
17354	    David Sherwood  <david.sherwood@arm.com>
17355
17356	* rtlanal.c (subreg_get_info): Handle polynomial mode sizes.
17357
173582018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17359	    Alan Hayward  <alan.hayward@arm.com>
17360	    David Sherwood  <david.sherwood@arm.com>
17361
17362	* combine.c (can_change_dest_mode): Handle polynomial
17363	REGMODE_NATURAL_SIZE.
17364	* expmed.c (store_bit_field_1): Likewise.
17365	* expr.c (store_constructor): Likewise.
17366	* emit-rtl.c (validate_subreg): Operate on polynomial mode sizes
17367	and polynomial REGMODE_NATURAL_SIZE.
17368	(gen_lowpart_common): Likewise.
17369	* reginfo.c (record_subregs_of_mode): Likewise.
17370	* rtlanal.c (read_modify_subreg_p): Likewise.
17371
173722018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17373	    Alan Hayward  <alan.hayward@arm.com>
17374	    David Sherwood  <david.sherwood@arm.com>
17375
17376	* internal-fn.c (expand_vector_ubsan_overflow): Handle polynomial
17377	numbers of elements.
17378
173792018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17380	    Alan Hayward  <alan.hayward@arm.com>
17381	    David Sherwood  <david.sherwood@arm.com>
17382
17383	* match.pd: Cope with polynomial numbers of vector elements.
17384
173852018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17386	    Alan Hayward  <alan.hayward@arm.com>
17387	    David Sherwood  <david.sherwood@arm.com>
17388
17389	* fold-const.c (fold_indirect_ref_1): Handle polynomial offsets
17390	in a POINTER_PLUS_EXPR.
17391
173922018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17393	    Alan Hayward  <alan.hayward@arm.com>
17394	    David Sherwood  <david.sherwood@arm.com>
17395
17396	* omp-simd-clone.c (simd_clone_subparts): New function.
17397	(simd_clone_init_simd_arrays): Use it instead of TYPE_VECTOR_SUBPARTS.
17398	(ipa_simd_modify_function_body): Likewise.
17399
174002018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17401	    Alan Hayward  <alan.hayward@arm.com>
17402	    David Sherwood  <david.sherwood@arm.com>
17403
17404	* tree-vect-generic.c (nunits_for_known_piecewise_op): New function.
17405	(expand_vector_piecewise): Use it instead of TYPE_VECTOR_SUBPARTS.
17406	(expand_vector_addition, add_rshift, expand_vector_divmod): Likewise.
17407	(expand_vector_condition, vector_element): Likewise.
17408	(subparts_gt): New function.
17409	(get_compute_type): Use subparts_gt.
17410	(count_type_subparts): Delete.
17411	(expand_vector_operations_1): Use subparts_gt instead of
17412	count_type_subparts.
17413
174142018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17415	    Alan Hayward  <alan.hayward@arm.com>
17416	    David Sherwood  <david.sherwood@arm.com>
17417
17418	* tree-vect-data-refs.c (vect_no_alias_p): Replace with...
17419	(vect_compile_time_alias): ...this new function.  Do the calculation
17420	on poly_ints rather than trees.
17421	(vect_prune_runtime_alias_test_list): Update call accordingly.
17422
174232018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17424	    Alan Hayward  <alan.hayward@arm.com>
17425	    David Sherwood  <david.sherwood@arm.com>
17426
17427	* tree-vect-slp.c (vect_build_slp_tree_1): Handle polynomial
17428	numbers of units.
17429	(vect_schedule_slp_instance): Likewise.
17430
174312018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17432	    Alan Hayward  <alan.hayward@arm.com>
17433	    David Sherwood  <david.sherwood@arm.com>
17434
17435	* tree-vect-slp.c (vect_get_and_check_slp_defs): Reject
17436	constant and extern definitions for variable-length vectors.
17437	(vect_get_constant_vectors): Note that the number of units
17438	is known to be constant.
17439
174402018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17441	    Alan Hayward  <alan.hayward@arm.com>
17442	    David Sherwood  <david.sherwood@arm.com>
17443
17444	* tree-vect-stmts.c (vectorizable_conversion): Treat the number
17445	of units as polynomial.  Choose between WIDE and NARROW based
17446	on multiple_p.
17447
174482018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17449	    Alan Hayward  <alan.hayward@arm.com>
17450	    David Sherwood  <david.sherwood@arm.com>
17451
17452	* tree-vect-stmts.c (simd_clone_subparts): New function.
17453	(vectorizable_simd_clone_call): Use it instead of TYPE_VECTOR_SUBPARTS.
17454
174552018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17456	    Alan Hayward  <alan.hayward@arm.com>
17457	    David Sherwood  <david.sherwood@arm.com>
17458
17459	* tree-vect-stmts.c (vectorizable_call): Treat the number of
17460	vectors as polynomial.  Use build_index_vector for
17461	IFN_GOMP_SIMD_LANE.
17462
174632018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17464	    Alan Hayward  <alan.hayward@arm.com>
17465	    David Sherwood  <david.sherwood@arm.com>
17466
17467	* tree-vect-stmts.c (get_load_store_type): Treat the number of
17468	units as polynomial.  Reject VMAT_ELEMENTWISE and VMAT_STRIDED_SLP
17469	for variable-length vectors.
17470	(vectorizable_mask_load_store): Treat the number of units as
17471	polynomial, asserting that it is constant if the condition has
17472	already been enforced.
17473	(vectorizable_store, vectorizable_load): Likewise.
17474
174752018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17476	    Alan Hayward  <alan.hayward@arm.com>
17477	    David Sherwood  <david.sherwood@arm.com>
17478
17479	* tree-vect-loop.c (vectorizable_live_operation): Treat the number
17480	of units as polynomial.  Punt if we can't tell at compile time
17481	which vector contains the final result.
17482
174832018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17484	    Alan Hayward  <alan.hayward@arm.com>
17485	    David Sherwood  <david.sherwood@arm.com>
17486
17487	* tree-vect-loop.c (vectorizable_induction): Treat the number
17488	of units as polynomial.  Punt on SLP inductions.  Use an integer
17489	VEC_SERIES_EXPR for variable-length integer reductions.  Use a
17490	cast of such a series for variable-length floating-point
17491	reductions.
17492
174932018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17494	    Alan Hayward  <alan.hayward@arm.com>
17495	    David Sherwood  <david.sherwood@arm.com>
17496
17497	* tree.h (build_index_vector): Declare.
17498	* tree.c (build_index_vector): New function.
17499	* tree-vect-loop.c (get_initial_defs_for_reduction): Treat the number
17500	of units as polynomial, forcibly converting it to a constant if
17501	vectorizable_reduction has already enforced the condition.
17502	(vect_create_epilog_for_reduction): Likewise.  Use build_index_vector
17503	to create a {1,2,3,...} vector.
17504	(vectorizable_reduction): Treat the number of units as polynomial.
17505	Choose vectype_in based on the largest scalar element size rather
17506	than the smallest number of units.  Enforce the restrictions
17507	relied on above.
17508
175092018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17510	    Alan Hayward  <alan.hayward@arm.com>
17511	    David Sherwood  <david.sherwood@arm.com>
17512
17513	* tree-vect-data-refs.c (vector_alignment_reachable_p): Treat the
17514	number of units as polynomial.
17515
175162018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17517	    Alan Hayward  <alan.hayward@arm.com>
17518	    David Sherwood  <david.sherwood@arm.com>
17519
17520	* target.h (vector_sizes, auto_vector_sizes): New typedefs.
17521	* target.def (autovectorize_vector_sizes): Return the vector sizes
17522	by pointer, using vector_sizes rather than a bitmask.
17523	* targhooks.h (default_autovectorize_vector_sizes): Update accordingly.
17524	* targhooks.c (default_autovectorize_vector_sizes): Likewise.
17525	* config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes):
17526	Likewise.
17527	* config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
17528	* config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
17529	* config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise.
17530	* config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
17531	* omp-general.c (omp_max_vf): Likewise.
17532	* omp-low.c (omp_clause_aligned_alignment): Likewise.
17533	* optabs-query.c (can_vec_mask_load_store_p): Likewise.
17534	* tree-vect-loop.c (vect_analyze_loop): Likewise.
17535	* tree-vect-slp.c (vect_slp_bb): Likewise.
17536	* doc/tm.texi: Regenerate.
17537	* tree-vectorizer.h (current_vector_size): Change from an unsigned int
17538	to a poly_uint64.
17539	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Take
17540	the vector size as a poly_uint64 rather than an unsigned int.
17541	(current_vector_size): Change from an unsigned int to a poly_uint64.
17542	(get_vectype_for_scalar_type): Update accordingly.
17543	* tree.h (build_truth_vector_type): Take the size and number of
17544	units as a poly_uint64 rather than an unsigned int.
17545	(build_vector_type): Add a temporary overload that takes
17546	the number of units as a poly_uint64 rather than an unsigned int.
17547	* tree.c (make_vector_type): Likewise.
17548	(build_truth_vector_type): Take the number of units as a poly_uint64
17549	rather than an unsigned int.
17550
175512018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17552	    Alan Hayward  <alan.hayward@arm.com>
17553	    David Sherwood  <david.sherwood@arm.com>
17554
17555	* target.def (get_mask_mode): Take the number of units and length
17556	as poly_uint64s rather than unsigned ints.
17557	* targhooks.h (default_get_mask_mode): Update accordingly.
17558	* targhooks.c (default_get_mask_mode): Likewise.
17559	* config/i386/i386.c (ix86_get_mask_mode): Likewise.
17560	* doc/tm.texi: Regenerate.
17561
175622018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17563	    Alan Hayward  <alan.hayward@arm.com>
17564	    David Sherwood  <david.sherwood@arm.com>
17565
17566	* omp-general.h (omp_max_vf): Return a poly_uint64 instead of an int.
17567	* omp-general.c (omp_max_vf): Likewise.
17568	* omp-expand.c (omp_adjust_chunk_size): Update call to omp_max_vf.
17569	(expand_omp_simd): Handle polynomial safelen.
17570	* omp-low.c (omplow_simd_context): Add a default constructor.
17571	(omplow_simd_context::max_vf): Change from int to poly_uint64.
17572	(lower_rec_simd_input_clauses): Update accordingly.
17573	(lower_rec_input_clauses): Likewise.
17574
175752018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17576	    Alan Hayward  <alan.hayward@arm.com>
17577	    David Sherwood  <david.sherwood@arm.com>
17578
17579	* tree-vectorizer.h (vect_nunits_for_cost): New function.
17580	* tree-vect-loop.c (vect_model_reduction_cost): Use it.
17581	* tree-vect-slp.c (vect_analyze_slp_cost_1): Likewise.
17582	(vect_analyze_slp_cost): Likewise.
17583	* tree-vect-stmts.c (vect_model_store_cost): Likewise.
17584	(vect_model_load_cost): Likewise.
17585
175862018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17587	    Alan Hayward  <alan.hayward@arm.com>
17588	    David Sherwood  <david.sherwood@arm.com>
17589
17590	* tree-vect-slp.c (vect_record_max_nunits, vect_build_slp_tree_1)
17591	(vect_build_slp_tree_2, vect_build_slp_tree): Change max_nunits
17592	from an unsigned int * to a poly_uint64_pod *.
17593	(calculate_unrolling_factor): New function.
17594	(vect_analyze_slp_instance): Use it.  Track polynomial max_nunits.
17595
175962018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17597	    Alan Hayward  <alan.hayward@arm.com>
17598	    David Sherwood  <david.sherwood@arm.com>
17599
17600	* tree-vectorizer.h (_slp_instance::unrolling_factor): Change
17601	from an unsigned int to a poly_uint64.
17602	(_loop_vec_info::slp_unrolling_factor): Likewise.
17603	(_loop_vec_info::vectorization_factor): Change from an int
17604	to a poly_uint64.
17605	(MAX_VECTORIZATION_FACTOR): Bump from 64 to INT_MAX.
17606	(vect_get_num_vectors): New function.
17607	(vect_update_max_nunits, vect_vf_for_cost): Likewise.
17608	(vect_get_num_copies): Use vect_get_num_vectors.
17609	(vect_analyze_data_ref_dependences): Change max_vf from an int *
17610	to an unsigned int *.
17611	(vect_analyze_data_refs): Change min_vf from an int * to a
17612	poly_uint64 *.
17613	(vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather
17614	than an unsigned HOST_WIDE_INT.
17615	* tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr)
17616	(vect_analyze_data_ref_dependence): Change max_vf from an int *
17617	to an unsigned int *.
17618	(vect_analyze_data_ref_dependences): Likewise.
17619	(vect_compute_data_ref_alignment): Handle polynomial vf.
17620	(vect_enhance_data_refs_alignment): Likewise.
17621	(vect_prune_runtime_alias_test_list): Likewise.
17622	(vect_shift_permute_load_chain): Likewise.
17623	(vect_supportable_dr_alignment): Likewise.
17624	(dependence_distance_ge_vf): Take the vectorization factor as a
17625	poly_uint64 rather than an unsigned HOST_WIDE_INT.
17626	(vect_analyze_data_refs): Change min_vf from an int * to a
17627	poly_uint64 *.
17628	* tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Take
17629	vfm1 as a poly_uint64 rather than an int.  Make the same change
17630	for the returned bound_scalar.
17631	(vect_gen_vector_loop_niters): Handle polynomial vf.
17632	(vect_do_peeling): Likewise.  Update call to
17633	vect_gen_scalar_loop_niters and handle polynomial bound_scalars.
17634	(vect_gen_vector_loop_niters_mult_vf): Assert that the vf must
17635	be constant.
17636	* tree-vect-loop.c (vect_determine_vectorization_factor)
17637	(vect_update_vf_for_slp, vect_analyze_loop_2): Handle polynomial vf.
17638	(vect_get_known_peeling_cost): Likewise.
17639	(vect_estimate_min_profitable_iters, vectorizable_reduction): Likewise.
17640	(vect_worthwhile_without_simd_p, vectorizable_induction): Likewise.
17641	(vect_transform_loop): Likewise.  Use the lowest possible VF when
17642	updating the upper bounds of the loop.
17643	(vect_min_worthwhile_factor): Make static.  Return an unsigned int
17644	rather than an int.
17645	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Cope with
17646	polynomial unroll factors.
17647	(vect_analyze_slp_cost_1, vect_analyze_slp_instance): Likewise.
17648	(vect_make_slp_decision): Likewise.
17649	(vect_supported_load_permutation_p): Likewise, and polynomial
17650	vf too.
17651	(vect_analyze_slp_cost): Handle polynomial vf.
17652	(vect_slp_analyze_node_operations): Likewise.
17653	(vect_slp_analyze_bb_1): Likewise.
17654	(vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather
17655	than an unsigned HOST_WIDE_INT.
17656	* tree-vect-stmts.c (vectorizable_simd_clone_call, vectorizable_store)
17657	(vectorizable_load): Handle polynomial vf.
17658	* tree-vectorizer.c (simduid_to_vf::vf): Change from an int to
17659	a poly_uint64.
17660	(adjust_simduid_builtins, shrink_simd_arrays): Update accordingly.
17661
176622018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17663	    Alan Hayward  <alan.hayward@arm.com>
17664	    David Sherwood  <david.sherwood@arm.com>
17665
17666	* match.pd: Handle bit operations involving three constants
17667	and try to fold one pair.
17668
176692018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
17670
17671	* tree-vect-loop-manip.c: Include gimple-fold.h.
17672	(slpeel_make_loop_iterate_ntimes): Add step, final_iv and
17673	niters_maybe_zero parameters.  Handle other cases besides a step of 1.
17674	(vect_gen_vector_loop_niters): Add a step_vector_ptr parameter.
17675	Add a path that uses a step of VF instead of 1, but disable it
17676	for now.
17677	(vect_do_peeling): Add step_vector, niters_vector_mult_vf_var
17678	and niters_no_overflow parameters.  Update calls to
17679	slpeel_make_loop_iterate_ntimes and vect_gen_vector_loop_niters.
17680	Create a new SSA name if the latter choses to use a ste other
17681	than zero, and return it via niters_vector_mult_vf_var.
17682	* tree-vect-loop.c (vect_transform_loop): Update calls to
17683	vect_do_peeling, vect_gen_vector_loop_niters and
17684	slpeel_make_loop_iterate_ntimes.
17685	* tree-vectorizer.h (slpeel_make_loop_iterate_ntimes, vect_do_peeling)
17686	(vect_gen_vector_loop_niters): Update declarations after above changes.
17687
176882018-01-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
17689
17690	* config/rs6000/rs6000.md (floor<mode>2): Add support for IEEE
17691	128-bit round to integer instructions.
17692	(ceil<mode>2): Likewise.
17693	(btrunc<mode>2): Likewise.
17694	(round<mode>2): Likewise.
17695
176962018-01-02  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
17697
17698	* config/rs6000/rs6000-string.c (expand_block_move): Allow the use of
17699	unaligned VSX load/store on P8/P9.
17700	(expand_block_clear): Allow the use of unaligned VSX
17701	load/store on P8/P9.
17702
177032018-01-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17704
17705	* config/rs6000/rs6000-p8swap.c (swap_feeds_both_load_and_store):
17706	New function.
17707	(rs6000_analyze_swaps): Mark a web unoptimizable if it contains a
17708	swap associated with both a load and a store.
17709
177102018-01-02  Andrew Waterman  <andrew@sifive.com>
17711
17712	* config/riscv/linux.h (ICACHE_FLUSH_FUNC): New.
17713	* config/riscv/riscv.md (clear_cache): Use it.
17714
177152018-01-02  Artyom Skrobov  <tyomitch@gmail.com>
17716
17717	* web.c: Remove out-of-date comment.
17718
177192018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17720
17721	* expr.c (fixup_args_size_notes): Check that any existing
17722	REG_ARGS_SIZE notes are correct, and don't try to re-add them.
17723	(emit_single_push_insn_1): Move stack_pointer_delta adjustment to...
17724	(emit_single_push_insn): ...here.
17725
177262018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17727
17728	* rtl.h (CONST_VECTOR_ELT): Redefine to const_vector_elt.
17729	(const_vector_encoded_nelts): New function.
17730	(CONST_VECTOR_NUNITS): Redefine to use GET_MODE_NUNITS.
17731	(const_vector_int_elt, const_vector_elt): Declare.
17732	* emit-rtl.c (const_vector_int_elt_1): New function.
17733	(const_vector_elt): Likewise.
17734	* simplify-rtx.c (simplify_immed_subreg): Avoid taking the address
17735	of CONST_VECTOR_ELT.
17736
177372018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17738
17739	* expr.c: Include rtx-vector-builder.h.
17740	(const_vector_mask_from_tree): Use rtx_vector_builder and operate
17741	directly on the tree encoding.
17742	(const_vector_from_tree): Likewise.
17743	* optabs.c: Include rtx-vector-builder.h.
17744	(expand_vec_perm_var): Use rtx_vector_builder and create a repeating
17745	sequence of "u" values.
17746	* vec-perm-indices.c: Include rtx-vector-builder.h.
17747	(vec_perm_indices_to_rtx): Use rtx_vector_builder and operate
17748	directly on the vec_perm_indices encoding.
17749
177502018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17751
17752	* doc/rtl.texi (const_vector): Describe new encoding scheme.
17753	* Makefile.in (OBJS): Add rtx-vector-builder.o.
17754	* rtx-vector-builder.h: New file.
17755	* rtx-vector-builder.c: Likewise.
17756	* rtl.h (rtx_def::u2): Add a const_vector field.
17757	(CONST_VECTOR_NPATTERNS): New macro.
17758	(CONST_VECTOR_NELTS_PER_PATTERN): Likewise.
17759	(CONST_VECTOR_DUPLICATE_P): Likewise.
17760	(CONST_VECTOR_STEPPED_P): Likewise.
17761	(CONST_VECTOR_ENCODED_ELT): Likewise.
17762	(const_vec_duplicate_p): Check for a duplicated vector encoding.
17763	(unwrap_const_vec_duplicate): Likewise.
17764	(const_vec_series_p): Check for a non-duplicated vector encoding.
17765	Say that the function only returns true for integer vectors.
17766	* emit-rtl.c: Include rtx-vector-builder.h.
17767	(gen_const_vec_duplicate_1): Delete.
17768	(gen_const_vector): Call gen_const_vec_duplicate instead of
17769	gen_const_vec_duplicate_1.
17770	(const_vec_series_p_1): Operate directly on the CONST_VECTOR encoding.
17771	(gen_const_vec_duplicate): Use rtx_vector_builder.
17772	(gen_const_vec_series): Likewise.
17773	(gen_rtx_CONST_VECTOR): Likewise.
17774	* config/powerpcspe/powerpcspe.c: Include rtx-vector-builder.h.
17775	(swap_const_vector_halves): Take an rtx pointer rather than rtx.
17776	Build a new vector rather than modifying a CONST_VECTOR in-place.
17777	(handle_special_swappables): Update call accordingly.
17778	* config/rs6000/rs6000-p8swap.c: Include rtx-vector-builder.h.
17779	(swap_const_vector_halves): Take an rtx pointer rather than rtx.
17780	Build a new vector rather than modifying a CONST_VECTOR in-place.
17781	(handle_special_swappables): Update call accordingly.
17782
177832018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17784
17785	* simplify-rtx.c (simplify_const_binary_operation): Use
17786	CONST_VECTOR_ELT instead of XVECEXP.
17787
177882018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17789
17790	* tree-cfg.c (verify_gimple_assign_ternary): Allow the size of
17791	the selector elements to be different from the data elements
17792	if the selector is a VECTOR_CST.
17793	* tree-vect-stmts.c (vect_gen_perm_mask_any): Use a vector of
17794	ssizetype for the selector.
17795
177962018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17797
17798	* optabs.c (shift_amt_for_vec_perm_mask): Try using series_p
17799	before testing each element individually.
17800	* tree-vect-generic.c (lower_vec_perm): Likewise.
17801
178022018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17803
17804	* selftest.h (selftest::vec_perm_indices_c_tests): Declare.
17805	* selftest-run-tests.c (selftest::run_tests): Call it.
17806	* vector-builder.h (vector_builder::operator ==): New function.
17807	(vector_builder::operator !=): Likewise.
17808	* vec-perm-indices.h (vec_perm_indices::series_p): Declare.
17809	(vec_perm_indices::all_from_input_p): New function.
17810	* vec-perm-indices.c (vec_perm_indices::series_p): Likewise.
17811	(test_vec_perm_12, selftest::vec_perm_indices_c_tests): Likewise.
17812	* fold-const.c (fold_ternary_loc): Use tree_to_vec_perm_builder
17813	instead of reading the VECTOR_CST directly.  Detect whether both
17814	vector inputs are the same before constructing the vec_perm_indices,
17815	and update the number of inputs argument accordingly.  Use the
17816	utility functions added above.  Only construct sel2 if we need to.
17817
178182018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17819
17820	* optabs.c (expand_vec_perm_var): Use an explicit encoding for
17821	the broadcast of the low byte.
17822	(expand_mult_highpart): Use an explicit encoding for the permutes.
17823	* optabs-query.c (can_mult_highpart_p): Likewise.
17824	* tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
17825	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
17826	(vectorizable_bswap): Likewise.
17827	* tree-vect-data-refs.c (vect_grouped_store_supported): Use an
17828	explicit encoding for the power-of-2 permutes.
17829	(vect_permute_store_chain): Likewise.
17830	(vect_grouped_load_supported): Likewise.
17831	(vect_permute_load_chain): Likewise.
17832
178332018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17834
17835	* vec-perm-indices.h (vec_perm_indices_to_tree): Declare.
17836	* vec-perm-indices.c (vec_perm_indices_to_tree): New function.
17837	* tree-ssa-forwprop.c (simplify_vector_constructor): Use it.
17838	* tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
17839	* tree-vect-stmts.c (vectorizable_bswap): Likewise.
17840	(vect_gen_perm_mask_any): Likewise.
17841
178422018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17843
17844	* int-vector-builder.h: New file.
17845	* vec-perm-indices.h: Include int-vector-builder.h.
17846	(vec_perm_indices): Redefine as an int_vector_builder.
17847	(auto_vec_perm_indices): Delete.
17848	(vec_perm_builder): Redefine as a stand-alone class.
17849	(vec_perm_indices::vec_perm_indices): New function.
17850	(vec_perm_indices::clamp): Likewise.
17851	* vec-perm-indices.c: Include fold-const.h and tree-vector-builder.h.
17852	(vec_perm_indices::new_vector): New function.
17853	(vec_perm_indices::new_expanded_vector): Update for new
17854	vec_perm_indices class.
17855	(vec_perm_indices::rotate_inputs): New function.
17856	(vec_perm_indices::all_in_range_p): Operate directly on the
17857	encoded form, without computing elided elements.
17858	(tree_to_vec_perm_builder): Operate directly on the VECTOR_CST
17859	encoding.  Update for new vec_perm_indices class.
17860	* optabs.c (expand_vec_perm_const): Create a vec_perm_indices for
17861	the given vec_perm_builder.
17862	(expand_vec_perm_var): Update vec_perm_builder constructor.
17863	(expand_mult_highpart): Use vec_perm_builder instead of
17864	auto_vec_perm_indices.
17865	* optabs-query.c (can_mult_highpart_p): Use vec_perm_builder and
17866	vec_perm_indices instead of auto_vec_perm_indices.  Use a single
17867	or double series encoding as appropriate.
17868	* fold-const.c (fold_ternary_loc): Use vec_perm_builder and
17869	vec_perm_indices instead of auto_vec_perm_indices.
17870	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
17871	* tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
17872	(vect_permute_store_chain): Likewise.
17873	(vect_grouped_load_supported): Likewise.
17874	(vect_permute_load_chain): Likewise.
17875	(vect_shift_permute_load_chain): Likewise.
17876	* tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
17877	(vect_transform_slp_perm_load): Likewise.
17878	(vect_schedule_slp_instance): Likewise.
17879	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
17880	(vectorizable_mask_load_store): Likewise.
17881	(vectorizable_bswap): Likewise.
17882	(vectorizable_store): Likewise.
17883	(vectorizable_load): Likewise.
17884	* tree-vect-generic.c (lower_vec_perm): Use vec_perm_builder and
17885	vec_perm_indices instead of auto_vec_perm_indices.  Use
17886	tree_to_vec_perm_builder to read the vector from a tree.
17887	* tree-vect-loop.c (calc_vec_perm_mask_for_shift): Take a
17888	vec_perm_builder instead of a vec_perm_indices.
17889	(have_whole_vector_shift): Use vec_perm_builder and
17890	vec_perm_indices instead of auto_vec_perm_indices.  Leave the
17891	truncation to calc_vec_perm_mask_for_shift.
17892	(vect_create_epilog_for_reduction): Likewise.
17893	* config/aarch64/aarch64.c (expand_vec_perm_d::perm): Change
17894	from auto_vec_perm_indices to vec_perm_indices.
17895	(aarch64_expand_vec_perm_const_1): Use rotate_inputs on d.perm
17896	instead of changing individual elements.
17897	(aarch64_vectorize_vec_perm_const): Use new_vector to install
17898	the vector in d.perm.
17899	* config/arm/arm.c (expand_vec_perm_d::perm): Change
17900	from auto_vec_perm_indices to vec_perm_indices.
17901	(arm_expand_vec_perm_const_1): Use rotate_inputs on d.perm
17902	instead of changing individual elements.
17903	(arm_vectorize_vec_perm_const): Use new_vector to install
17904	the vector in d.perm.
17905	* config/powerpcspe/powerpcspe.c (rs6000_expand_extract_even):
17906	Update vec_perm_builder constructor.
17907	(rs6000_expand_interleave): Likewise.
17908	* config/rs6000/rs6000.c (rs6000_expand_extract_even): Likewise.
17909	(rs6000_expand_interleave): Likewise.
17910
179112018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17912
17913	* optabs-query.c (can_vec_perm_var_p): Check whether lowering
17914	to qimode could truncate the indices.
17915	* optabs.c (expand_vec_perm_var): Likewise.
17916
179172018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
17918
17919	* Makefile.in (OBJS): Add vec-perm-indices.o.
17920	* vec-perm-indices.h: New file.
17921	* vec-perm-indices.c: Likewise.
17922	* target.h (vec_perm_indices): Replace with a forward class
17923	declaration.
17924	(auto_vec_perm_indices): Move to vec-perm-indices.h.
17925	* optabs.h: Include vec-perm-indices.h.
17926	(expand_vec_perm): Delete.
17927	(selector_fits_mode_p, expand_vec_perm_var): Declare.
17928	(expand_vec_perm_const): Declare.
17929	* target.def (vec_perm_const_ok): Replace with...
17930	(vec_perm_const): ...this new hook.
17931	* doc/tm.texi.in (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Replace with...
17932	(TARGET_VECTORIZE_VEC_PERM_CONST): ...this new hook.
17933	* doc/tm.texi: Regenerate.
17934	* optabs.def (vec_perm_const): Delete.
17935	* doc/md.texi (vec_perm_const): Likewise.
17936	(vec_perm): Refer to TARGET_VECTORIZE_VEC_PERM_CONST.
17937	* expr.c (expand_expr_real_2): Use expand_vec_perm_const rather than
17938	expand_vec_perm for constant permutation vectors.  Assert that
17939	the mode of variable permutation vectors is the integer equivalent
17940	of the mode that is being permuted.
17941	* optabs-query.h (selector_fits_mode_p): Declare.
17942	* optabs-query.c: Include vec-perm-indices.h.
17943	(selector_fits_mode_p): New function.
17944	(can_vec_perm_const_p): Check whether targetm.vectorize.vec_perm_const
17945	is defined, instead of checking whether the vec_perm_const_optab
17946	exists.  Use targetm.vectorize.vec_perm_const instead of
17947	targetm.vectorize.vec_perm_const_ok.  Check whether the indices
17948	fit in the vector mode before using a variable permute.
17949	* optabs.c (shift_amt_for_vec_perm_mask): Take a mode and a
17950	vec_perm_indices instead of an rtx.
17951	(expand_vec_perm): Replace with...
17952	(expand_vec_perm_const): ...this new function.  Take the selector
17953	as a vec_perm_indices rather than an rtx.  Also take the mode of
17954	the selector.  Update call to shift_amt_for_vec_perm_mask.
17955	Use targetm.vectorize.vec_perm_const instead of vec_perm_const_optab.
17956	Use vec_perm_indices::new_expanded_vector to expand the original
17957	selector into bytes.  Check whether the indices fit in the vector
17958	mode before using a variable permute.
17959	(expand_vec_perm_var): Make global.
17960	(expand_mult_highpart): Use expand_vec_perm_const.
17961	* fold-const.c: Includes vec-perm-indices.h.
17962	* tree-ssa-forwprop.c: Likewise.
17963	* tree-vect-data-refs.c: Likewise.
17964	* tree-vect-generic.c: Likewise.
17965	* tree-vect-loop.c: Likewise.
17966	* tree-vect-slp.c: Likewise.
17967	* tree-vect-stmts.c: Likewise.
17968	* config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm_const):
17969	Delete.
17970	* config/aarch64/aarch64-simd.md (vec_perm_const<mode>): Delete.
17971	* config/aarch64/aarch64.c (aarch64_expand_vec_perm_const)
17972	(aarch64_vectorize_vec_perm_const_ok): Fuse into...
17973	(aarch64_vectorize_vec_perm_const): ...this new function.
17974	(TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
17975	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
17976	* config/arm/arm-protos.h (arm_expand_vec_perm_const): Delete.
17977	* config/arm/vec-common.md (vec_perm_const<mode>): Delete.
17978	* config/arm/arm.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
17979	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
17980	(arm_expand_vec_perm_const, arm_vectorize_vec_perm_const_ok): Merge
17981	into...
17982	(arm_vectorize_vec_perm_const): ...this new function.  Explicitly
17983	check for NEON modes.
17984	* config/i386/i386-protos.h (ix86_expand_vec_perm_const): Delete.
17985	* config/i386/sse.md (VEC_PERM_CONST, vec_perm_const<mode>): Delete.
17986	* config/i386/i386.c (ix86_expand_vec_perm_const_1): Update comment.
17987	(ix86_expand_vec_perm_const, ix86_vectorize_vec_perm_const_ok): Merge
17988	into...
17989	(ix86_vectorize_vec_perm_const): ...this new function.  Incorporate
17990	the old VEC_PERM_CONST conditions.
17991	* config/ia64/ia64-protos.h (ia64_expand_vec_perm_const): Delete.
17992	* config/ia64/vect.md (vec_perm_const<mode>): Delete.
17993	* config/ia64/ia64.c (ia64_expand_vec_perm_const)
17994	(ia64_vectorize_vec_perm_const_ok): Merge into...
17995	(ia64_vectorize_vec_perm_const): ...this new function.
17996	* config/mips/loongson.md (vec_perm_const<mode>): Delete.
17997	* config/mips/mips-msa.md (vec_perm_const<mode>): Delete.
17998	* config/mips/mips-ps-3d.md (vec_perm_constv2sf): Delete.
17999	* config/mips/mips-protos.h (mips_expand_vec_perm_const): Delete.
18000	* config/mips/mips.c (mips_expand_vec_perm_const)
18001	(mips_vectorize_vec_perm_const_ok): Merge into...
18002	(mips_vectorize_vec_perm_const): ...this new function.
18003	* config/powerpcspe/altivec.md (vec_perm_constv16qi): Delete.
18004	* config/powerpcspe/paired.md (vec_perm_constv2sf): Delete.
18005	* config/powerpcspe/spe.md (vec_perm_constv2si): Delete.
18006	* config/powerpcspe/vsx.md (vec_perm_const<mode>): Delete.
18007	* config/powerpcspe/powerpcspe-protos.h (altivec_expand_vec_perm_const)
18008	(rs6000_expand_vec_perm_const): Delete.
18009	* config/powerpcspe/powerpcspe.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK):
18010	Delete.
18011	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
18012	(altivec_expand_vec_perm_const_le): Take each operand individually.
18013	Operate on constant selectors rather than rtxes.
18014	(altivec_expand_vec_perm_const): Likewise.  Update call to
18015	altivec_expand_vec_perm_const_le.
18016	(rs6000_expand_vec_perm_const): Delete.
18017	(rs6000_vectorize_vec_perm_const_ok): Delete.
18018	(rs6000_vectorize_vec_perm_const): New function.
18019	(rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of
18020	an element count and rtx array.
18021	(rs6000_expand_extract_even): Update call accordingly.
18022	(rs6000_expand_interleave): Likewise.
18023	* config/rs6000/altivec.md (vec_perm_constv16qi): Delete.
18024	* config/rs6000/paired.md (vec_perm_constv2sf): Delete.
18025	* config/rs6000/vsx.md (vec_perm_const<mode>): Delete.
18026	* config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_const)
18027	(rs6000_expand_vec_perm_const): Delete.
18028	* config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
18029	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
18030	(altivec_expand_vec_perm_const_le): Take each operand individually.
18031	Operate on constant selectors rather than rtxes.
18032	(altivec_expand_vec_perm_const): Likewise.  Update call to
18033	altivec_expand_vec_perm_const_le.
18034	(rs6000_expand_vec_perm_const): Delete.
18035	(rs6000_vectorize_vec_perm_const_ok): Delete.
18036	(rs6000_vectorize_vec_perm_const): New function.  Remove stray
18037	reference to the SPE evmerge intructions.
18038	(rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of
18039	an element count and rtx array.
18040	(rs6000_expand_extract_even): Update call accordingly.
18041	(rs6000_expand_interleave): Likewise.
18042	* config/sparc/sparc.md (vec_perm_constv8qi): Delete in favor of...
18043	* config/sparc/sparc.c (sparc_vectorize_vec_perm_const): ...this
18044	new function.
18045	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
18046
180472018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
18048
18049	* optabs.c (expand_vec_perm_1): Assert that SEL has an integer
18050	vector mode and that that mode matches the mode of the data
18051	being permuted.
18052	(expand_vec_perm): Split handling of non-CONST_VECTOR selectors
18053	out into expand_vec_perm_var.  Do all CONST_VECTOR handling here,
18054	directly using expand_vec_perm_1 when forcing selectors into
18055	registers.
18056	(expand_vec_perm_var): New function, split out from expand_vec_perm.
18057
180582018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
18059
18060	* optabs-query.h (can_vec_perm_p): Delete.
18061	(can_vec_perm_var_p, can_vec_perm_const_p): Declare.
18062	* optabs-query.c (can_vec_perm_p): Split into...
18063	(can_vec_perm_var_p, can_vec_perm_const_p): ...these two functions.
18064	(can_mult_highpart_p): Use can_vec_perm_const_p to test whether a
18065	particular selector is valid.
18066	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
18067	* tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
18068	(vect_grouped_load_supported): Likewise.
18069	(vect_shift_permute_load_chain): Likewise.
18070	* tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
18071	(vect_transform_slp_perm_load): Likewise.
18072	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
18073	(vectorizable_bswap): Likewise.
18074	(vect_gen_perm_mask_checked): Likewise.
18075	* fold-const.c (fold_ternary_loc): Likewise.  Don't take
18076	implementations of variable permutation vectors into account
18077	when deciding which selector to use.
18078	* tree-vect-loop.c (have_whole_vector_shift): Don't check whether
18079	vec_perm_const_optab is supported; instead use can_vec_perm_const_p
18080	with a false third argument.
18081	* tree-vect-generic.c (lower_vec_perm): Use can_vec_perm_const_p
18082	to test whether the constant selector is valid and can_vec_perm_var_p
18083	to test whether a variable selector is valid.
18084
180852018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
18086
18087	* optabs-query.h (can_vec_perm_p): Take a const vec_perm_indices *.
18088	* optabs-query.c (can_vec_perm_p): Likewise.
18089	* fold-const.c (fold_vec_perm): Take a const vec_perm_indices &
18090	instead of vec_perm_indices.
18091	* tree-vectorizer.h (vect_gen_perm_mask_any): Likewise,
18092	(vect_gen_perm_mask_checked): Likewise,
18093	* tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise,
18094	(vect_gen_perm_mask_checked): Likewise,
18095
180962018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
18097
18098	* optabs-query.h (qimode_for_vec_perm): Declare.
18099	* optabs-query.c (can_vec_perm_p): Split out qimode search to...
18100	(qimode_for_vec_perm): ...this new function.
18101	* optabs.c (expand_vec_perm): Use qimode_for_vec_perm.
18102
181032018-01-02  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
18104
18105	* rtlanal.c (canonicalize_condition): Return 0 if final rtx
18106	does not have a conditional at the top.
18107
181082018-01-02  Richard Biener  <rguenther@suse.de>
18109
18110	* ipa-inline.c (big_speedup_p): Fix expression.
18111
181122018-01-02  Jan Hubicka  <hubicka@ucw.cz>
18113
18114	PR target/81616
18115	* config/i386/x86-tune-costs.h: Increase cost of integer load costs
18116	for generic 4->6.
18117
181182018-01-02  Jan Hubicka  <hubicka@ucw.cz>
18119
18120	PR target/81616
18121	Generic tuning.
18122	* x86-tune-costs.h (generic_cost): Reduce cost of FDIV 20->17,
18123	cost of sqrt 20->14, DIVSS 18->13, DIVSD 32->17, SQRtSS 30->14
18124	and SQRTsD 58->18, cond_not_taken_branch_cost. 2->1. Increase
18125	cond_taken_branch_cost 3->4.
18126
181272018-01-01  Jakub Jelinek  <jakub@redhat.com>
18128
18129	PR tree-optimization/83581
18130	* tree-loop-distribution.c (pass_loop_distribution::execute): Return
18131	TODO_cleanup_cfg if any changes have been made.
18132
18133	PR middle-end/83608
18134	* expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of
18135	convert_modes if target mode has the right side, but different mode
18136	class.
18137
18138	PR middle-end/83609
18139	* expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg
18140	last argument when extracting from CONCAT.  If either from_real or
18141	from_imag is NULL, use expansion through memory.  If result is not
18142	a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg
18143	the parts directly to inner mode, if even that fails, use expansion
18144	through memory.
18145
18146	PR middle-end/83623
18147	* expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT,
18148	check for bswap in mode rather than HImode and use that in expand_unop
18149	too.
18150
18151Copyright (C) 2018 Free Software Foundation, Inc.
18152
18153Copying and distribution of this file, with or without modification,
18154are permitted in any medium without royalty provided the copyright
18155notice and this notice are preserved.
18156